emberjs/ember.js — pull request #2593 by ef4 (2013-04-29 22:25:51+00:00)
Title: Idempotent render

This change prevents us from tearing down and recreating a view when
the new view is functionally identical to the old view.

This has important benefits:

- when you're changing context within a route, the view itself
remains stable, and the controller has full control over how and
when to update the data it's presenting to the view
layer. (Previously, you got a forced re-render immediately whether
you were ready for it or not.)

- when you're changing between routes, you can decide to keep the
prior view in place, and replace it later when you're ready. (Think
animated transitions between routes.)

This supercedes the proposed changes in PR #2563 (which has already
been reverted).

Views are "functionally identical" if they have the same prototype, the same context, and the same template.