From ef2ac7321553b7476b59048924411940ca704c40 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 12 May 2015 23:21:08 +0100 Subject: [PATCH] fix export scope tracking reference counter - fixes #1513 --- src/babel/traversal/scope.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/babel/traversal/scope.js b/src/babel/traversal/scope.js index fe91f03e5d..316f904010 100644 --- a/src/babel/traversal/scope.js +++ b/src/babel/traversal/scope.js @@ -54,13 +54,18 @@ var programReferenceVisitor = explode({ } }, - ExportDeclaration(node, parent, scope, state) { - var declar = node.declaration; - if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) { - scope.getBinding(declar.id.name).reference(); - } else if (t.isVariableDeclaration(declar)) { - for (var decl of (declar.declarations: Array)) { - scope.getBinding(decl.id.name).reference(); + ExportDeclaration: { + exit(node, parent, scope, state) { + var declar = node.declaration; + if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) { + scope.getBinding(declar.id.name).reference(); + } else if (t.isVariableDeclaration(declar)) { + for (var decl of (declar.declarations: Array)) { + var ids = t.getBindingIdentifiers(decl); + for (var name in ids) { + scope.getBinding(name).reference(); + } + } } } },