diff --git a/packages/babel-plugin-transform-object-rest-spread/src/index.js b/packages/babel-plugin-transform-object-rest-spread/src/index.js index 7d04ee311d..b54355ab9a 100644 --- a/packages/babel-plugin-transform-object-rest-spread/src/index.js +++ b/packages/babel-plugin-transform-object-rest-spread/src/index.js @@ -4,6 +4,7 @@ export default function ({ types: t }) { path.traverse({ RestProperty() { foundRestProperty = true; + path.stop(); } }); return foundRestProperty; @@ -14,6 +15,7 @@ export default function ({ types: t }) { path.traverse({ SpreadProperty() { foundSpreadProperty = true; + path.stop(); } }); return foundSpreadProperty; diff --git a/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/actual.js b/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/actual.js index 8d610842d8..6f0367fb7c 100644 --- a/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/actual.js +++ b/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/actual.js @@ -1 +1,3 @@ z = { x, ...y }; + +z = { x, w: { ...y } }; diff --git a/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/expected.js b/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/expected.js index 5e42763fce..1f6d4a3487 100644 --- a/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/expected.js +++ b/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/expected.js @@ -1,3 +1,5 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; z = _extends({ x }, y); + +z = _extends({ x, w: { ...y } });