Skip to content

Commit

Permalink
Should call return()
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperSodaSea committed Nov 10, 2022
1 parent a165501 commit 575d0cc
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 10 deletions.
11 changes: 6 additions & 5 deletions packages/babel-helpers/src/helpers.ts
Expand Up @@ -787,12 +787,13 @@ helpers.iterableToArrayLimit = helper("7.0.0-beta.0")`
var _n = true;
var _d = false;
var _s, _e;
_i = _i.call(arr);
if (i === 0) {
if (typeof _i !== "object" && typeof _i !== "function") return;
return _arr;
}
try {
_i = _i.call(arr);
if (i === 0) {
if (typeof _i !== "object" && typeof _i !== "function") return;
_n = false;
return _arr;
}
for (; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
Expand Down
@@ -1,17 +1,17 @@
expect(function () {
var [] = null;
var [] = null;
}).toThrow("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");

expect(function () {
var [] = 42;
var [] = 42;
}).toThrow("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");

expect(function () {
var [] = {};
var [] = {};
}).toThrow("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");

expect(function () {
var [] = { [Symbol.iterator]: function() {} };
var [] = { [Symbol.iterator]: function() {} };
}).toThrow("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");

var [] = [];
Expand All @@ -21,3 +21,16 @@ var [] = (function*() { throw new Error("Should not throw"); })();
var [] = { [Symbol.iterator]: function() { return {}; } }
var [] = { [Symbol.iterator]: function() { return function() {}; } }
var [] = { [Symbol.iterator]: async function*() {} }

var returnCalled = false;
var [] = {
[Symbol.iterator]: function() {
return {
return: function() {
returnCalled = true;
return {};
}
};
}
};
expect(returnCalled).toStrictEqual(true);
Expand Up @@ -10,3 +10,15 @@ var [] = (function*() { throw new Error("Should not throw"); })();
var [] = { [Symbol.iterator]: function() { return {}; } }
var [] = { [Symbol.iterator]: function() { return function() {}; } }
var [] = { [Symbol.iterator]: async function*() {} }

var returnCalled = false;
var [] = {
[Symbol.iterator]: function() {
return {
return: function() {
returnCalled = true;
return {};
}
};
}
};
Expand Up @@ -51,3 +51,15 @@ var _Symbol$iterator7 = {
})
},
_Symbol$iterator8 = babelHelpers.slicedToArray(_Symbol$iterator7, 0);
var returnCalled = false;
var _Symbol$iterator9 = {
[Symbol.iterator]: function () {
return {
return: function () {
returnCalled = true;
return {};
}
};
}
},
_Symbol$iterator10 = babelHelpers.slicedToArray(_Symbol$iterator9, 0);

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 575d0cc

Please sign in to comment.