ember install ember-native-class-polyfill
This polyfill currently supports the latest LTS versions of Ember 3.4 and 3.5.
If used with a more recent version of Ember in an app, it will not include the polyfill, and will warn the user. If included in an addon and used with a more recent version of Ember it will not include the polyfill and it will not warn the user, allowing addon authors to safely include the polyfill and support 3.4+.
IMPORTANT: We only ship the latest patch version of these Ember versions, so if you have a less recent version of Ember, it will be overwritten. If for some reason you want to pin your patch version of Ember, you should also pin the patch version of this polyfill:
With this polyfill installed, you can extend from any Ember class using native class syntax:
Init vs Constructor
Although it was possible to use native classes before the RFCs, there were some
subtle changes to behavior made to classes as part of the RFCs. Most notably,
constructor code will occur before
This behavior change was made in preparation for class fields, since they occur
during construction. The subtleties of these methods can be confusing, and as
such, it is recommended that you continue to use
init instead of
for any initialization code in your classes.
Class Fileds and Decorators
Note that this polyfill does not enable the usage of class field or decorators, and does not include any decorators. Ember has not yet added first class support for these features, and support for them will need to be added in future RFCs. This polyfill, and the behaviors shipped in the native class RFCs, solidify the behavior of classes so that we can prepare for both class fields and decorators separately.
If you would like to use these features, you can check out the ember-decorators project. The project is stable and committed to providing a stable API to build on, but cannot provide guarantees on changes to the behavior of decorators and class fields themselves.
git clone <repository-url>
yarn lint:js --fix
ember test– Runs the test suite on the current Ember version
ember test --server– Runs the test suite in "watch mode"
ember try:each– Runs the test suite against multiple Ember versions
Running the dummy application
- Visit the dummy application at http://localhost:4200.
For more information on using ember-cli, visit https://ember-cli.com/.
This project is licensed under the MIT License.