Conversation
As per [RFC 337](emberjs/rfcs#337), the way classes are initialized has changed. Namely, arguments are no longer available in `constructor` but they are still available in `init`. Because we used `constructor` to set properties from passed in arguments before, we started seeing error on Travis: ``` Error: Property set failed: object in path "unwrappedApi" could not be found. ``` This change switches to using `init` where appropriate and is a backwards compatible change.
An unfortunate side-effect of replacing `constructor` with `init` is that class properties are no longer assigned properly. They used to be assigned after `init`. So all class properties initializers that are not decorated with `@argument` need to be moved in `init`.
pzuraq
approved these changes
Nov 19, 2018
Contributor
|
@twokul Is it possible to get a new beta release containing these changes? |
Contributor
Author
|
@josemarluedke will do by the end of the week |
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
As per RFC 337, the way
classes are initialized has changed. Namely, arguments are no longer
available in
constructorbut they are still available ininit.Because we used
constructorto set properties from passed in argumentsbefore, we started seeing error on Travis:
This change switches to using
initwhere appropriate and is abackwards compatible change.
EDIT:
An unfortunate side-effect of replacing
constructorwithinitisthat class properties are no longer assigned properly. They used to be
assigned after
init. So all class properties initializers that are not decoratedwith
@argumentneed to be moved ininit.thanks to @pzuraq for brain dump and explaining me differences between
initandconstructor.