Skip to content

Commit

Permalink
Add for-of fallback for arrays in browsers without symbol support
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Mar 14, 2020
1 parent 40ce663 commit d5b9ea3
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion packages/babel-helpers/src/helpers.js
Expand Up @@ -1010,8 +1010,24 @@ helpers.createForOfIteratorHelper = helper("7.9.0")`
// f: finish (always called at the end)
export default function _createForOfIteratorHelper(o) {
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null)
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
// Fallback for engines without symbol support
if (Array.isArray(o)) {
var i = 0;
var F = function(){};
return {
s: F,
n: function() {
if (i >= o.length) return { done: true };
return { done: false, value: o[i++] };
},
e: F,
f: F,
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var it, normalCompletion = true, didErr = false, err;
Expand Down Expand Up @@ -1044,6 +1060,7 @@ helpers.createForOfIteratorHelperLoose = helper("7.9.0")`
var i = 0;
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
// Fallback for engines without symbol support
if (Array.isArray(o))
return function() {
if (i >= o.length) return { done: true };
Expand Down

0 comments on commit d5b9ea3

Please sign in to comment.