refactor($parse): only instantiate lex/parse once

Closes #4286
This commit is contained in:
Peter Bacon Darwin 2013-10-05 11:13:24 +01:00 committed by Pete Bacon Darwin
parent 805efb4c47
commit 281feba4ca

View file

@ -1034,14 +1034,15 @@ 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);
switch (typeof exp) {
case 'string':
if (cache.hasOwnProperty(exp)) {
return cache[exp];
}
var lexer = new Lexer($sniffer.csp);
var parser = new Parser(lexer, $filter, $sniffer.csp);
return cache[exp] = parser.parse(exp, false);
case 'function':