aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scenario/perf.html2
-rw-r--r--src/Angular.js15
-rw-r--r--src/Browser.js2
-rw-r--r--src/Scope.js8
-rw-r--r--src/apis.js3
5 files changed, 14 insertions, 16 deletions
diff --git a/scenario/perf.html b/scenario/perf.html
index c2f26317..1b0e40b4 100644
--- a/scenario/perf.html
+++ b/scenario/perf.html
@@ -8,7 +8,7 @@
PerfCntl.prototype = {
createItems: function(){
var items = [];
- for ( var i = 0; i < 100; i++) {
+ for ( var i = 0; i < 1000; i++) {
var item = {
name: "" + Math.random(),
parts: [Math.random(), Math.random()]
diff --git a/src/Angular.js b/src/Angular.js
index 8675bc40..39e9b385 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -291,12 +291,15 @@ function elementError(element, type, error) {
while (!isRenderableElement(element)) {
element = element.parent() || jqLite(document.body);
}
- if (error) {
- element.addClass(type);
- element.attr(type, error);
- } else {
- element.removeClass(type);
- element.removeAttr(type);
+ if (element[0]['$NG_ERROR'] !== error) {
+ element[0]['$NG_ERROR'] = error;
+ if (error) {
+ element.addClass(type);
+ element.attr(type, error);
+ } else {
+ element.removeClass(type);
+ element.removeAttr(type);
+ }
}
}
diff --git a/src/Browser.js b/src/Browser.js
index 0e265c0c..0552b3ae 100644
--- a/src/Browser.js
+++ b/src/Browser.js
@@ -3,7 +3,7 @@
//////////////////////////////
function Browser(location, document) {
- this.delay = 25;
+ this.delay = 50;
this.expectedUrl = location.href;
this.urlListeners = [];
this.hoverListener = noop;
diff --git a/src/Scope.js b/src/Scope.js
index ac07c7a4..6d68eeed 100644
--- a/src/Scope.js
+++ b/src/Scope.js
@@ -53,14 +53,8 @@ function expressionCompile(exp){
parser.assertAllConsumed();
compileCache[exp] = expFn;
}
- return parserNewScopeAdapter(expFn);
-}
-
-// return expFn
-// TODO(remove this hack)
-function parserNewScopeAdapter(fn) {
return function(){
- return fn(this);
+ return expFn(this);
};
}
diff --git a/src/apis.js b/src/apis.js
index 166ca27c..fda28346 100644
--- a/src/apis.js
+++ b/src/apis.js
@@ -296,8 +296,9 @@ var angularFunction = {
if (isFunction(expression)){
return expression;
} else if (expression){
+ var fn = expressionCompile(expression);
return function($) {
- return expressionCompile(expression).apply($);
+ return fn.apply($);
};
} else {
return identity;