From 43e0cfb08da3d385d869fe434b64c283d33dadf7 Mon Sep 17 00:00:00 2001 From: Moti Zilberman Date: Tue, 13 Sep 2016 19:06:52 +0300 Subject: [PATCH] Fix UpdateExpression handling in es2015-modules-commonjs, resolve #4462 --- .../src/index.js | 3 +-- .../test/fixtures/regression/4462-T7565/actual.js | 4 ++++ .../test/fixtures/regression/4462-T7565/expected.js | 11 +++++++++++ .../test/fixtures/regression/4462-T7565/options.json | 3 +++ 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/actual.js create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/expected.js create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/options.json 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 9554fa57d6ad..4499f7bb26bf 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -119,8 +119,7 @@ export default function () { } nodes.push(t.binaryExpression(operator, arg.node, t.numericLiteral(1))); - let newPaths = path.replaceWithMultiple(t.sequenceExpression(nodes)); - for (const newPath of newPaths) this.requeueInParent(newPath); + path.replaceWithMultiple(t.sequenceExpression(nodes)); } }; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/actual.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/actual.js new file mode 100644 index 000000000000..b4a126bfbde7 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/actual.js @@ -0,0 +1,4 @@ +export { yy, zz }; + +var yy = 0; +var zz = yy++; diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/expected.js new file mode 100644 index 000000000000..32642ceb55fc --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/expected.js @@ -0,0 +1,11 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.yy = yy; +exports.zz = zz; + + +var yy = 0; +var zz = (exports.yy = yy += 1, yy - 1); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/options.json b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/options.json new file mode 100644 index 000000000000..c13c5f627fd1 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/regression/4462-T7565/options.json @@ -0,0 +1,3 @@ +{ + "presets": ["es2015"] +}