diff options
Diffstat (limited to 'src/Parser.js')
| -rw-r--r-- | src/Parser.js | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/Parser.js b/src/Parser.js index dfe56cc9..df270792 100644 --- a/src/Parser.js +++ b/src/Parser.js @@ -17,7 +17,7 @@ Lexer.OPERATORS = { '/':function(self, a,b){return a/b;}, '%':function(self, a,b){return a%b;}, '^':function(self, a,b){return a^b;}, - '=':function(self, a,b){return self.scope.set(a, b);}, + '=':function(self, a,b){return setter(self, a, b);}, '==':function(self, a,b){return a==b;}, '!=':function(self, a,b){return a!=b;}, '<':function(self, a,b){return a<b;}, @@ -151,9 +151,7 @@ Lexer.prototype = { } var fn = Lexer.OPERATORS[ident]; if (!fn) { - fn = function(self){ - return self.scope.get(ident); - }; + fn = getterFn(ident); fn.isAssignable = ident; } this.tokens.push({index:start, text:ident, fn:fn}); @@ -372,7 +370,7 @@ Parser.prototype = { for ( var i = 0; i < argsFn.length; i++) { args.push(argsFn[i](self)); } - return fn.apply(self.state, args); + return fn.apply(self, args); }; return function(){ return fnInvoke; @@ -551,20 +549,21 @@ Parser.prototype = { this.consume("}"); return function(self) { return function($){ - var scope = createScope(self.state); + var scope = createScope(self); scope['$'] = $; for ( var i = 0; i < args.length; i++) { - scope.$set(args[i], arguments[i]); + setter(scope, args[i], arguments[i]); } - return statements({scope:{get:scope.$get, set:scope.$set}}); + return statements(scope); }; }; }, fieldAccess: function(object) { var field = this.expect().text; + var getter = getterFn(field); var fn = function (self){ - return getter(object(self), field); + return getter(object(self)); }; fn.isAssignable = field; return fn; @@ -680,11 +679,11 @@ Parser.prototype = { } return function(self) { var Entity = self.datastore.entity(entity, defaults); - self.scope.set(entity, Entity); + setter(self, entity, Entity); if (instance) { var document = Entity(); document['$$anchor'] = instance; - self.scope.set(instance, document); + setter(self, instance, document); return "$anchor." + instance + ":{" + instance + "=" + entity + ".load($anchor." + instance + ");" + instance + ".$$anchor=" + angular['String']['quote'](instance) + ";" + |
