Fix bug undefined reference for export declaration (#3629)

+ (Fix https://phabricator.babeljs.io/T7534)
+ Export declaration class/function/var ids now add the export
declaration path as the referenced one.
This commit is contained in:
Boopathi Rajaa 2016-08-31 20:42:34 +02:00 committed by Henry Zhu
parent 33da726638
commit 477a72a975

View File

@ -73,20 +73,21 @@ let collectorVisitor = {
}, },
ExportDeclaration: { ExportDeclaration: {
exit({ node, scope }) { exit(path) {
const { node, scope } = path;
let declar = node.declaration; let declar = node.declaration;
if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) { if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) {
let id = declar.id; let id = declar.id;
if (!id) return; if (!id) return;
let binding = scope.getBinding(id.name); let binding = scope.getBinding(id.name);
if (binding) binding.reference(); if (binding) binding.reference(path);
} else if (t.isVariableDeclaration(declar)) { } else if (t.isVariableDeclaration(declar)) {
for (let decl of (declar.declarations: Array<Object>)) { for (let decl of (declar.declarations: Array<Object>)) {
let ids = t.getBindingIdentifiers(decl); let ids = t.getBindingIdentifiers(decl);
for (let name in ids) { for (let name in ids) {
let binding = scope.getBinding(name); let binding = scope.getBinding(name);
if (binding) binding.reference(); if (binding) binding.reference(path);
} }
} }
} }