diff --git a/packages/babel-plugin-transform-spread/src/index.js b/packages/babel-plugin-transform-spread/src/index.js index a0d434baaa..6b15451c93 100644 --- a/packages/babel-plugin-transform-spread/src/index.js +++ b/packages/babel-plugin-transform-spread/src/index.js @@ -105,7 +105,7 @@ export default function({ types: t }, options) { callee.object = t.assignmentExpression("=", temp, callee.object); contextLiteral = temp; } else { - contextLiteral = callee.object; + contextLiteral = t.cloneDeep(callee.object); } t.appendToMemberExpression(callee, t.identifier("apply")); } else { diff --git a/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/actual.js b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/actual.js new file mode 100644 index 0000000000..3338732a60 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/actual.js @@ -0,0 +1,2 @@ +import a from 'a'; +a.preview(...c); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/expected.js b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/expected.js new file mode 100644 index 0000000000..e39754ba7b --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/expected.js @@ -0,0 +1,5 @@ +"use strict"; + +var _a = babelHelpers.interopRequireDefault(require("a")); + +_a.default.preview.apply(_a.default, babelHelpers.toConsumableArray(c)); diff --git a/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/options.json b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/options.json new file mode 100644 index 0000000000..e9934ced59 --- /dev/null +++ b/packages/babel-plugin-transform-spread/test/fixtures/regression/6647/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-spread", "transform-modules-commonjs"] +}