From 45b41740d851ccfc2189f987f55fd2bff776a5b4 Mon Sep 17 00:00:00 2001 From: Artem Yavorsky Date: Sat, 18 Mar 2017 16:26:22 +0200 Subject: [PATCH] Consider default params for object pattern. --- .../src/index.js | 5 ++++- .../actual.js | 1 + .../expected.js | 5 +++++ .../strict/export-const-destructuring-object/expected.js | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/actual.js create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/expected.js 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;