* Fixed useBuiltIns and modules validation when using 'false' as option
* Added tests for 'validateUseBuiltInsOptions' and for 'validateModulesOption' when input is 'false'
Co-authored-by: Jovica Markoski <jovica@upshiftwork.com>
* Allow rest/spread on polyfilled or builtin iterables when `Symbol` unsupported
Currently, when `Symbol` is not supported, we allow using rest/spread with:
- arrays
- strings
- arguments
With this PR, it will be also possible to use it with
- maps
- sets
- binary arrays
While in old browsers es6 builtins would still need to be polyfilled, it's way
easier to polyfill them because `Symbol` cannot be reliably polyfilled.
I didn't use `instanceof` becase:
- it doesn't work with polyfills not attatched to the global scope
- when using Babel to load polyfills, it would force the inclusion of `Map` and `Set` polyfills even if they are not used
Downside: the current approach of relying on `toString || construcor.name` doesn't work with subclasses.
* Don't use Array.from for array-like objects
* Extract for-of iterator handling to a helper
Dis greatly recudes the code size when for-of is used multiple times across the
codebase. Also, makes it easier to read what's happening in a compiled loop.
* Unify spec and loose code
* Legacy implementation fallback
* Update tmp var name
* Updates from review and after rebase
* Prepare preset-env and compat-data for preset-modules
* Add transform-edge-default-parameters from preset-modules
* AUtomatically generate data from compat-table
* Add compat data for other plugins
* Updates after rebase
* Add more bugfixes to preset-env
* Update tests
* Add bugfix/transform-safari-for-shadowing
* Fix build script
* bugfix/transform-safari-block-shadowing
* Fix flow
* Include changes from 7127330f02b423d9cb0555b3d2a24dbccbc149b5
* Fix check-compat-data
* add plugins
* add plugin description
* run build-data
* set shipped proposals true
* update test fixtures
* corejs.proposals should not imply shipped proposals
* fix eslint errors
Please enter the commit message for your changes. Lines starting
* create new object in packages/babel-compat-data/scripts/data/plugin-features.js
* Use ~ for preset-env's @babel/compat-data dependency
* Revert "Use ~ for preset-env's @babel/compat-data dependency"
This reverts commit e7d57c7894095d381670cddfbbce06bd2a480a32.
* Allow using `preset-env` with newer versions of `compat-data`