File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -109,6 +109,51 @@ const tests = [
109
109
assert . areEqual ( 42 , ( specialObj . b ) ?. ( ) . c ) ;
110
110
assert . areEqual ( 42 , ( specialObj ?. b ) ?. ( ) . c ) ;
111
111
}
112
+ } ,
113
+ {
114
+ name : "Optional call in eval (function)" ,
115
+ body ( ) {
116
+ function fn ( ) {
117
+ return 42 ;
118
+ }
119
+ assert . areEqual ( 42 , eval ( "fn?.()" ) ) ;
120
+ } ,
121
+ } ,
122
+ {
123
+ name : "Optional call in eval (lambda)" ,
124
+ body ( ) {
125
+ const fn = ( ) => 42 ;
126
+ assert . areEqual ( 42 , eval ( "fn?.()" ) ) ;
127
+ } ,
128
+ } ,
129
+ {
130
+ name : "Optional call in eval (object)" ,
131
+ body ( ) {
132
+ const obj = {
133
+ fn : ( ) => 42 ,
134
+ } ;
135
+ assert . areEqual ( 42 , eval ( "obj?.fn?.()" ) ) ;
136
+ } ,
137
+ } ,
138
+ {
139
+ name : "Optional call in eval (undefined)" ,
140
+ body ( ) {
141
+ assert . areEqual ( undefined , eval ( "doesNotExist?.()" ) ) ;
142
+ } ,
143
+ } ,
144
+ {
145
+ name : "Optional call in eval respects scope" ,
146
+ body ( ) {
147
+ function fn ( ) {
148
+ return 42 ;
149
+ }
150
+ assert . areEqual ( 24 , eval ( `
151
+ function fn(){
152
+ return 24;
153
+ }
154
+ fn?.()
155
+ ` ) ) ;
156
+ } ,
112
157
}
113
158
] ;
114
159
You can’t perform that action at this time.
0 commit comments