@@ -8,7 +8,7 @@ import 'package:angular/core/module.dart';
8
8
9
9
class AccessScope extends syntax.AccessScope with AccessReflective {
10
10
final Symbol symbol;
11
- AccessScope (String name) : super (name), symbol = new Symbol (name);
11
+ AccessScope (String name) : super (name), symbol = newSymbol (name);
12
12
eval (scope, [FilterMap filters]) => _eval (scope);
13
13
assign (scope, value) => _assign (scope, scope, value);
14
14
}
@@ -24,7 +24,7 @@ class AccessScopeFast extends syntax.AccessScope with AccessFast {
24
24
class AccessMember extends syntax.AccessMember with AccessReflective {
25
25
final Symbol symbol;
26
26
AccessMember (object, String name)
27
- : super (object, name), symbol = new Symbol (name);
27
+ : super (object, name), symbol = newSymbol (name);
28
28
eval (scope, [FilterMap filters]) => _eval (object.eval (scope, filters));
29
29
assign (scope, value) => _assign (scope, object.eval (scope), value);
30
30
_assignToNonExisting (scope, value) => object.assign (scope, { name: value });
@@ -84,6 +84,9 @@ abstract class AccessReflective {
84
84
_cachedKind = CACHED_MAP ;
85
85
_cachedValue = null ;
86
86
return holder[name];
87
+ } else if (symbol == null ) {
88
+ _cachedHolder = UNINITIALIZED ;
89
+ return null ;
87
90
}
88
91
InstanceMirror mirror = reflect (holder);
89
92
try {
@@ -119,7 +122,7 @@ abstract class AccessReflective {
119
122
holder[name] = value;
120
123
} else if (holder == null ) {
121
124
_assignToNonExisting (scope, value);
122
- } else {
125
+ } else if (symbol != null ) {
123
126
reflect (holder).setField (symbol, value);
124
127
}
125
128
return value;
0 commit comments