Merge pull request #889 from neVERberleRfellerER/rest-args-optimization-v2
Add rest parameters optimization
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
var concat = (...arrs) => {
|
||||
|
||||
var x = arrs[0];
|
||||
var y = arrs[1];
|
||||
};
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
var _arguments = arguments;
|
||||
var concat = function () {
|
||||
for (var _len = arguments.length, arrs = Array(_len), _key = 0; _key < _len; _key++) {
|
||||
arrs[_key] = arguments[_key];
|
||||
}
|
||||
var x = _arguments[0];
|
||||
var y = _arguments[1];
|
||||
};
|
||||
|
||||
|
||||
24
test/fixtures/transformation/es6-parameters.rest/deopt/actual.js
vendored
Normal file
24
test/fixtures/transformation/es6-parameters.rest/deopt/actual.js
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
var x = function (foo, ...bar) {
|
||||
console.log(bar);
|
||||
};
|
||||
|
||||
var y = function (foo, ...bar) {
|
||||
var x = function z(bar) {
|
||||
bar[1] = 5;
|
||||
};
|
||||
};
|
||||
|
||||
var z = function (foo, ...bar) {
|
||||
var x = function () {
|
||||
bar[1] = 5;
|
||||
};
|
||||
};
|
||||
|
||||
var a = function (foo, ...bar) {
|
||||
return bar.join(',');
|
||||
};
|
||||
|
||||
var b = function (foo, ...bar) {
|
||||
var join = "join";
|
||||
return bar[join];
|
||||
};
|
||||
43
test/fixtures/transformation/es6-parameters.rest/deopt/expected.js
vendored
Normal file
43
test/fixtures/transformation/es6-parameters.rest/deopt/expected.js
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
|
||||
var x = function x(foo) {
|
||||
for (var _len = arguments.length, bar = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
bar[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
console.log(bar);
|
||||
};
|
||||
|
||||
var y = function y(foo) {
|
||||
var x = function z(bar) {
|
||||
bar[1] = 5;
|
||||
};
|
||||
};
|
||||
|
||||
var z = function z(foo) {
|
||||
for (var _len = arguments.length, bar = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
bar[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
var x = function x() {
|
||||
bar[1] = 5;
|
||||
};
|
||||
};
|
||||
|
||||
var a = function a(foo) {
|
||||
for (var _len = arguments.length, bar = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
bar[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
return bar.join(",");
|
||||
};
|
||||
|
||||
var b = function b(foo) {
|
||||
for (var _len = arguments.length, bar = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
bar[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
var join = "join";
|
||||
return bar[join];
|
||||
};
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
var t = function (f, ...items) {
|
||||
|
||||
var x = f;
|
||||
x = items[0];
|
||||
x = items[1];
|
||||
};
|
||||
|
||||
function t(f, ...items) {
|
||||
|
||||
var x = f;
|
||||
x = items[0];
|
||||
x = items[1];
|
||||
}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
var t = function t(f) {
|
||||
for (var _len = arguments.length, items = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
items[_key - 1] = arguments[_key];
|
||||
}
|
||||
var x = f;
|
||||
x = arguments[1];
|
||||
x = arguments[2];
|
||||
};
|
||||
|
||||
function t(f) {
|
||||
for (var _len = arguments.length, items = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
items[_key - 1] = arguments[_key];
|
||||
}
|
||||
var x = f;
|
||||
x = arguments[1];
|
||||
x = arguments[2];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
var foo = function (...[a, b]) {
|
||||
|
||||
};
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var foo = function foo() {
|
||||
for (var _len = arguments.length, _ref = Array(_len), _key = 0; _key < _len; _key++) {
|
||||
_ref[_key] = arguments[_key];
|
||||
}
|
||||
|
||||
var a = _ref[0];
|
||||
var b = _ref[1];
|
||||
var a = arguments[0],
|
||||
b = arguments[1];
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
var t = function (...items) {
|
||||
|
||||
var x = items[0];
|
||||
var y = items[1];
|
||||
}
|
||||
|
||||
function t(...items) {
|
||||
|
||||
var x = items[0];
|
||||
var y = items[1];
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
var t = function t() {
|
||||
for (var _len = arguments.length, items = Array(_len), _key = 0; _key < _len; _key++) {
|
||||
items[_key] = arguments[_key];
|
||||
}
|
||||
var x = arguments[0];
|
||||
var y = arguments[1];
|
||||
};
|
||||
|
||||
function t() {
|
||||
for (var _len = arguments.length, items = Array(_len), _key = 0; _key < _len; _key++) {
|
||||
items[_key] = arguments[_key];
|
||||
}
|
||||
var x = arguments[0];
|
||||
var y = arguments[1];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user