UNPKG

siphon-cli

Version:

Simple bundler for web applications. 📦🔧🧡

31 lines (30 loc) • 1.38 kB
"use strict"; 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;