File tree Expand file tree Collapse file tree 2 files changed +13
-0
lines changed
test/cases/parsing/evaluate Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -935,6 +935,13 @@ class JavascriptParser extends Parser {
935
935
. setString ( "undefined" )
936
936
. setRange ( expr . range ) ;
937
937
} ) ;
938
+ this . hooks . evaluate . for ( "Identifier" ) . tap ( "JavascriptParser" , expr => {
939
+ if ( /** @type {IdentifierNode } */ ( expr ) . name === "undefined" ) {
940
+ return new BasicEvaluatedExpression ( )
941
+ . setUndefined ( )
942
+ . setRange ( expr . range ) ;
943
+ }
944
+ } ) ;
938
945
/**
939
946
* @param {string } exprType expression type name
940
947
* @param {function(ExpressionNode): GetInfoResult | undefined } getInfo get info
Original file line number Diff line number Diff line change @@ -3,6 +3,12 @@ it("should evaluate null", function () {
3
3
if ( null ) require ( "fail" ) ;
4
4
} ) ;
5
5
6
+ it ( "should evaluate undefined" , function ( ) {
7
+ const y = undefined ? require ( "fail" ) : require ( "./a" ) ;
8
+ if ( undefined ) require ( "fail" ) ;
9
+ undefined && require ( "fail" ) ;
10
+ } ) ;
11
+
6
12
it ( "should evaluate logical expression" , function ( ) {
7
13
const value1 = "hello" || require ( "fail" ) ;
8
14
const value2 = typeof require === "function" || require ( "fail" ) ;
You can’t perform that action at this time.
0 commit comments