Flip default parameter template (#4515)
* Flip default parameter template YMMV, I saved ~10b on a 2kb library. Not noticeable at the small scale, by why not do it anyway? I've (unscientifically) found that flipping the default parameter conditional yields better gzip results. I think this is due to the slightly longer string it can now repeatedly match: ```js // old var param = arguments.length <= 0 || void 0 === arguments[0] ? null : arguments[0] --------------------------------------------------------------^ // new var param = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null ------------------------------------------------------------------------^ ``` Though it's entirely likely gzip will also choose up to the index of the arguments if you many default parameters at different indexes. * Update tests
This commit is contained in:
committed by
Logan Smyth
parent
08b45ca853
commit
c2ed9de7fb
@@ -1,6 +1,6 @@
|
||||
var f0 = function (a) {
|
||||
var b = arguments.length <= 1 || arguments[1] === undefined ? a : arguments[1];
|
||||
var c = arguments.length <= 2 || arguments[2] === undefined ? b : arguments[2];
|
||||
var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : a;
|
||||
var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : b;
|
||||
|
||||
return [a, b, c];
|
||||
};
|
||||
@@ -9,8 +9,8 @@ assert.deepEqual(f0(1), [1, 1, 1]);
|
||||
|
||||
var f1 = function (_ref) {
|
||||
var a = _ref.a;
|
||||
var b = arguments.length <= 1 || arguments[1] === undefined ? a : arguments[1];
|
||||
var c = arguments.length <= 2 || arguments[2] === undefined ? b : arguments[2];
|
||||
var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : a;
|
||||
var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : b;
|
||||
|
||||
return [a, b, c];
|
||||
};
|
||||
@@ -19,10 +19,10 @@ assert.deepEqual(f1({ a: 1 }), [1, 1, 1]);
|
||||
|
||||
var f2 = function (_ref2) {
|
||||
var a = _ref2.a;
|
||||
var b = arguments.length <= 1 || arguments[1] === undefined ? a : arguments[1];
|
||||
var c = arguments.length <= 2 || arguments[2] === undefined ? a : arguments[2];
|
||||
var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : a;
|
||||
var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : a;
|
||||
|
||||
return [a, b, c];
|
||||
};
|
||||
|
||||
assert.deepEqual(f2({ a: 1 }), [1, 1, 1]);
|
||||
assert.deepEqual(f2({ a: 1 }), [1, 1, 1]);
|
||||
Reference in New Issue
Block a user