aboutsummaryrefslogtreecommitdiffstats
path: root/perf
diff options
context:
space:
mode:
authorMisko Hevery2011-03-23 09:33:29 -0700
committerVojta Jina2011-08-02 01:00:03 +0200
commit8f0dcbab804180828d6859b1340c86cf161209fb (patch)
treed13d47d47a1889cb7c96a87cecacd2e25307d51c /perf
parent1f4b417184ce53af15474de065400f8a686430c5 (diff)
downloadangular.js-8f0dcbab804180828d6859b1340c86cf161209fb.tar.bz2
feat(scope): new and improved scope implementation
- Speed improvements (about 4x on flush phase) - Memory improvements (uses no function closures) - Break $eval into $apply, $dispatch, $flush - Introduced $watch and $observe Breaks angular.equals() use === instead of == Breaks angular.scope() does not take parent as first argument Breaks scope.$watch() takes scope as first argument Breaks scope.$set(), scope.$get are removed Breaks scope.$config is removed Breaks $route.onChange callback has not "this" bounded
Diffstat (limited to 'perf')
-rw-r--r--perf/MiscPerf.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/perf/MiscPerf.js b/perf/MiscPerf.js
new file mode 100644
index 00000000..c1d71cbd
--- /dev/null
+++ b/perf/MiscPerf.js
@@ -0,0 +1,21 @@
+describe('perf misc', function(){
+ it('operation speeds', function(){
+ perf(
+ function typeByTypeof(){ return typeof noop == 'function'; }, // WINNER
+ function typeByProperty() { return noop.apply && noop.call; },
+ function typeByConstructor() { return noop.constructor == Function; }
+ );
+ });
+
+ it('property access', function(){
+ var name = 'value';
+ var none = 'x';
+ var scope = {};
+ perf(
+ function direct(){ return scope.value; }, // WINNER
+ function byName() { return scope[name]; },
+ function undefinedDirect(){ return scope.x; },
+ function undefiendByName() { return scope[none]; }
+ );
+ });
+});