diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index 7aa8518aec2f..50d6b4f97d57 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -861,8 +861,13 @@ helpers.arrayWithHoles = helper("7.0.0-beta.0")` helpers.iterableToArray = helper("7.0.0-beta.0")` export default function _iterableToArray(iter) { if ( - Symbol.iterator in Object(iter) || - Object.prototype.toString.call(iter) === "[object Arguments]" + Array.isArray(iter) + || typeof iter === 'string' + || (typeof Symbol === 'function' && Symbol.iterator in Object(iter)) + || (iter && 'length' in iter) + || (typeof Map !== 'undefined' && iter instanceof Map) + || (typeof Set !== 'undefined' && iter instanceof Set) + || Object.prototype.toString.call(iter) === "[object Arguments]" ) return Array.from(iter); } `; @@ -1539,7 +1544,9 @@ helpers.decorate = helper("7.0.2")` value: "Descriptor", configurable: true, }; - Object.defineProperty(obj, Symbol.toStringTag, desc); + + if (typeof Symbol === 'function' && Symbol.toStringTag) + Object.defineProperty(obj, Symbol.toStringTag, desc); if (element.kind === "field") obj.initializer = element.initializer; @@ -1653,7 +1660,9 @@ helpers.decorate = helper("7.0.2")` }; var desc = { value: "Descriptor", configurable: true }; - Object.defineProperty(obj, Symbol.toStringTag, desc); + + if (typeof Symbol === 'function' && Symbol.toStringTag) + Object.defineProperty(obj, Symbol.toStringTag, desc); return obj; } diff --git a/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js index 9f20ecdbd956..652fd6710607 100644 --- a/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js +++ b/packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js @@ -1,5 +1,9 @@ import _Array$from from "../../core-js/array/from"; +import _Set from "../../core-js/set"; +import _Map from "../../core-js/map"; import _isIterable from "../../core-js/is-iterable"; +import _Symbol from "../../core-js/symbol"; +import _Array$isArray from "../../core-js/array/is-array"; export default function _iterableToArray(iter) { - if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter); + if (_Array$isArray(iter) || typeof iter === 'string' || typeof _Symbol === 'function' && _isIterable(Object(iter)) || iter && 'length' in iter || typeof _Map !== 'undefined' && iter instanceof _Map || typeof _Set !== 'undefined' && iter instanceof _Set || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter); } \ No newline at end of file diff --git a/packages/babel-runtime-corejs2/helpers/iterableToArray.js b/packages/babel-runtime-corejs2/helpers/iterableToArray.js index c7834a312257..24fa785c3220 100644 --- a/packages/babel-runtime-corejs2/helpers/iterableToArray.js +++ b/packages/babel-runtime-corejs2/helpers/iterableToArray.js @@ -1,9 +1,17 @@ var _Array$from = require("../core-js/array/from"); +var _Set = require("../core-js/set"); + +var _Map = require("../core-js/map"); + var _isIterable = require("../core-js/is-iterable"); +var _Symbol = require("../core-js/symbol"); + +var _Array$isArray = require("../core-js/array/is-array"); + function _iterableToArray(iter) { - if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter); + if (_Array$isArray(iter) || typeof iter === 'string' || typeof _Symbol === 'function' && _isIterable(Object(iter)) || iter && 'length' in iter || typeof _Map !== 'undefined' && iter instanceof _Map || typeof _Set !== 'undefined' && iter instanceof _Set || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter); } module.exports = _iterableToArray; \ No newline at end of file diff --git a/packages/babel-runtime/helpers/esm/iterableToArray.js b/packages/babel-runtime/helpers/esm/iterableToArray.js index 671e400d9166..e82c3df19ee2 100644 --- a/packages/babel-runtime/helpers/esm/iterableToArray.js +++ b/packages/babel-runtime/helpers/esm/iterableToArray.js @@ -1,3 +1,3 @@ export default function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (Array.isArray(iter) || typeof iter === 'string' || typeof Symbol === 'function' && Symbol.iterator in Object(iter) || iter && 'length' in iter || typeof Map !== 'undefined' && iter instanceof Map || typeof Set !== 'undefined' && iter instanceof Set || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } \ No newline at end of file diff --git a/packages/babel-runtime/helpers/iterableToArray.js b/packages/babel-runtime/helpers/iterableToArray.js index e917e57937bf..9168b5435627 100644 --- a/packages/babel-runtime/helpers/iterableToArray.js +++ b/packages/babel-runtime/helpers/iterableToArray.js @@ -1,5 +1,5 @@ function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (Array.isArray(iter) || typeof iter === 'string' || typeof Symbol === 'function' && Symbol.iterator in Object(iter) || iter && 'length' in iter || typeof Map !== 'undefined' && iter instanceof Map || typeof Set !== 'undefined' && iter instanceof Set || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } module.exports = _iterableToArray; \ No newline at end of file