From cbdf0c2afb9836ae4cca6d70cf555ff28f55a1d1 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Thu, 24 Jul 2014 07:40:05 -0700 Subject: [PATCH] perf($parse): don't use reflective calls in generated functions Chrome and FF are smart enough to notice that the key is is a string literal, so this change doesn't make a difference there. Safari gets a boost. I haven't tested IE, but it can't cause harm there. :) http://jsperf.com/fn-dereferencing --- src/ng/parse.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ng/parse.js b/src/ng/parse.js index 425d8f614..be5abc95e 100644 --- a/src/ng/parse.js +++ b/src/ng/parse.js @@ -1020,7 +1020,7 @@ function getterFn(path, options, fullExp) { // we simply dereference 's' on any .dot notation ? 's' // but if we are first then we check locals first, and if so read it first - : '((k&&k.hasOwnProperty("' + key + '"))?k:s)') + '["' + key + '"]' + ';\n' + + : '((k&&k.hasOwnProperty("' + key + '"))?k:s)') + '.' + key + ';\n' + (options.unwrapPromises ? 'if (s && s.then) {\n' + ' pw("' + fullExp.replace(/(["\r\n])/g, '\\$1') + '");\n' +