diff --git a/.gitignore b/.gitignore index 22345efbcd..897598d9c1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,9 +14,13 @@ dist /.package.json /packages/babel-runtime/core-js /packages/babel-runtime/helpers/*.js +!/packages/babel-runtime/helpers/toArray.js /packages/babel-runtime/helpers/builtin/*.js +!/packages/babel-runtime/helpers/builtin/toArray.js /packages/babel-runtime/helpers/builtin/es6/*.js +!/packages/babel-runtime/helpers/builtin/es6/toArray.js /packages/babel-runtime/helpers/es6/*.js +!/packages/babel-runtime/helpers/es6/toArray.js /packages/babel-register/test/.babel /packages/*/lib _babel.github.io diff --git a/packages/babel-runtime/helpers/builtin/es6/toArray.js b/packages/babel-runtime/helpers/builtin/es6/toArray.js new file mode 100644 index 0000000000..74e53155b9 --- /dev/null +++ b/packages/babel-runtime/helpers/builtin/es6/toArray.js @@ -0,0 +1,3 @@ +export default function (arr) { + return Array.isArray(arr) ? arr : Array.from(arr); +} \ No newline at end of file diff --git a/packages/babel-runtime/helpers/builtin/toArray.js b/packages/babel-runtime/helpers/builtin/toArray.js new file mode 100644 index 0000000000..aa850ef4c4 --- /dev/null +++ b/packages/babel-runtime/helpers/builtin/toArray.js @@ -0,0 +1,5 @@ +exports.__esModule = true; + +exports.default = function (arr) { + return Array.isArray(arr) ? arr : Array.from(arr); +}; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/es6/toArray.js b/packages/babel-runtime/helpers/es6/toArray.js new file mode 100644 index 0000000000..8aa5479738 --- /dev/null +++ b/packages/babel-runtime/helpers/es6/toArray.js @@ -0,0 +1,4 @@ +import _Array$from from "../../core-js/array/from"; +export default function (arr) { + return Array.isArray(arr) ? arr : _Array$from(arr); +} \ No newline at end of file diff --git a/packages/babel-runtime/helpers/toArray.js b/packages/babel-runtime/helpers/toArray.js new file mode 100644 index 0000000000..3104d8387f --- /dev/null +++ b/packages/babel-runtime/helpers/toArray.js @@ -0,0 +1,11 @@ +exports.__esModule = true; + +var _from = require("../core-js/array/from"); + +var _from2 = _interopRequireDefault(_from); + +exports.default = function (arr) { + return Array.isArray(arr) ? arr : (0, _from2.default)(arr); +}; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } \ No newline at end of file diff --git a/packages/babel-runtime/scripts/build-dist.js b/packages/babel-runtime/scripts/build-dist.js index 481477537c..659f05dd9a 100644 --- a/packages/babel-runtime/scripts/build-dist.js +++ b/packages/babel-runtime/scripts/build-dist.js @@ -1,5 +1,10 @@ const outputFile = require("output-file-sync"); +const kebabCase = require("lodash/kebabCase"); const coreDefinitions = require("babel-plugin-transform-runtime").definitions; +const helpers = require("babel-helpers"); +const babel = require("../../babel-core"); +const t = require("../../babel-types"); + const paths = ["is-iterable", "get-iterator"]; Object.keys(coreDefinitions.builtins).forEach((key) => { @@ -22,11 +27,6 @@ paths.forEach(function(path) { ); }); -const helpers = require("babel-helpers"); -const babel = require("../../babel-core"); -const t = require("../../babel-types"); - - function relative(filename) { return `${__dirname}/../${filename}`; } @@ -135,13 +135,13 @@ for (const modules of ["commonjs", false]) { buildHelper(helperName, modules, builtin) ); - // // compat - // var helperAlias = kebabCase(helperName); - // var content = !modules - // ? `export { default } from \"./${helperName}.js\";` - // : "module.exports = require(\"./" + helperName + ".js\");"; - // writeFile(`${dirname}_${helperAlias}.js`, content); - // if (helperAlias !== helperName) writeFile(`${dirname}${helperAlias}.js`, content); + // compat + var helperAlias = kebabCase(helperName); + var content = !modules + ? `export { default } from \"./${helperName}.js\";` + : "module.exports = require(\"./" + helperName + ".js\");"; + writeFile(`${dirname}_${helperAlias}.js`, content); + if (helperAlias !== helperName) writeFile(`${dirname}${helperAlias}.js`, content); } } }