Properly handle class properties proposal #420
Merged
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.
Historically, we only add the
@babel/plugin-proposal-class-properties
so that we make sure the ordering is right with the decorators proposal (otherwise, it can end up compiling in the wrong order). With a recent version of@babel/preset-env
and, transitively,caniuse-lite
, this resulted in cases where we added that plugin but not related plugins for private class properties, which in turn triggered a Babel assertion about not adding the properties together as appropriate when the caniuse database (correctly) reported that .The fix is:
Bump to a more recent version of
@babel/preset-env
, which comes with a correspondingly bumped version ofcaniuse-lite
, which in turn correctly understands what the latest versions of targeted browsers are.Include in
ember-cli-babel
itself a check for whether we even need to add the plugin, and only provide it when the providedtargets
indicate that they require it.Resolves #419