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 58ee8e97e4..4344f2cc71 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -310,8 +310,11 @@ export default function () { } else if (id.isObjectPattern()) { for (let i = 0; i < id.node.properties.length; i++) { const prop = id.node.properties[i]; + let propValue = prop.value; if (!t.isRestProperty(prop)) { - const propValue = prop.value; + if (t.isAssignmentPattern(propValue)) { + propValue = propValue.left; + } addTo(exports, propValue.name, propValue); exportsToInsert.push(buildExportsAssignment(propValue, propValue)); nonHoistedExportNames[propValue.name] = true; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/actual.js new file mode 100644 index 0000000000..03958a0709 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/actual.js @@ -0,0 +1 @@ +export const { foo, bar = 1 } = {}; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/expected.js new file mode 100644 index 0000000000..2f72b34fb6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/expected.js @@ -0,0 +1,5 @@ +"use strict"; + +const { foo, bar = 1 } = {}; +exports.foo = foo; +exports.bar = bar; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object/expected.js index ff1a912e33..83cc6e03df 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object/expected.js @@ -1,5 +1,5 @@ "use strict"; const { foo: bar, baz } = {}; -exports.baz = baz; exports.bar = bar; +exports.baz = baz;