diff --git a/packages/babel-plugin-transform-es2015-parameters/src/rest.js b/packages/babel-plugin-transform-es2015-parameters/src/rest.js index b05e7ece4d..45c31f61ab 100644 --- a/packages/babel-plugin-transform-es2015-parameters/src/rest.js +++ b/packages/babel-plugin-transform-es2015-parameters/src/rest.js @@ -30,6 +30,8 @@ let memberExpressionOptimisationVisitor = { }, Flow(path) { + // Do not skip TypeCastExpressions as the contain valid non flow code + if (path.isTypeCastExpression()) return; // don't touch reference in type annotations path.skip(); }, diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/actual.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/actual.js new file mode 100644 index 0000000000..d396f2dafb --- /dev/null +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/actual.js @@ -0,0 +1,6 @@ +let oneOf = (...nodes) => { + if (nodes.length === 1) { + return nodes[0]; + } + return ((new OneOfNode(nodes)): any) +} diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/expected.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/expected.js new file mode 100644 index 0000000000..4a8cc5ad70 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/expected.js @@ -0,0 +1,10 @@ +let oneOf = function () { + for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) { + nodes[_key] = arguments[_key]; + } + + if (nodes.length === 1) { + return nodes[0]; + } + return new OneOfNode(nodes); +}; diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/options.json b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/options.json new file mode 100644 index 0000000000..b9bad770e0 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/regression-4634/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["syntax-flow", "transform-flow-strip-types", "transform-es2015-parameters", "transform-es2015-destructuring", "transform-es2015-arrow-functions"] +}