Improve performance of rest parameter.

Rather than initing an empty array and filling, create an array of the correct size up-front. Minor gain on chromium, but considerably (~5x) faster in spidermonkey/firefox.
This commit is contained in:
Lee Byron
2015-01-14 18:49:23 -05:00
parent e01b7d288f
commit e5463cc2a9
5 changed files with 30 additions and 22 deletions

View File

@@ -1,9 +1,9 @@
"use strict";
var concat = function () {
var arrs = [];
for (var _key = 0; _key < arguments.length; _key++) {
for (var _len = arguments.length,
arrs = Array(_len),
_key = 0; _key < _len; _key++) {
arrs[_key] = arguments[_key];
}
};

View File

@@ -1,17 +1,17 @@
"use strict";
var t = function (f) {
var items = [];
for (var _key = 1; _key < arguments.length; _key++) {
for (var _len = arguments.length,
items = Array(_len > 1 ? _len - 1 : 0),
_key = 1; _key < _len; _key++) {
items[_key - 1] = arguments[_key];
}
};
function t(f) {
var items = [];
for (var _key2 = 1; _key2 < arguments.length; _key2++) {
for (var _len2 = arguments.length,
items = Array(_len2 > 1 ? _len2 - 1 : 0),
_key2 = 1; _key2 < _len2; _key2++) {
items[_key2 - 1] = arguments[_key2];
}
}

View File

@@ -1,17 +1,17 @@
"use strict";
var t = function () {
var items = [];
for (var _key = 0; _key < arguments.length; _key++) {
for (var _len = arguments.length,
items = Array(_len),
_key = 0; _key < _len; _key++) {
items[_key] = arguments[_key];
}
};
function t() {
var items = [];
for (var _key2 = 0; _key2 < arguments.length; _key2++) {
for (var _len2 = arguments.length,
items = Array(_len2),
_key2 = 0; _key2 < _len2; _key2++) {
items[_key2] = arguments[_key2];
}
}