babel/lib/6to5/transformation/transformers/es6-rest-parameters.js
2014-11-25 23:56:38 +11:00

23 lines
465 B
JavaScript

var t = require("../../types");
exports.Function = function (node, parent, file) {
if (!node.rest) return;
var rest = node.rest;
delete node.rest;
t.ensureBlock(node);
var call = file.toArray(t.identifier("arguments"));
if (node.params.length) {
call.arguments.push(t.literal(node.params.length));
}
call._ignoreAliasFunctions = true;
node.body.body.unshift(t.variableDeclaration("var", [
t.variableDeclarator(rest, call)
]));
};