@@ -63,7 +63,7 @@ export default function createBinding ( generator, node, attribute, current, loc
63
63
64
64
do {
65
65
if ( fragment . expression && fragment . context === prop ) {
66
- if ( ! isReference ( fragment . expression ) ) {
66
+ if ( ! isReference ( fragment . expression ) ) {
67
67
// TODO this should happen in prior validation step
68
68
throw new Error ( `${ prop } is read-only, it cannot be bound` ) ;
69
69
}
@@ -72,6 +72,8 @@ export default function createBinding ( generator, node, attribute, current, loc
72
72
}
73
73
} while ( fragment = fragment . parent ) ;
74
74
75
+ generator . expectedProperties [ prop ] = true ;
76
+
75
77
const listName = current . listNames [ parts [ 0 ] ] ;
76
78
const indexName = current . indexNames [ parts [ 0 ] ] ;
77
79
@@ -84,14 +86,18 @@ export default function createBinding ( generator, node, attribute, current, loc
84
86
85
87
component._set({ ${ prop } : component.get( '${ prop } ' ) });
86
88
` ;
87
- } else if ( deep ) {
88
- setter = deindent `
89
- var ${ parts [ 0 ] } = component.get( '${ parts [ 0 ] } ' );
90
- ${ parts [ 0 ] } .${ parts . slice ( 1 ) . join ( '.' ) } = ${ value } ;
91
- component._set({ ${ parts [ 0 ] } : ${ parts [ 0 ] } });
92
- ` ;
93
89
} else {
94
- setter = `component._set({ ${ attribute . value } : ${ value } });` ;
90
+ if ( deep ) {
91
+ setter = deindent `
92
+ var ${ parts [ 0 ] } = component.get( '${ parts [ 0 ] } ' );
93
+ ${ parts [ 0 ] } .${ parts . slice ( 1 ) . join ( '.' ) } = ${ value } ;
94
+ component._set({ ${ parts [ 0 ] } : ${ parts [ 0 ] } });
95
+ ` ;
96
+ } else {
97
+ setter = `component._set({ ${ attribute . value } : ${ value } });` ;
98
+ }
99
+
100
+ generator . expectedProperties [ parts [ 0 ] ] = true ;
95
101
}
96
102
97
103
// special case
0 commit comments