Skip to content

Commit 59889d8

Browse files
committed
Corrected codegen to support shadowed module names.
1 parent 2d7d491 commit 59889d8

File tree

192 files changed

+3603
-3611
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

192 files changed

+3603
-3611
lines changed

src/compiler/emitter.ts

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1755,16 +1755,13 @@ module ts {
17551755
if (!isInstantiated(node)) {
17561756
return emitPinnedOrTripleSlashComments(node);
17571757
}
1758-
17591758
emitLeadingComments(node);
1760-
if (!(node.flags & NodeFlags.Export)) {
1761-
emitStart(node);
1762-
write("var ");
1763-
emit(node.name);
1764-
write(";");
1765-
emitEnd(node);
1766-
writeLine();
1767-
}
1759+
emitStart(node);
1760+
write("var ");
1761+
emit(node.name);
1762+
write(";");
1763+
emitEnd(node);
1764+
writeLine();
17681765
emitStart(node);
17691766
write("(function (");
17701767
emitStart(node.name);
@@ -1788,21 +1785,15 @@ module ts {
17881785
scopeEmitEnd();
17891786
}
17901787
write(")(");
1788+
if (node.flags & NodeFlags.Export) {
1789+
emit(node.name);
1790+
write(" = ");
1791+
}
17911792
emitModuleMemberName(node);
17921793
write(" || (");
17931794
emitModuleMemberName(node);
17941795
write(" = {}));");
17951796
emitEnd(node);
1796-
if (node.flags & NodeFlags.Export) {
1797-
writeLine();
1798-
emitStart(node);
1799-
write("var ");
1800-
emit(node.name);
1801-
write(" = ");
1802-
emitModuleMemberName(node);
1803-
emitEnd(node);
1804-
write(";");
1805-
}
18061797
emitTrailingComments(node);
18071798
}
18081799

tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndExportedFunctionThatShareAName.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ var A;
5353
return Point;
5454
})();
5555
A.Point = Point;
56+
var Point;
5657
(function (Point) {
5758
function Origin() {
5859
return "";
5960
}
6061
Point.Origin = Origin; //expected duplicate identifier error
61-
})(A.Point || (A.Point = {}));
62-
var Point = A.Point;
62+
})(Point = A.Point || (A.Point = {}));
6363
})(A || (A = {}));

tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ var A;
5252
return Point;
5353
})();
5454
A.Point = Point;
55+
var Point;
5556
(function (Point) {
5657
function Origin() {
5758
return "";
5859
} // not an error since not exported
59-
})(A.Point || (A.Point = {}));
60-
var Point = A.Point;
60+
})(Point = A.Point || (A.Point = {}));
6161
})(A || (A = {}));

tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndExportedVarThatShareAName.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ var A;
4646
return Point;
4747
})();
4848
A.Point = Point;
49+
var Point;
4950
(function (Point) {
5051
Point.Origin = ""; //expected duplicate identifier error
51-
})(A.Point || (A.Point = {}));
52-
var Point = A.Point;
52+
})(Point = A.Point || (A.Point = {}));
5353
})(A || (A = {}));

tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ var A;
4646
return Point;
4747
})();
4848
A.Point = Point;
49+
var Point;
4950
(function (Point) {
5051
var Origin = ""; // not an error since not exported
51-
})(A.Point || (A.Point = {}));
52-
var Point = A.Point;
52+
})(Point = A.Point || (A.Point = {}));
5353
})(A || (A = {}));

