update default parameters transformer to use var a = arguments[0] === undefined ? 1 : arguments[0]; instead of if (a === undefined) a = 1;
This commit is contained in:
parent
4d5861cfdc
commit
cbcad22d81
1
lib/6to5/transformation/templates/default-parameter.js
Normal file
1
lib/6to5/transformation/templates/default-parameter.js
Normal file
@ -0,0 +1 @@
|
||||
var VARIABLE_NAME = ARGUMENTS[ARGUMENT_KEY] === undefined ? DEFAULT_VALUE : ARGUMENTS[ARGUMENT_KEY];
|
||||
@ -1 +0,0 @@
|
||||
if (VARIABLE === undefined) VARIABLE = DEFAULT;
|
||||
@ -49,16 +49,29 @@ exports.Function = function (node, parent, file, scope) {
|
||||
|
||||
var body = [];
|
||||
|
||||
var argsIdentifier = t.identifier("arguments");
|
||||
argsIdentifier._ignoreAliasFunctions = true;
|
||||
|
||||
var lastNonDefaultParam = 0;
|
||||
|
||||
for (i in node.defaults) {
|
||||
def = node.defaults[i];
|
||||
if (!def) continue;
|
||||
if (!def) {
|
||||
lastNonDefaultParam = +i + 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
body.push(util.template("if-undefined-set-to", {
|
||||
VARIABLE: node.params[i],
|
||||
DEFAULT: def
|
||||
body.push(util.template("default-parameter", {
|
||||
VARIABLE_NAME: node.params[i],
|
||||
DEFAULT_VALUE: def,
|
||||
ARGUMENT_KEY: t.literal(+i),
|
||||
ARGUMENTS: argsIdentifier
|
||||
}, true));
|
||||
}
|
||||
|
||||
// we need to cut off all trailing default parameters
|
||||
node.params = node.params.slice(0, lastNonDefaultParam);
|
||||
|
||||
if (iife) {
|
||||
var container = t.functionExpression(null, [], node.body, node.generator);
|
||||
container._aliasFunction = true;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var some = function (count) {
|
||||
if (count === undefined) count = "30";
|
||||
var some = function () {
|
||||
var count = arguments[0] === undefined ? "30" : arguments[0];
|
||||
console.log("count", count);
|
||||
};
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
var t = function (t, f) {
|
||||
if (t === undefined) t = "foo";
|
||||
if (f === undefined) f = 5;
|
||||
var t = function () {
|
||||
var t = arguments[0] === undefined ? "foo" : arguments[0];
|
||||
var f = arguments[1] === undefined ? 5 : arguments[1];
|
||||
return t + " bar " + f;
|
||||
};
|
||||
|
||||
var a = function (t, f) {
|
||||
if (f === undefined) f = 5;
|
||||
var a = function (t) {
|
||||
var f = arguments[1] === undefined ? 5 : arguments[1];
|
||||
return t + " bar " + f;
|
||||
};
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
var t = function (t) {
|
||||
if (t === undefined) t = "foo";
|
||||
var t = function () {
|
||||
var t = arguments[0] === undefined ? "foo" : arguments[0];
|
||||
return t + " bar";
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user