@@ -167,21 +167,26 @@ Parser.prototype.initializeEvaluating = function() {
167167 this . plugin ( "evaluate UnaryExpression" , function ( expr ) {
168168 if ( expr . operator === "typeof" ) {
169169 if ( expr . argument . type === "Identifier" ) {
170- var res = this . applyPluginsBailResult ( "evaluate typeof " + expr . argument . name , expr ) ;
171- if ( res !== undefined ) return res ;
170+ var name = this . scope . renames [ "$" + expr . argument . name ] || expr . argument . name ;
171+ if ( this . scope . definitions . indexOf ( name ) === - 1 ) {
172+ var res = this . applyPluginsBailResult ( "evaluate typeof " + name , expr ) ;
173+ if ( res !== undefined ) return res ;
174+ }
172175 }
173176 if ( expr . argument . type === "MemberExpression" ) {
174177 var expression = expr . argument ;
175178 var exprName = [ ] ;
176179 while ( expression . type === "MemberExpression" && expression . property . type === "Identifier" ) {
177- exprName . unshift ( expression . property . name ) ;
180+ exprName . unshift ( this . scope . renames [ "$" + expression . property . name ] || expression . property . name ) ;
178181 expression = expression . object ;
179182 }
180- if ( expression . type === "Identifier" && this . scope . definitions . indexOf ( expression . name ) === - 1 ) {
183+ if ( expression . type === "Identifier" ) {
181184 exprName . unshift ( this . scope . renames [ "$" + expression . name ] || expression . name ) ;
182- exprName = exprName . join ( "." ) ;
183- var res = this . applyPluginsBailResult ( "evaluate typeof " + exprName , expr ) ;
184- if ( res !== undefined ) return res ;
185+ if ( this . scope . definitions . indexOf ( name ) === - 1 ) {
186+ exprName = exprName . join ( "." ) ;
187+ var res = this . applyPluginsBailResult ( "evaluate typeof " + exprName , expr ) ;
188+ if ( res !== undefined ) return res ;
189+ }
185190 }
186191 }
187192 if ( expr . argument . type === "FunctionExpression" ) {
@@ -222,14 +227,17 @@ Parser.prototype.initializeEvaluating = function() {
222227 expr = expr . object ;
223228 }
224229 if ( expr . type === "Identifier" ) {
225- exprName . unshift ( this . scope . renames [ "$" + expr . name ] || expr . name ) ;
226- exprName = exprName . join ( "." ) ;
227- if ( this . scope . definitions . indexOf ( expr . name ) === - 1 ) {
228- var result = this . applyPluginsBailResult ( "evaluate Identifier " + exprName , expression ) ;
229- if ( result ) return result ;
230- return new BasicEvaluatedExpression ( ) . setIdentifier ( exprName ) . setRange ( expression . range ) ;
231- } else {
232- return this . applyPluginsBailResult ( "evaluate defined Identifier " + exprName , expression ) ;
230+ var name = this . scope . renames [ "$" + expr . name ] || expr . name ;
231+ if ( this . scope . definitions . indexOf ( name ) === - 1 ) {
232+ exprName . unshift ( name ) ;
233+ exprName = exprName . join ( "." ) ;
234+ if ( this . scope . definitions . indexOf ( expr . name ) === - 1 ) {
235+ var result = this . applyPluginsBailResult ( "evaluate Identifier " + exprName , expression ) ;
236+ if ( result ) return result ;
237+ return new BasicEvaluatedExpression ( ) . setIdentifier ( exprName ) . setRange ( expression . range ) ;
238+ } else {
239+ return this . applyPluginsBailResult ( "evaluate defined Identifier " + exprName , expression ) ;
240+ }
233241 }
234242 }
235243 } ) ;
0 commit comments