siphon-cli
Version:
Simple bundler for web applications. 📦🔧🧡
31 lines (30 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("../../../../../types");
var creator_1 = require("../helpers/creator");
function default_parameters(node) {
if (!(/Function/.test(node.type) && node.params.length))
return;
for (var i = 0; node.params[i]; i++) {
var param = node.params[i];
if (param instanceof types_1.AssignmentPattern) {
var query = new types_1.IfStatement(0);
var test = new types_1.BinaryExpression(0);
test.operator = "===";
test.left = param.left;
test.right = creator_1.undefined_;
query.test = test;
var argsdot0 = (0, creator_1.memberExpression)((0, creator_1.newIdentifier)("arguments"), (0, creator_1.numberLiteral)(i), true);
var cnsqntass1 = (0, creator_1.assignmentExpression)(argsdot0, "=", param.right);
var cnsqntass2 = (0, creator_1.assignmentExpression)(param.left, "=", cnsqntass1);
var exp = new types_1.ExpressionStatement(0);
exp.expression = cnsqntass2;
query.consequent = exp;
query.alternate = null;
node.params.splice(i, 1, param.left);
node.body.body.splice(0, 0, query);
}
}
return node;
}
exports.default = default_parameters;