aboutsummaryrefslogtreecommitdiffstats
path: root/src/Parser.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/Parser.js')
-rw-r--r--src/Parser.js21
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) + ";" +