diff options
| author | Misko Hevery | 2011-03-23 09:33:29 -0700 | 
|---|---|---|
| committer | Vojta Jina | 2011-08-02 01:00:03 +0200 | 
| commit | 8f0dcbab804180828d6859b1340c86cf161209fb (patch) | |
| tree | d13d47d47a1889cb7c96a87cecacd2e25307d51c /perf | |
| parent | 1f4b417184ce53af15474de065400f8a686430c5 (diff) | |
| download | angular.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.js | 21 | 
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]; } +    ); +  }); +}); | 
