emberjs/ember.js — pull request #3110 by eviltrout (2013-08-06 17:53:01+00:00)
Title: Optimization: Disable W3C Range API by default

Ember.js will use the W3C Range API for updating the contents of templates when bindings change. However, not all browsers support the range API and Ember.js provides an alternate way of updating the DOM in this case.

It seems the W3C range API is significantly slower than using the alternate path. I've tested in Chrome, Firefox, Safari and Chrome on Android. All are much faster without using the API. I've also added a Template Bindings test to the ember-performance suite.

**This patch disables the range API by default**. It can be re-enabled using a new environment variable, `ENV. ENABLE_RANGE_API`. Here are the results in Chrome 23:

### Before
![before](https://f.cloud.github.com/assets/17538/919037/ef2e909e-fec0-11e2-867f-a0dfecf60c54.png)

### After
![after](https://f.cloud.github.com/assets/17538/919035/e0666cf8-fec0-11e2-8fd8-20a6c887bc33.png)