@@ -926,7 +926,7 @@ ASTCompiler.prototype = {
926926 self . if ( self . stage === 'inputs' || 's' , function ( ) {
927927 if ( create && create !== 1 ) {
928928 self . if (
929- self . not ( self . getHasOwnProperty ( 's' , ast . name ) ) ,
929+ self . not ( self . nonComputedMember ( 's' , ast . name ) ) ,
930930 self . lazyAssign ( self . nonComputedMember ( 's' , ast . name ) , '{}' ) ) ;
931931 }
932932 self . assign ( intoId , self . nonComputedMember ( 's' , ast . name ) ) ;
@@ -948,7 +948,7 @@ ASTCompiler.prototype = {
948948 self . recurse ( ast . property , right ) ;
949949 self . addEnsureSafeMemberName ( right ) ;
950950 if ( create && create !== 1 ) {
951- self . if ( self . not ( right + ' in ' + left ) , self . lazyAssign ( self . computedMember ( left , right ) , '{}' ) ) ;
951+ self . if ( self . not ( self . computedMember ( left , right ) ) , self . lazyAssign ( self . computedMember ( left , right ) , '{}' ) ) ;
952952 }
953953 expression = self . ensureSafeObject ( self . computedMember ( left , right ) ) ;
954954 self . assign ( intoId , expression ) ;
@@ -959,7 +959,7 @@ ASTCompiler.prototype = {
959959 } else {
960960 ensureSafeMemberName ( ast . property . name ) ;
961961 if ( create && create !== 1 ) {
962- self . if ( self . not ( self . escape ( ast . property . name ) + ' in ' + left ) , self . lazyAssign ( self . nonComputedMember ( left , ast . property . name ) , '{}' ) ) ;
962+ self . if ( self . not ( self . nonComputedMember ( left , ast . property . name ) ) , self . lazyAssign ( self . nonComputedMember ( left , ast . property . name ) , '{}' ) ) ;
963963 }
964964 expression = self . nonComputedMember ( left , ast . property . name ) ;
965965 if ( self . state . expensiveChecks || isPossiblyDangerousMemberName ( ast . property . name ) ) {
@@ -1515,7 +1515,7 @@ ASTInterpreter.prototype = {
15151515 identifier : function ( name , expensiveChecks , context , create , expression ) {
15161516 return function ( scope , locals , assign , inputs ) {
15171517 var base = locals && ( name in locals ) ? locals : scope ;
1518- if ( create && create !== 1 && base && ! ( name in base ) ) {
1518+ if ( create && create !== 1 && base && ! ( base [ name ] ) ) {
15191519 base [ name ] = { } ;
15201520 }
15211521 var value = base ? base [ name ] : undefined ;
@@ -1537,7 +1537,7 @@ ASTInterpreter.prototype = {
15371537 if ( lhs != null ) {
15381538 rhs = right ( scope , locals , assign , inputs ) ;
15391539 ensureSafeMemberName ( rhs , expression ) ;
1540- if ( create && create !== 1 && lhs && ! ( rhs in lhs ) ) {
1540+ if ( create && create !== 1 && lhs && ! ( lhs [ rhs ] ) ) {
15411541 lhs [ rhs ] = { } ;
15421542 }
15431543 value = lhs [ rhs ] ;
@@ -1553,7 +1553,7 @@ ASTInterpreter.prototype = {
15531553 nonComputedMember : function ( left , right , expensiveChecks , context , create , expression ) {
15541554 return function ( scope , locals , assign , inputs ) {
15551555 var lhs = left ( scope , locals , assign , inputs ) ;
1556- if ( create && create !== 1 && lhs && ! ( right in lhs ) ) {
1556+ if ( create && create !== 1 && lhs && ! ( lhs [ right ] ) ) {
15571557 lhs [ right ] = { } ;
15581558 }
15591559 var value = lhs != null ? lhs [ right ] : undefined ;
0 commit comments