aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2013-10-07 11:10:24 -0700
committerIgor Minar2013-10-07 11:10:24 -0700
commit670cd9c165815c511c71046c89241446c1bd55d5 (patch)
tree21a4859983ac5c1b56b773cad7201743da3b31f1
parent7a586e5c19f3d1ecc3fefef084ce992072ee7f60 (diff)
downloadangular.js-670cd9c165815c511c71046c89241446c1bd55d5.tar.bz2
revert: refactor($parse): only instantiate lex/parse once
This reverts commit 281feba4caffd14ffbd6dedfb95ad6415cff8483. Since Lexer and Parser objects are stateful it is not safe to reuse them for parsing of multiple expressions. After recent refactoring into prototypical style, the instantiation of these objects is so cheap that it's not a huge win to use singletons here.
-rw-r--r--src/ng/parse.js4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ng/parse.js b/src/ng/parse.js
index 682b497b..701647c5 100644
--- a/src/ng/parse.js
+++ b/src/ng/parse.js
@@ -1043,8 +1043,6 @@ function $ParseProvider() {
var cache = {};
this.$get = ['$filter', '$sniffer', function($filter, $sniffer) {
return function(exp) {
- var lexer = new Lexer($sniffer.csp);
- var parser = new Parser(lexer, $filter, $sniffer.csp);
var parsedExpression;
switch (typeof exp) {
@@ -1053,6 +1051,8 @@ function $ParseProvider() {
return cache[exp];
}
+ var lexer = new Lexer($sniffer.csp);
+ var parser = new Parser(lexer, $filter, $sniffer.csp);
parsedExpression = parser.parse(exp, false);
if (exp !== 'hasOwnProperty') {