Emit export internal import equals declaration in es6 format

This commit is contained in:
Mohamed Hegazy
2015-03-12 10:34:39 -07:00
parent 6bcbe824aa
commit 680cf6d844
4 changed files with 156 additions and 1 deletions

View File

@@ -5169,7 +5169,13 @@ module ts {
(!isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) {
emitLeadingComments(node);
emitStart(node);
if (!(node.flags & NodeFlags.Export)) write("var ");
if (isES6ModuleMemberDeclaration(node)) {
write("export ");
write("var ");
}
else if (!(node.flags & NodeFlags.Export)) {
write("var ");
}
emitModuleMemberName(node);
write(" = ");
emit(node.moduleReference);

View File

@@ -0,0 +1,46 @@
//// [es6ModuleInternalImport.ts]
export module m {
export var a = 10;
}
export import a1 = m.a;
import a2 = m.a;
var x = a1 + a2;
export module m1 {
export import a3 = m.a;
import a4 = m.a;
var x = a1 + a2;
var x2 = a3 + a4;
}
module m2 {
export import a3 = m.a;
import a4 = m.a;
var x = a1 + a2;
var x2 = a3 + a4;
var x4 = m1.a3 + m2.a3;
}
//// [es6ModuleInternalImport.js]
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;
(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;
var a4 = m.a;
var x = a1 + a2;
var x2 = m2.a3 + a4;
var x4 = m1.a3 + m2.a3;
})(m2 || (m2 = {}));

View File

@@ -0,0 +1,83 @@
=== tests/cases/compiler/es6ModuleInternalImport.ts ===
export module m {
>m : typeof m
export var a = 10;
>a : number
}
export import a1 = m.a;
>a1 : number
>m : typeof m
>a : number
import a2 = m.a;
>a2 : number
>m : typeof m
>a : number
var x = a1 + a2;
>x : number
>a1 + a2 : number
>a1 : number
>a2 : number
export module m1 {
>m1 : typeof m1
export import a3 = m.a;
>a3 : number
>m : typeof m
>a : number
import a4 = m.a;
>a4 : number
>m : typeof m
>a : number
var x = a1 + a2;
>x : number
>a1 + a2 : number
>a1 : number
>a2 : number
var x2 = a3 + a4;
>x2 : number
>a3 + a4 : number
>a3 : number
>a4 : number
}
module m2 {
>m2 : typeof m2
export import a3 = m.a;
>a3 : number
>m : typeof m
>a : number
import a4 = m.a;
>a4 : number
>m : typeof m
>a : number
var x = a1 + a2;
>x : number
>a1 + a2 : number
>a1 : number
>a2 : number
var x2 = a3 + a4;
>x2 : number
>a3 + a4 : number
>a3 : number
>a4 : number
var x4 = m1.a3 + m2.a3;
>x4 : number
>m1.a3 + m2.a3 : number
>m1.a3 : number
>m1 : typeof m1
>a3 : number
>m2.a3 : number
>m2 : typeof m2
>a3 : number
}

View File

@@ -0,0 +1,20 @@
// @target: ES6
export module m {
export var a = 10;
}
export import a1 = m.a;
import a2 = m.a;
var x = a1 + a2;
export module m1 {
export import a3 = m.a;
import a4 = m.a;
var x = a1 + a2;
var x2 = a3 + a4;
}
module m2 {
export import a3 = m.a;
import a4 = m.a;
var x = a1 + a2;
var x2 = a3 + a4;
var x4 = m1.a3 + m2.a3;
}