From b06f99ab302095c9a302c145a05d774eaadd8aab Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 8 Feb 2015 09:37:06 +1100 Subject: [PATCH] add iife detection to non-identifier params in default parameters --- .../transformation/transformers/es6/parameters.default.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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; }