Skip to content

Commit c68f837

Browse files
committed
Merge branch 'amd-es3' of https://github.com/Smarp/TypeScript into Smarp-amd-es3
2 parents f3c073e + d55dcc6 commit c68f837

30 files changed

+256
-3
lines changed

src/compiler/checker.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11516,7 +11516,14 @@ module ts {
1151611516
let node = getDeclarationOfAliasSymbol(symbol);
1151711517
if (node) {
1151811518
if (node.kind === SyntaxKind.ImportClause) {
11519-
return getGeneratedNameForNode(<ImportDeclaration>node.parent) + ".default";
11519+
let defaultKeyword: string;
11520+
11521+
if (languageVersion === ScriptTarget.ES3) {
11522+
defaultKeyword = "[\"default\"]";
11523+
} else {
11524+
defaultKeyword = ".default";
11525+
}
11526+
return getGeneratedNameForNode(<ImportDeclaration>node.parent) + defaultKeyword;
1152011527
}
1152111528
if (node.kind === SyntaxKind.ImportSpecifier) {
1152211529
let moduleName = getGeneratedNameForNode(<ImportDeclaration>node.parent.parent.parent);

src/compiler/emitter.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2469,7 +2469,11 @@ var __param = this.__param || function(index, decorator) { return function (targ
24692469
writeLine();
24702470
emitStart(node);
24712471
if (node.flags & NodeFlags.Default) {
2472-
write("exports.default");
2472+
if (languageVersion === ScriptTarget.ES3) {
2473+
write("exports[\"default\"]");
2474+
} else {
2475+
write("exports.default");
2476+
}
24732477
}
24742478
else {
24752479
emitModuleMemberName(node);
@@ -4560,7 +4564,11 @@ var __param = this.__param || function(index, decorator) { return function (targ
45604564
writeLine();
45614565
emitStart(node);
45624566
emitContainingModuleName(node);
4563-
write(".default = ");
4567+
if (languageVersion === ScriptTarget.ES3) {
4568+
write("[\"default\"] = ");
4569+
} else {
4570+
write(".default = ");
4571+
}
45644572
emit(node.expression);
45654573
write(";");
45664574
emitEnd(node);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//// [tests/cases/conformance/es6/modules/exportAndImport-es3-amd.ts] ////
2+
3+
//// [m1.ts]
4+
5+
export default function f1() {
6+
}
7+
8+
//// [m2.ts]
9+
import f1 from "./m1";
10+
export default function f2() {
11+
f1();
12+
}
13+
14+
15+
//// [m1.js]
16+
define(["require", "exports"], function (require, exports) {
17+
function f1() {
18+
}
19+
exports["default"] = f1;
20+
});
21+
//// [m2.js]
22+
define(["require", "exports", "./m1"], function (require, exports, m1_1) {
23+
function f2() {
24+
m1_1["default"]();
25+
}
26+
exports["default"] = f2;
27+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
=== tests/cases/conformance/es6/modules/m1.ts ===
2+
3+
export default function f1() {
4+
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
5+
}
6+
7+
=== tests/cases/conformance/es6/modules/m2.ts ===
8+
import f1 from "./m1";
9+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
10+
11+
export default function f2() {
12+
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
13+
14+
f1();
15+
>f1() : void
16+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
17+
}
18+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//// [tests/cases/conformance/es6/modules/exportAndImport-es3.ts] ////
2+
3+
//// [m1.ts]
4+
5+
export default function f1() {
6+
}
7+
8+
//// [m2.ts]
9+
import f1 from "./m1";
10+
export default function f2() {
11+
f1();
12+
}
13+
14+
15+
//// [m1.js]
16+
function f1() {
17+
}
18+
exports["default"] = f1;
19+
//// [m2.js]
20+
var m1_1 = require("./m1");
21+
function f2() {
22+
m1_1["default"]();
23+
}
24+
exports["default"] = f2;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
=== tests/cases/conformance/es6/modules/m1.ts ===
2+
3+
export default function f1() {
4+
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
5+
}
6+
7+
=== tests/cases/conformance/es6/modules/m2.ts ===
8+
import f1 from "./m1";
9+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
10+
11+
export default function f2() {
12+
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
13+
14+
f1();
15+
>f1() : void
16+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
17+
}
18+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//// [tests/cases/conformance/es6/modules/exportAndImport-es5-amd.ts] ////
2+
3+
//// [m1.ts]
4+
5+
export default function f1() {
6+
}
7+
8+
//// [m2.ts]
9+
import f1 from "./m1";
10+
export default function f2() {
11+
f1();
12+
}
13+
14+
15+
//// [m1.js]
16+
define(["require", "exports"], function (require, exports) {
17+
function f1() {
18+
}
19+
exports.default = f1;
20+
});
21+
//// [m2.js]
22+
define(["require", "exports", "./m1"], function (require, exports, m1_1) {
23+
function f2() {
24+
m1_1.default();
25+
}
26+
exports.default = f2;
27+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
=== tests/cases/conformance/es6/modules/m1.ts ===
2+
3+
export default function f1() {
4+
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
5+
}
6+
7+
=== tests/cases/conformance/es6/modules/m2.ts ===
8+
import f1 from "./m1";
9+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
10+
11+
export default function f2() {
12+
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
13+
14+
f1();
15+
>f1() : void
16+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
17+
}
18+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//// [tests/cases/conformance/es6/modules/exportAndImport-es5.ts] ////
2+
3+
//// [m1.ts]
4+
5+
export default function f1() {
6+
}
7+
8+
//// [m2.ts]
9+
import f1 from "./m1";
10+
export default function f2() {
11+
f1();
12+
}
13+
14+
15+
//// [m1.js]
16+
function f1() {
17+
}
18+
exports.default = f1;
19+
//// [m2.js]
20+
var m1_1 = require("./m1");
21+
function f2() {
22+
m1_1.default();
23+
}
24+
exports.default = f2;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
=== tests/cases/conformance/es6/modules/m1.ts ===
2+
3+
export default function f1() {
4+
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
5+
}
6+
7+
=== tests/cases/conformance/es6/modules/m2.ts ===
8+
import f1 from "./m1";
9+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
10+
11+
export default function f2() {
12+
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
13+
14+
f1();
15+
>f1() : void
16+
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
17+
}
18+

0 commit comments

Comments
 (0)