Ember 1.6

We are pleased to announce that both Ember.js 1.6.0 and the first beta in the 1.7 serieshave just been released. This comes as the sixth cycle of our release process that beganjust after 1.0 was released.

  1. Embers 1604 San Antonio

The Ember Release Management Team maintains a variety of ways to get Ember and Ember Data builds. The latest Release, Beta, and Canary builds of Ember and Ember data can be found here.For each channel a development, minified, and production version is available. Ember CLI is the backbone of modern Ember apps, providing code generators to create new entities and putting the necessary files in the right place, every time. Ember apps come with a built-in development environment with fast rebuilds, auto-reload, and a test runner!

Delays Detailed

As many of you know, the 1.6 release is the first to be published after converting thecodebase to ES6 modules. The 1.6+ builds are now transpiled by the es6-module-transpilerinto AMD and use a small AMD loader to handleloading the transpiled modules. Unfortunately, adding the additional loader overhead onboot has a fairly significant performance impact on boot speed of older mobile clients(approximately 5-10% boot time penalty).

This regression was brought to our attention just before 1.6.0 was intended to ship (lateMay), and we decided to hold the release until a fix could be applied. In retrospect thiswas absolutely the wrong decision. The fix has taken much longer than originally anticipatedand in the meantime folks are stuck with 1.5.1. Many of our users either are not affectedor do not care about this regression, and they are forced to use beta/canary channels forcertain bug fixes that have already been made.

As a group the core team has decided that this type of delay is absolutely unacceptable andapologize for the lack of clarity into what is going on.

New features in 1.6

Ember.computed.empty

Ember.computed.empty has been updated to automatically respect arrays without forcing users to use array.[]as the dependent key.

Test Friendly Promises

With 1.5.1 you were forced to wrap any Promise resolve and/or reject calls in an Ember.run loopwhile in testing, but the same code did not need to be wrapped in a run loop for normal operation.

In 1.6.0 you do not need to do this promise run loop wrapping simply for the purposes of testing.

Ember.Route.prototype.render Now has a model Option

Previously, you would need to set the model explicitly on the other controller using controllerFor (while trying to render a different template with renderTemplate#render).

Now render has an option to set the model that set the controller's content after the controller has beenlooked-up.

Before:

After:

Movie

Other Notable Changes

  • Add better debugging for Resolver Lookup
175

A LOG_RESOLVER flag can now be added to your application instance to get nice logging outputshowing each lookup the resolver is doing, including which were 'hits' and which were 'misses'(checked items are 'hits'):

  • Ensure context is unchanged when using keywords with itemController for {{each}} or controller for {{with}}.

Previously the following code would bind this in the template block to theitemController's content (even though the keyword form of {{each}} or {{with}} is used). In 1.6.0the context of the block will correctly be unchanged, and the post property will be wrapped in the post controller.

  • Fix swallowed rejections in asynchronous route hooks (this may mean that errors that were previously completelyswallowed are now surfaced in your application).
  • Ember.copy and Ember.isEqual now support Date objects.
  • Backburner and RSVP now use the Ember.onerror handler if present to log errors.
  • An error is now thrown when injecting a factory into all factories of the same type.

Query Params in 1.7 Beta

Thanks to the tireless work of @machty and team, query params support has finally landed and isenabled by default in the 1.7 beta series! Please test and report any issues you come across.

Other Improvements

Ember 1.6

Embers 1604 San Antonio

As usual, there are a ton of bug fixes and small improvements in thisrelease. You can see a list of all the changes in the CHANGELOG: