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 = [
109109 assert . areEqual ( 42 , ( specialObj . b ) ?. ( ) . c ) ;
110110 assert . areEqual ( 42 , ( specialObj ?. b ) ?. ( ) . c ) ;
111111 }
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+ } ,
112157 }
113158] ;
114159
You can’t perform that action at this time.
0 commit comments