diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index 36eef6231245..4397c0f817bb 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -903,7 +903,7 @@ helpers.iterableToArrayLimit = helper("7.0.0-beta.0")` // _i = _iterator // _s = _step - var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); + var _i = arr == null ? null : (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/exec.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/exec.js new file mode 100644 index 000000000000..ef1616fda0fb --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/exec.js @@ -0,0 +1,3 @@ +let [a] = ''; + +expect(a).toBe(undefined) diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/input.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/input.js new file mode 100644 index 000000000000..f17170c79452 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/input.js @@ -0,0 +1 @@ +let [a] = ''; diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/output.js new file mode 100644 index 000000000000..ce927f00b5df --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/empty-string/output.js @@ -0,0 +1,3 @@ +var _ref = '', + _ref2 = babelHelpers.slicedToArray(_ref, 1), + a = _ref2[0]; diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7199/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7199/output.js index 159b5995e2f0..637b853d9868 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7199/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/T7199/output.js @@ -12,7 +12,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o = function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }