Fix updating fragment arrays multiple times in the same runloop #487
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In production builds, certain fragment array mutations produce the wrong result. For example, this code swaps the first two items in the array:
In development, this works as expected. But in a production build, this code results in the first item being duplicated (as if the
removeAt
did not happen).There are already some failing tests for this issue, as long as we run the tests in production mode:
Some of the existing tests depend on
Ember.assert
throwing an exception. To make this work in production mode, I've replacedassert.throws
withexpectAssertion
, which is similar to ember-qunit-assert-helpers and to ember's own expectAssertion helper.