tests/baselines/reference/ClassAndModuleWithSameNameAndCommonRoot.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ var a: { id: string };
4343
//// [class.js]
4444
var X;
4545
(function (X) {
46+
var Y;
4647
(function (Y) {
4748
var Point = (function () {
4849
function Point(x, y) {
@@ -52,19 +53,18 @@ var X;
5253
return Point;
5354
})();
5455
Y.Point = Point;
55-
})(X.Y || (X.Y = {}));
56-
var Y = X.Y;
56+
})(Y = X.Y || (X.Y = {}));
5757
})(X || (X = {}));
5858
//// [module.js]
5959
var X;
6060
(function (X) {
61+
var Y;
6162
(function (Y) {
63+
var Point;
6264
(function (Point) {
6365
Point.Origin = new Point(0, 0);
64-
})(Y.Point || (Y.Point = {}));
65-
var Point = Y.Point;
66-
})(X.Y || (X.Y = {}));
67-
var Y = X.Y;
66+
})(Point = Y.Point || (Y.Point = {}));
67+
})(Y = X.Y || (X.Y = {}));
6868
})(X || (X = {}));
6969
//// [test.js]
7070
//var cl: { x: number; y: number; }

tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ var A;
3131
return Point;
3232
})();
3333
A.Point = Point;
34+
var B;
3435
(function (B) {
3536
B.Origin = new Point(0, 0);
3637
var Line = (function () {
@@ -42,6 +43,5 @@ var A;
4243
return Line;
4344
})();
4445
B.Line = Line;
45-
})(A.B || (A.B = {}));
46-
var B = A.B;
46+
})(B = A.B || (A.B = {}));
4747
})(A || (A = {}));

tests/baselines/reference/FunctionAndModuleWithSameNameAndCommonRoot.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ var A;
5454
//// [module.js]
5555
var A;
5656
(function (A) {
57+
var Point;
5758
(function (Point) {
5859
Point.Origin = { x: 0, y: 0 };
59-
})(A.Point || (A.Point = {}));
60-
var Point = A.Point;
60+
})(Point = A.Point || (A.Point = {}));
6161
})(A || (A = {}));
6262
//// [test.js]
6363
var fn;
@@ -72,10 +72,10 @@ var B;
7272
return { x: 0, y: 0 };
7373
}
7474
B.Point = Point;
75+
var Point;
7576
(function (Point) {
7677
Point.Origin = { x: 0, y: 0 };
77-
})(B.Point || (B.Point = {}));
78-
var Point = B.Point;
78+
})(Point = B.Point || (B.Point = {}));
7979
})(B || (B = {}));
8080
var fn;
8181
var fn = B.Point; // not expected to be an error. bug 840000: [corelang] Function of fundule not assignalbe as expected

tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ var A;
3333
//// [module.js]
3434
var B;
3535
(function (B) {
36+
var Point;
3637
(function (Point) {
3738
Point.Origin = { x: 0, y: 0 };
38-
})(B.Point || (B.Point = {}));
39-
var Point = B.Point;
39+
})(Point = B.Point || (B.Point = {}));
4040
})(B || (B = {}));
4141
//// [test.js]
4242
var fn;

tests/baselines/reference/ModuleAndClassWithSameNameAndCommonRoot.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,18 @@ class A {
3434
//// [module.js]
3535
var X;
3636
(function (X) {
37+
var Y;
3738
(function (Y) {
39+
var Point;
3840
(function (Point) {
3941
Point.Origin = new Point(0, 0);
40-
})(Y.Point || (Y.Point = {}));
41-
var Point = Y.Point;
42-
})(X.Y || (X.Y = {}));
43-
var Y = X.Y;
42+
})(Point = Y.Point || (Y.Point = {}));
43+
})(Y = X.Y || (X.Y = {}));
4444
})(X || (X = {}));
4545
//// [classPoint.js]
4646
var X;
4747
(function (X) {
48+
var Y;
4849
(function (Y) {
4950
// duplicate identifier
5051
var Point = (function () {
@@ -55,8 +56,7 @@ var X;
5556
return Point;
5657
})();
5758
Y.Point = Point;
58-
})(X.Y || (X.Y = {}));
59-
var Y = X.Y;
59+
})(Y = X.Y || (X.Y = {}));
6060
})(X || (X = {}));
6161
//// [simple.js]
6262
var A;

0 commit comments

Comments
 (0)