diff --git a/lib/6to5/transformation/transformers/es6/parameters.default.js b/lib/6to5/transformation/transformers/es6/parameters.default.js index 9c3d53239d..7e7d9ac5a4 100644 --- a/lib/6to5/transformation/transformers/es6/parameters.default.js +++ b/lib/6to5/transformation/transformers/es6/parameters.default.js @@ -9,7 +9,7 @@ exports.check = function (node) { var hasDefaults = function (node) { for (var i = 0; i < node.params.length; i++) { - if (t.isAssignmentPattern(node.params[i])) return true; + if (!t.isIdentifier(node.params[i])) return true; } return false; }; @@ -54,9 +54,15 @@ exports.Function = function (node, parent, scope, file) { if (!t.isAssignmentPattern(param)) { lastNonDefaultParam = i + 1; + + if (!t.isIdentifier(param)) { + scope.traverse(param, iifeVisitor, state); + } + if (file.transformers["es6.blockScopingTDZ"].canRun()) { pushDefNode(param, t.identifier("undefined"), i); } + continue; }