Ember 1.0 RC3

Today we are announcing the third Release Candidate of Ember 1.0. As we said when we released RC1, all releases until 1.0 is final will be about bugfixes and improvements, and should not have any breaking changes.

Performance

Since RC2, a series of performance improvements have landed.

When adjacent child views are scheduled for insertion they are are now batched together, and inserted together rather then one at a time.

Object deletion is now async, this prevents un-needed churn when destroying large interconnected object graphs.

The number of objects allocated during view rendering has been cut down.

The ongoing performance effort is being championed by Erik Bryn and Kris Selden.

Testing

There have been many fixes and improvements to App#reset, which should now correctly clear application state when invoked. Typically this is only used for integration tests.

1 2 App.reset();

Please Note: App.reset() now brings its own run loop, and no longer needs to be wrapped in one.

Initial work on a new ember-testing package has begun. The goal of this project is to make testing Ember applications easier, especially when it comes to testing asynchrony. As this effort matures, expect full documentation, examples and guides.

Props to Erik Bryn for researching integration testing approaches by many community members, including Jo Liss and Katie Gengler, and spearheading initial work on what will be our official library.

Ember Builds

Each successful CI run now publishes its build results to http://emberjs.com/builds. This should make it much simpler to reference and use the the latest ember build.

Thanks to Stanley Stuart, Luke Melia, Erik Bryn and others for getting this set up.

New Input and TextArea helpers

TextField , TextArea and Checkbox views now have corresponding handlebars helpers.

1 2 3 {{ view Ember.TextField valueBinding = " name " }} {{ view Ember.Checkbox checkedBinding = " isActive " }} {{ view Ember.TextArea valueBinding = " name " }}

can now be expressed as:

1 2 3 {{ input value = name }} {{ input type = checkbox checked = isActive }} {{ textarea value = name }}

We recommend using the "dynamic tag" forms rather than the {{view}} forms because they are equivalent to the static tags that we all know and love.

Note that when using dynamic tags, you do not need to use a Binding suffix and must leave out the quotation marks around the values. Ember will interpret quoted strings as static strings in this context.

Documentation

The API docs have been refined and filled in by more community members than we can mention here. Thank you everyone for helping out!

Changelog

The full CHANGELOG is available on Github, as always.