diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js index 39d2fbf8a1aa..bc46255572ea 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -119,6 +119,8 @@ export default function() { } } else if (left.isArrayPattern()) { for (const element of left.node.elements) { + if (!element) continue; + const name = element.name; const exports = this.exports[name]; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/actual.js index 09c986a2d1b5..44169dbd66b8 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/actual.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/actual.js @@ -12,3 +12,7 @@ export function f2 () { export function f3 () { [x, y, z] = [3, 4, 5] } + +export function f4 () { + [x, , y] = [3, 4, 5] +} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/expected.js index 5f98b9122643..f3c6fc913996 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/expected.js @@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.f1 = f1; exports.f2 = f2; exports.f3 = f3; +exports.f4 = f4; let x = exports.x = 0; let y = exports.y = 0; @@ -35,3 +36,9 @@ function f3() { exports.y = y; exports.x = x; } + +function f4() { + [x,, y] = [3, 4, 5]; + exports.y = y; + exports.x = x; +} diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/array-literal-with-hole/actual.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/array-literal-with-hole/actual.js new file mode 100644 index 000000000000..7431811adb31 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/array-literal-with-hole/actual.js @@ -0,0 +1 @@ +var arr = [ 'a',, 'b', ...c ]; diff --git a/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/array-literal-with-hole/expected.js b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/array-literal-with-hole/expected.js new file mode 100644 index 000000000000..8dff97dd4266 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-spread/test/fixtures/spread/array-literal-with-hole/expected.js @@ -0,0 +1 @@ +var arr = ['a',, 'b'].concat(babelHelpers.toConsumableArray(c));