From 2cffad61fa5da5b59d5ae8e3ab048a9fcc7a7ce4 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 28 Oct 2014 13:16:31 +1100 Subject: [PATCH] more reliable destructuring building --- lib/6to5/transformers/destructuring.js | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/6to5/transformers/destructuring.js b/lib/6to5/transformers/destructuring.js index 7f9cc68514..4ce26b813f 100644 --- a/lib/6to5/transformers/destructuring.js +++ b/lib/6to5/transformers/destructuring.js @@ -13,11 +13,15 @@ var buildVariableAssign = function (kind, id, init) { } }; -var push = function (kind, nodes, pattern, parentId) { - if (pattern.type === "ObjectPattern") { - pushObjectPattern(kind, nodes, pattern, parentId); - } else if (pattern.type === "ArrayPattern") { - pushArrayPattern(kind, nodes, pattern, parentId); +var push = function (kind, nodes, elem, parentId) { + if (elem.type === "ObjectPattern") { + pushObjectPattern(kind, nodes, elem, parentId); + } else if (elem.type === "ArrayPattern") { + pushArrayPattern(kind, nodes, elem, parentId); + } else if (elem.type === "MemberExpression") { + nodes.push(buildVariableAssign(false, elem, parentId)); + } else { + nodes.push(buildVariableAssign(kind, elem, parentId)); } }; @@ -39,14 +43,7 @@ var pushArrayPattern = function (kind, nodes, pattern, parentId) { if (!elem) return; var newPatternId = b.memberExpression(parentId, b.literal(i), true); - - if (elem.type === "Identifier") { - nodes.push(buildVariableAssign(kind, elem, newPatternId)); - } else if (elem.type === "MemberExpression") { - nodes.push(buildVariableAssign(false, elem, newPatternId)); - } else { - push(kind, nodes, elem, newPatternId); - } + push(kind, nodes, elem, newPatternId); }); };