From 98824e7cb781ecbea493075111054d6da27a38d5 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Tue, 15 Aug 2017 17:01:25 -0400 Subject: [PATCH] backport the fix #6052 [skip ci] --- .../src/index.js | 1 + .../test/fixtures/interop/export-destructured/actual.js | 4 ++++ .../test/fixtures/interop/export-destructured/expected.js | 7 +++++++ 3 files changed, 12 insertions(+) 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 3bc4d54db7..697ab5e8d3 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -109,6 +109,7 @@ 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 09c986a2d1..44169dbd66 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 d7015886fc..1dcd7bcb56 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; @@ -25,3 +26,9 @@ function f3() { exports.y = y; exports.x = x; } + +function f4() { + [x,, y] = [3, 4, 5]; + exports.y = y; + exports.x = x; +}