@@ -944,7 +944,7 @@ ASTCompiler.prototype = {
944
944
self . if_ ( self . stage === 'inputs' || 's' , function ( ) {
945
945
if ( create && create !== 1 ) {
946
946
self . if_ (
947
- self . not ( self . nonComputedMember ( 's' , ast . name ) ) ,
947
+ self . isNull ( self . nonComputedMember ( 's' , ast . name ) ) ,
948
948
self . lazyAssign ( self . nonComputedMember ( 's' , ast . name ) , '{}' ) ) ;
949
949
}
950
950
self . assign ( intoId , self . nonComputedMember ( 's' , ast . name ) ) ;
@@ -973,7 +973,7 @@ ASTCompiler.prototype = {
973
973
}
974
974
} else {
975
975
if ( create && create !== 1 ) {
976
- self . if_ ( self . not ( self . nonComputedMember ( left , ast . property . name ) ) , self . lazyAssign ( self . nonComputedMember ( left , ast . property . name ) , '{}' ) ) ;
976
+ self . if_ ( self . isNull ( self . nonComputedMember ( left , ast . property . name ) ) , self . lazyAssign ( self . nonComputedMember ( left , ast . property . name ) , '{}' ) ) ;
977
977
}
978
978
expression = self . nonComputedMember ( left , ast . property . name ) ;
979
979
self . assign ( intoId , expression ) ;
@@ -1155,6 +1155,10 @@ ASTCompiler.prototype = {
1155
1155
return '!(' + expression + ')' ;
1156
1156
} ,
1157
1157
1158
+ isNull : function ( expression ) {
1159
+ return expression + '==null' ;
1160
+ } ,
1161
+
1158
1162
notNull : function ( expression ) {
1159
1163
return expression + '!=null' ;
1160
1164
} ,
@@ -1546,7 +1550,7 @@ ASTInterpreter.prototype = {
1546
1550
identifier : function ( name , context , create , expression ) {
1547
1551
return function ( scope , locals , assign , inputs ) {
1548
1552
var base = locals && ( name in locals ) ? locals : scope ;
1549
- if ( create && create !== 1 && base && ! ( base [ name ] ) ) {
1553
+ if ( create && create !== 1 && base && base [ name ] == null ) {
1550
1554
base [ name ] = { } ;
1551
1555
}
1552
1556
var value = base ? base [ name ] : undefined ;
@@ -1583,7 +1587,7 @@ ASTInterpreter.prototype = {
1583
1587
return function ( scope , locals , assign , inputs ) {
1584
1588
var lhs = left ( scope , locals , assign , inputs ) ;
1585
1589
if ( create && create !== 1 ) {
1586
- if ( lhs && ! ( lhs [ right ] ) ) {
1590
+ if ( lhs && lhs [ right ] == null ) {
1587
1591
lhs [ right ] = { } ;
1588
1592
}
1589
1593
}
0 commit comments