emberjs/ember.js — pull request #4257 by rjackson (2014-01-30 01:29:06+00:00)
Title: Lazily bound attribute bindings

This change overhauls the internal implementation of `Ember.View.attributeBindings` to only setup bindings for properties that are present during the initial render, then adds a `setUnknownProperty` so that any `attributeBindings` that were not present during the first render get setup when they are first set.

This PR also adds `attributeBindings` for all of the HTML5 attributes for `TextField` and `TextArea`. Previously, binding to this many attributes unnecessarily added a significant performance penalty. Now these bindings are setup lazily for values that were not previously defined on the instance.

This change is completely backwards compatible and does not add new API exposure. I would like to consider this a `BUGFIX` and pull it into the `beta` branch if there are no objections.

-----

Thank you to @ebryn for working this up.