diff --git a/packages/babel-plugin-transform-es2015-parameters/src/rest.js b/packages/babel-plugin-transform-es2015-parameters/src/rest.js index 5522c36310..d0868536b2 100644 --- a/packages/babel-plugin-transform-es2015-parameters/src/rest.js +++ b/packages/babel-plugin-transform-es2015-parameters/src/rest.js @@ -30,7 +30,7 @@ let memberExpressionOptimisationVisitor = { path.skip(); }, - Function(path, state) { + "Function|ClassProperty": function (path, state) { // Detect whether any reference to rest is contained in nested functions to // determine if deopt is necessary. let oldNoOptimise = state.noOptimise; diff --git a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/options.json b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/options.json index 67f00862a7..107c109587 100644 --- a/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/options.json +++ b/packages/babel-plugin-transform-es2015-parameters/test/fixtures/parameters/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "syntax-flow", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-es2015-spread", "transform-es2015-classes", "transform-es2015-destructuring", "transform-es2015-arrow-functions", "syntax-async-functions", "transform-es2015-for-of"] + "plugins": ["transform-class-properties", "external-helpers", "syntax-flow", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-es2015-spread", "transform-es2015-classes", "transform-es2015-destructuring", "transform-es2015-arrow-functions", "syntax-async-functions", "transform-es2015-for-of"] } 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 71e7259277..80988d02b6 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 @@ -27,3 +27,10 @@ var x = (...rest) => { if (noNeedToWork) return 0; return rest; }; + +var innerclassproperties = (...args) => ( + class { + static args = args; + args = args; + } +); \ No newline at end of file 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 322e79dc7e..83e4df00b8 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 @@ -37,3 +37,16 @@ var x = function () { if (noNeedToWork) return 0; return rest; }; + +var innerclassproperties = function () { + var _class, _temp; + + for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; + } + + return _temp = _class = function _class() { + babelHelpers.classCallCheck(this, _class); + this.args = args; + }, _class.args = args, _temp; +};