ignore user whitespace when splitting up module declaration - fixes #906

This commit is contained in:
Sebastian McKenzie
2015-02-27 15:25:13 +11:00
parent 166b2eda87
commit a4382580fc
17 changed files with 43 additions and 8 deletions

View File

@@ -25,28 +25,33 @@ export function ExportDeclaration(node, parent, scope) {
var declar = node.declaration;
var getDeclar = function () {
declar._ignoreUserWhitespace = true;
return declar;
};
if (node.default) {
if (t.isClassDeclaration(declar)) {
node.declaration = declar.id;
return [declar, node];
return [getDeclar(), node];
} else if (t.isClassExpression(declar)) {
var temp = scope.generateUidIdentifier("default");
declar = t.variableDeclaration("var", [
t.variableDeclarator(temp, declar)
]);
node.declaration = temp;
return [declar, node];
return [getDeclar(), node];
} else if (t.isFunctionDeclaration(declar)) {
node._blockHoist = 2;
node.declaration = declar.id;
return [declar, node];
return [getDeclar(), node];
}
} else {
if (t.isFunctionDeclaration(declar)) {
node.specifiers = [t.importSpecifier(declar.id, declar.id)];
node.declaration = null;
node._blockHoist = 2;
return [declar, node];
return [getDeclar(), node];
}
}
}