File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -61,19 +61,25 @@ class DefinePlugin {
6161 function applyDefine ( key , code ) {
6262 const isTypeof = / ^ t y p e o f \s + / . test ( key ) ;
6363 if ( isTypeof ) key = key . replace ( / ^ t y p e o f \s + / , "" ) ;
64+ let recurse = false ;
65+ let recurseTypeof = false ;
6466 code = toCode ( code ) ;
6567 if ( ! isTypeof ) {
6668 parser . plugin ( "can-rename " + key , ParserHelpers . approve ) ;
6769 parser . plugin ( "evaluate Identifier " + key , ( expr ) => {
70+ if ( recurse ) return ;
6871 const res = parser . evaluate ( code ) ;
72+ recurse = false ;
6973 res . setRange ( expr . range ) ;
7074 return res ;
7175 } ) ;
7276 parser . plugin ( "expression " + key , ParserHelpers . toConstantDependency ( code ) ) ;
7377 }
7478 const typeofCode = isTypeof ? code : "typeof (" + code + ")" ;
7579 parser . plugin ( "evaluate typeof " + key , ( expr ) => {
80+ if ( recurseTypeof ) return ;
7681 const res = parser . evaluate ( typeofCode ) ;
82+ recurseTypeof = false ;
7783 res . setRange ( expr . range ) ;
7884 return res ;
7985 } ) ;
You can’t perform that action at this time.
0 commit comments