From 41066f55ea5656aefd8a28418e8204d67b60db1d Mon Sep 17 00:00:00 2001 From: Jesse McCarthy Date: Mon, 11 Jan 2016 10:39:54 -0500 Subject: [PATCH 1/2] Add fixtures for deopt due to `arguments`. --- .../parameters/rest-arguments-deoptimisation/actual.js | 3 +++ .../parameters/rest-arguments-deoptimisation/expected.js | 7 +++++++ 2 files changed, 10 insertions(+) create mode 100644 packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/actual.js create mode 100644 packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/expected.js diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/actual.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/actual.js new file mode 100644 index 0000000000..ad80b3b6b6 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/actual.js @@ -0,0 +1,3 @@ +function x (...rest) { + arguments; +} diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/expected.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/expected.js new file mode 100644 index 0000000000..51cfa47eb1 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arguments-deoptimisation/expected.js @@ -0,0 +1,7 @@ +function x() { + for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) { + rest[_key] = arguments[_key]; + } + + arguments; +} From 857675c99c4d7e28446fd50926427a7e02171ded Mon Sep 17 00:00:00 2001 From: Jesse McCarthy Date: Tue, 12 Jan 2016 16:18:07 -0500 Subject: [PATCH 2/2] Add fixtures to exercise `shadow` conditional. --- .../fixtures/parameters/rest-arrow-functions/actual.js | 5 +++++ .../fixtures/parameters/rest-arrow-functions/expected.js | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/actual.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/actual.js index e9d376e92b..71e7259277 100644 --- a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/actual.js +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/actual.js @@ -22,3 +22,8 @@ function demo1(...args) { return args[i+0]; }; } + +var x = (...rest) => { + if (noNeedToWork) return 0; + return rest; +}; diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/expected.js b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/expected.js index 33eea1d670..322e79dc7e 100644 --- a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/expected.js +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/rest-arrow-functions/expected.js @@ -28,3 +28,12 @@ function demo1() { return args[i + 0]; }; } + +var x = function () { + for (var _len2 = arguments.length, rest = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + rest[_key2] = arguments[_key2]; + } + + if (noNeedToWork) return 0; + return rest; +};