From 4fa17341f59f77e5c6214bfada9fcbfe330d9a69 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 26 Mar 2015 01:00:32 +1100 Subject: [PATCH] add support for object expressions and patterns to scope.generateUidBasedOnNode --- src/babel/traversal/scope.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/babel/traversal/scope.js b/src/babel/traversal/scope.js index e28b7fb49d..9cc73182e2 100644 --- a/src/babel/traversal/scope.js +++ b/src/babel/traversal/scope.js @@ -105,10 +105,7 @@ export default class Scope { generateTemp(name: string = "temp") { var id = this.generateUidIdentifier(name); - this.push({ - key: id.name, - id: id - }); + this.push({ id }); return id; } @@ -183,6 +180,11 @@ export default class Scope { parts.push(node.value); } else if (t.isCallExpression(node)) { add(node.callee); + } else if (t.isObjectExpression(node) || t.isObjectPattern(node)) { + for (var i = 0; i < node.properties.length; i++) { + var prop = node.properties[i]; + add(prop.key || prop.argument); + } } }; @@ -224,7 +226,6 @@ export default class Scope { if (kind === "hoisted" && local.kind === "let") return; if (local.kind === "let" || local.kind === "const" || local.kind === "module" || local.kind === "param") { - if (local.kind === "let" || local.kind === "const" || local.kind === "module") { throw this.file.errorWithNode(id, messages.get("scopeDuplicateDeclaration", name), TypeError); } }