From 51341ca6c3e66bab25dbfc1c865dbfa65eea2282 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 13 May 2015 19:23:47 +0100 Subject: [PATCH] fix and add missing module specifier reference detection - fixes #1520 --- src/babel/types/validators.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/babel/types/validators.js b/src/babel/types/validators.js index 660d597103..8795582c7b 100644 --- a/src/babel/types/validators.js +++ b/src/babel/types/validators.js @@ -49,12 +49,27 @@ export function isReferenced(node: Object, parent: Object): boolean { return parent.id !== node; // no: export { foo as NODE }; + // yes: export { NODE as foo }; + // no: export { NODE as foo } from "foo"; case "ExportSpecifier": - return parent.exported !== node; + if (parent.source) { + return false; + } else { + return parent.local === node; + } + + // no: import NODE from "foo"; + case "ImportDefaultSpecifier": + return false; + + // no: import * as NODE from "foo"; + case "ImportNamespaceSpecifier": + return false; // no: import { NODE as foo } from "foo"; + // no: import { foo as NODE } from "foo"; case "ImportSpecifier": - return parent.imported !== node; + return false; // no: class NODE {} case "ClassDeclaration":