emberjs/ember.js — pull request #5444 by stefanpenner (2014-08-20 04:04:10+00:00)
Title: perf: only wrap methods that container _super in the function body

Some statistics:

50 / 122 only 40% of methods currently being superWrapped need to be.

stress app boot: superWrapper calls before: 48746 after: 21094

This seems to reduce the cost of total consumed superWrapper time by the same ratio (about 40%) but also has have a net positive impact on all functions that now don't need go through the wrapper. This allows those traces to be optimized and further inlined.

Another nice bonus, is that methods not needing to be wrapped are also now much more debuggable.

my stress test app: https://github.com/stefanpenner/perf-stress

before;
![screenshot 2014-08-19 22 50 57](https://cloud.githubusercontent.com/assets/1377/3976326/f1148af2-281e-11e4-91fb-256918c23a50.png)

after:
![screenshot 2014-08-19 22 53 08](https://cloud.githubusercontent.com/assets/1377/3976327/f44ecc14-281e-11e4-8bb9-3739134bf51c.png)