plugin-features.js
Example:
If you were going to add **
which is in ES2016:
Find the relevant entries on compat-table:
exponentiation (**) operator
Find the corresponding babel plugin:
@babel/plugin-transform-exponentiation-operator
And add them in this structure:
// es2016
"@babel/plugin-transform-exponentiation-operator": {
features: [
"exponentiation (**) operator",
],
},
core-js@2
polyfillingExample:
In case you want to add Object.values
which is in ES2017:
Find the relevant feature and subfeature on compat-table
and split it with /
:
Object static methods / Object.values
Find the corresponding module on core-js@2
:
es7.object.values.js
Find required ES version in corejs2-built-in-features.js
and add the new feature:
const es = {
//...
"es7.object.values": "Object static methods / Object.values"
}
If you wan to transform a new built-in by useBuiltIns: 'usage'
, add mapping to related core-js
modules to this file.
core-js@3
polyfillingJust update the version of core-js-compat
in dependencies.
If you wan to transform a new built-in by useBuiltIns: 'usage'
, add mapping to related core-js
modules to this file.
If you want to mark a new proposal as shipped, add it to this list.
plugins.json
Until compat-table
is a standalone npm module for data we are using the git url
"compat-table": "kangax/compat-table#[latest-commit-hash]"
,
So we update and then run npm run build-data
. If there are no changes, then plugins.json
will be the same.
npm test
npm run coverage
All the tests for @babel/preset-env
exist in the test/fixtures
folder. The
test setup and conventions are exactly the same as testing a Babel plugin, so
please read our documentation on writing tests.
debug
optionTesting debug output to stdout
is similar. Under the test/debug-fixtures
,
create a folder with a descriptive name of your test, and add the following:
options.json
file (just as the other tests, this is essentially a
.babelrc
) with the desired test configuration (required)stdout.txt
file with the expected debug output. For added
convenience, if there is no stdout.txt
present, the test runner will
generate one for you.