From ad18fe144263b966f8930edb672e08b9926e00a1 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Sun, 30 May 2010 16:45:35 -0700 Subject: compiler exposos both self and this function calling convention --- src/Scope.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/Scope.js') diff --git a/src/Scope.js b/src/Scope.js index 6d68eeed..bed0ff6d 100644 --- a/src/Scope.js +++ b/src/Scope.js @@ -46,16 +46,16 @@ function setter(instance, path, value){ var compileCache = {}; function expressionCompile(exp){ if (isFunction(exp)) return exp; - var expFn = compileCache[exp]; - if (!expFn) { + var fn = compileCache[exp]; + if (!fn) { var parser = new Parser(exp); - expFn = parser.statements(); + var fnSelf = parser.statements(); parser.assertAllConsumed(); - compileCache[exp] = expFn; + fn = compileCache[exp] = extend( + function(){ return fnSelf(this);}, + {fnSelf: fnSelf}); } - return function(){ - return expFn(this); - }; + return fn; } function rethrow(e) { throw e; } -- cgit v1.2.3