In ES6 use "export var x" for internal modules and enums instead of an after the fact "export {x};"

This commit is contained in:
Mohamed Hegazy 2015-03-24 21:54:36 -07:00
parent ab5c09a9a6
commit bc51dd1e77
15 changed files with 26 additions and 53 deletions

View File

@ -3487,6 +3487,9 @@ module ts {
if (!(node.flags & NodeFlags.Export) || isES6ExportedDeclaration(node)) {
emitStart(node);
if (isES6ExportedDeclaration(node)) {
write("export ");
}
write("var ");
emit(node.name);
emitEnd(node);
@ -3512,10 +3515,7 @@ module ts {
emitModuleMemberName(node);
write(" = {}));");
emitEnd(node);
if (isES6ExportedDeclaration(node)) {
emitES6NamedExportForDeclaration(node);
}
else if (node.flags & NodeFlags.Export) {
if (!isES6ExportedDeclaration(node) && node.flags & NodeFlags.Export) {
writeLine();
emitStart(node);
write("var ");
@ -3580,6 +3580,9 @@ module ts {
}
emitStart(node);
if (isES6ExportedDeclaration(node)) {
write("export ");
}
write("var ");
emit(node.name);
write(";");
@ -3628,23 +3631,11 @@ module ts {
emitModuleMemberName(node);
write(" = {}));");
emitEnd(node);
if (isES6ExportedDeclaration(node)) {
emitES6NamedExportForDeclaration(node);
}
else if (languageVersion < ScriptTarget.ES6 && node.name.kind === SyntaxKind.Identifier && node.parent === currentSourceFile) {
if (!isES6ExportedDeclaration(node) && node.name.kind === SyntaxKind.Identifier && node.parent === currentSourceFile) {
emitExportMemberAssignments(<Identifier>node.name);
}
}
function emitES6NamedExportForDeclaration(node: Declaration) {
writeLine();
emitStart(node);
write("export { ");
emit(node.name);
write(" };");
emitEnd(node);
}
function emitRequire(moduleName: Expression) {
if (moduleName.kind === SyntaxKind.StringLiteral) {
write("require(");

View File

@ -19,11 +19,10 @@ export * from "server";
//// [server.js]
export class c {
}
var m;
export var m;
(function (m) {
m.x = 10;
})(m || (m = {}));
export { m };
export var x = 10;
//// [client.js]
export * from "server";

View File

@ -23,11 +23,10 @@ export { x } from "server";
//// [server.js]
export class c {
}
var m;
export var m;
(function (m) {
m.x = 10;
})(m || (m = {}));
export { m };
export var x = 10;
//// [client.js]
export { c } from "server";

View File

@ -147,7 +147,7 @@ c2.k = 20;
c2.l = 30;
new c();
new c2();
var m1;
export var m1;
(function (m1) {
class c3 {
constructor() {
@ -187,7 +187,6 @@ var m1;
new c3();
new c4();
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
class c3 {

View File

@ -21,14 +21,13 @@ export const a = "hello";
export const x = a, y = x;
const b = y;
const c = b, d = c;
var m1;
export var m1;
(function (m1) {
m1.k = a;
m1.l = b, m1.m = m1.k;
const n = m1.k;
const o = n, p = m1.k;
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
m2.k = a;

View File

@ -48,14 +48,13 @@ module m2 {
//// [es6ModuleConstEnumDeclaration.js]
var x = 0 /* a */;
var y = 0 /* x */;
var m1;
export var m1;
(function (m1) {
var x1 = 0 /* a */;
var y1 = 0 /* x */;
var x2 = 0 /* a */;
var y2 = 0 /* x */;
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
var x1 = 0 /* a */;

View File

@ -47,13 +47,12 @@ module m2 {
}
//// [es6ModuleConstEnumDeclaration2.js]
var e1;
export var e1;
(function (e1) {
e1[e1["a"] = 0] = "a";
e1[e1["b"] = 1] = "b";
e1[e1["c"] = 2] = "c";
})(e1 || (e1 = {}));
export { e1 };
var e2;
(function (e2) {
e2[e2["x"] = 0] = "x";
@ -62,7 +61,7 @@ var e2;
})(e2 || (e2 = {}));
var x = 0 /* a */;
var y = 0 /* x */;
var m1;
export var m1;
(function (m1) {
(function (e3) {
e3[e3["a"] = 0] = "a";
@ -81,7 +80,6 @@ var m1;
var x2 = 0 /* a */;
var y2 = 0 /* x */;
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
(function (e5) {

View File

@ -46,13 +46,12 @@ module m2 {
}
//// [es6ModuleEnumDeclaration.js]
var e1;
export var e1;
(function (e1) {
e1[e1["a"] = 0] = "a";
e1[e1["b"] = 1] = "b";
e1[e1["c"] = 2] = "c";
})(e1 || (e1 = {}));
export { e1 };
var e2;
(function (e2) {
e2[e2["x"] = 0] = "x";
@ -61,7 +60,7 @@ var e2;
})(e2 || (e2 = {}));
var x = e1.a;
var y = e2.x;
var m1;
export var m1;
(function (m1) {
(function (e3) {
e3[e3["a"] = 0] = "a";
@ -80,7 +79,6 @@ var m1;
var x2 = e3.a;
var y2 = e4.x;
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
(function (e5) {

View File

@ -35,7 +35,7 @@ function foo2() {
}
foo();
foo2();
var m1;
export var m1;
(function (m1) {
function foo3() {
}
@ -47,7 +47,6 @@ var m1;
foo3();
foo4();
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
function foo3() {

View File

@ -20,22 +20,20 @@ module m2 {
}
//// [es6ModuleInternalImport.js]
var m;
export var m;
(function (m) {
m.a = 10;
})(m || (m = {}));
export { m };
export var a1 = m.a;
var a2 = m.a;
var x = a1 + a2;
var m1;
export var m1;
(function (m1) {
m1.a3 = m.a;
var a4 = m.a;
var x = a1 + a2;
var x2 = m1.a3 + a4;
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
m2.a3 = m.a;

View File

@ -33,7 +33,7 @@ export module M {
//// [es6ModuleInternalNamedImports.js]
var M;
export var M;
(function (M) {
// variable
M.M_V = 0;
@ -64,4 +64,3 @@ var M;
export { M_E as e };
export { M_A as a };
})(M || (M = {}));
export { M };

View File

@ -35,7 +35,7 @@ export module M {
//// [es6ModuleInternalNamedImports2.js]
var M;
export var M;
(function (M) {
// variable
M.M_V = 0;
@ -59,8 +59,7 @@ var M;
// alias
M.M_A = M_M;
})(M || (M = {}));
export { M };
var M;
export var M;
(function (M) {
// Reexports
export { M_V as v };
@ -70,4 +69,3 @@ var M;
export { M_E as e };
export { M_A as a };
})(M || (M = {}));
export { M };

View File

@ -21,14 +21,13 @@ export let a = "hello";
export let x = a, y = x;
let b = y;
let c = b, d = c;
var m1;
export var m1;
(function (m1) {
m1.k = a;
m1.l = b, m1.m = m1.k;
let n = m1.k;
let o = n, p = m1.k;
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
m2.k = a;

View File

@ -25,7 +25,7 @@ module m2 {
}
//// [es6ModuleModuleDeclaration.js]
var m1;
export var m1;
(function (m1) {
m1.a = 10;
var b = 10;
@ -40,7 +40,6 @@ var m1;
var y = 10;
})(innerNonExportedModule = m1.innerNonExportedModule || (m1.innerNonExportedModule = {}));
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
m2.a = 10;

View File

@ -21,14 +21,13 @@ export var a = "hello";
export var x = a, y = x;
var b = y;
var c = b, d = c;
var m1;
export var m1;
(function (m1) {
m1.k = a;
m1.l = b, m1.m = m1.k;
var n = m1.k;
var o = n, p = m1.k;
})(m1 || (m1 = {}));
export { m1 };
var m2;
(function (m2) {
m2.k = a;