Merge branch 'amd-es3' of https://github.com/Smarp/TypeScript into Smarp-amd-es3

This commit is contained in:
Mohamed Hegazy 2015-04-17 15:39:23 -07:00
commit c68f837052
30 changed files with 256 additions and 3 deletions

View file

@ -11516,7 +11516,14 @@ module ts {
let node = getDeclarationOfAliasSymbol(symbol);
if (node) {
if (node.kind === SyntaxKind.ImportClause) {
return getGeneratedNameForNode(<ImportDeclaration>node.parent) + ".default";
let defaultKeyword: string;
if (languageVersion === ScriptTarget.ES3) {
defaultKeyword = "[\"default\"]";
} else {
defaultKeyword = ".default";
}
return getGeneratedNameForNode(<ImportDeclaration>node.parent) + defaultKeyword;
}
if (node.kind === SyntaxKind.ImportSpecifier) {
let moduleName = getGeneratedNameForNode(<ImportDeclaration>node.parent.parent.parent);

View file

@ -2469,7 +2469,11 @@ var __param = this.__param || function(index, decorator) { return function (targ
writeLine();
emitStart(node);
if (node.flags & NodeFlags.Default) {
write("exports.default");
if (languageVersion === ScriptTarget.ES3) {
write("exports[\"default\"]");
} else {
write("exports.default");
}
}
else {
emitModuleMemberName(node);
@ -4560,7 +4564,11 @@ var __param = this.__param || function(index, decorator) { return function (targ
writeLine();
emitStart(node);
emitContainingModuleName(node);
write(".default = ");
if (languageVersion === ScriptTarget.ES3) {
write("[\"default\"] = ");
} else {
write(".default = ");
}
emit(node.expression);
write(";");
emitEnd(node);

View file

@ -0,0 +1,27 @@
//// [tests/cases/conformance/es6/modules/exportAndImport-es3-amd.ts] ////
//// [m1.ts]
export default function f1() {
}
//// [m2.ts]
import f1 from "./m1";
export default function f2() {
f1();
}
//// [m1.js]
define(["require", "exports"], function (require, exports) {
function f1() {
}
exports["default"] = f1;
});
//// [m2.js]
define(["require", "exports", "./m1"], function (require, exports, m1_1) {
function f2() {
m1_1["default"]();
}
exports["default"] = f2;
});

View file

@ -0,0 +1,18 @@
=== tests/cases/conformance/es6/modules/m1.ts ===
export default function f1() {
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
}
=== tests/cases/conformance/es6/modules/m2.ts ===
import f1 from "./m1";
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
export default function f2() {
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
f1();
>f1() : void
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
}

View file

@ -0,0 +1,24 @@
//// [tests/cases/conformance/es6/modules/exportAndImport-es3.ts] ////
//// [m1.ts]
export default function f1() {
}
//// [m2.ts]
import f1 from "./m1";
export default function f2() {
f1();
}
//// [m1.js]
function f1() {
}
exports["default"] = f1;
//// [m2.js]
var m1_1 = require("./m1");
function f2() {
m1_1["default"]();
}
exports["default"] = f2;

View file

@ -0,0 +1,18 @@
=== tests/cases/conformance/es6/modules/m1.ts ===
export default function f1() {
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
}
=== tests/cases/conformance/es6/modules/m2.ts ===
import f1 from "./m1";
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
export default function f2() {
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
f1();
>f1() : void
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
}

View file

@ -0,0 +1,27 @@
//// [tests/cases/conformance/es6/modules/exportAndImport-es5-amd.ts] ////
//// [m1.ts]
export default function f1() {
}
//// [m2.ts]
import f1 from "./m1";
export default function f2() {
f1();
}
//// [m1.js]
define(["require", "exports"], function (require, exports) {
function f1() {
}
exports.default = f1;
});
//// [m2.js]
define(["require", "exports", "./m1"], function (require, exports, m1_1) {
function f2() {
m1_1.default();
}
exports.default = f2;
});

View file

@ -0,0 +1,18 @@
=== tests/cases/conformance/es6/modules/m1.ts ===
export default function f1() {
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
}
=== tests/cases/conformance/es6/modules/m2.ts ===
import f1 from "./m1";
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
export default function f2() {
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
f1();
>f1() : void
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
}

View file

@ -0,0 +1,24 @@
//// [tests/cases/conformance/es6/modules/exportAndImport-es5.ts] ////
//// [m1.ts]
export default function f1() {
}
//// [m2.ts]
import f1 from "./m1";
export default function f2() {
f1();
}
//// [m1.js]
function f1() {
}
exports.default = f1;
//// [m2.js]
var m1_1 = require("./m1");
function f2() {
m1_1.default();
}
exports.default = f2;

View file

@ -0,0 +1,18 @@
=== tests/cases/conformance/es6/modules/m1.ts ===
export default function f1() {
>f1 : () => void, Symbol(f1, Decl(m1.ts, 0, 0))
}
=== tests/cases/conformance/es6/modules/m2.ts ===
import f1 from "./m1";
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
export default function f2() {
>f2 : () => void, Symbol(f2, Decl(m2.ts, 0, 22))
f1();
>f1() : void
>f1 : () => void, Symbol(f1, Decl(m2.ts, 0, 6))
}

View file

@ -1,5 +1,6 @@
// @module: amd
// @declaration: true
// @target: ES5
// @filename: es6ImportDefaultBindingAmd_0.ts
var a = 10;

View file

@ -1,5 +1,6 @@
// @module: commonjs
// @declaration: true
// @target: ES5
// @filename: server.ts
class c { }

View file

@ -1,5 +1,6 @@
// @module: commonjs
// @declaration: true
// @target: ES5
// @filename: server.ts
var a = 10;

View file

@ -1,5 +1,6 @@
// @module: commonjs
// @declaration: true
// @target: ES5
// @filename: server.ts
class a { }

View file

@ -1,5 +1,6 @@
// @module: amd
// @declaration: true
// @target: ES5
// @filename: server.ts
export var a = 10;

View file

@ -1,5 +1,6 @@
// @module: amd
// @declaration: true
// @target: ES5
// @filename: server.ts
var a = 10;

View file

@ -1,5 +1,6 @@
// @module: amd
// @declaration: true
// @target: ES5
// @filename: server.ts
class a { }

View file

@ -1,4 +1,5 @@
// @module: commonjs
// @target: ES5
// @filename: es6ImportDefaultBindingMergeErrors_0.ts
var a = 10;

View file

@ -1,5 +1,6 @@
// @module: amd
// @declaration: true
// @target: ES5
// @filename: server.ts
var a = 10;

View file

@ -0,0 +1,12 @@
//@module: amd
//@target: ES3
// @filename: m1.ts
export default function f1() {
}
// @filename: m2.ts
import f1 from "./m1";
export default function f2() {
f1();
}

View file

@ -0,0 +1,12 @@
//@module: commonjs
//@target: ES3
// @filename: m1.ts
export default function f1() {
}
// @filename: m2.ts
import f1 from "./m1";
export default function f2() {
f1();
}

View file

@ -0,0 +1,12 @@
//@module: amd
//@target: ES5
// @filename: m1.ts
export default function f1() {
}
// @filename: m2.ts
import f1 from "./m1";
export default function f2() {
f1();
}

View file

@ -0,0 +1,12 @@
//@module: commonjs
//@target: ES5
// @filename: m1.ts
export default function f1() {
}
// @filename: m2.ts
import f1 from "./m1";
export default function f2() {
f1();
}

View file

@ -1,4 +1,5 @@
// @module: amd
// @target: ES5
// @filename: t1.ts
export var x = 1;

View file

@ -1,4 +1,5 @@
// @module: commonjs
// @target: ES5
// @filename: t1.ts
export var x = 1;

View file

@ -1,4 +1,5 @@
// @module: amd
// @target: ES5
// @filename: t1.ts
var v = 1;

View file

@ -1,4 +1,5 @@
// @module: amd
// @target: ES5
// @filename: t1.ts
export var x = "x";

View file

@ -1,4 +1,5 @@
// @module: amd
// @target: ES5
// @filename: t1.ts
export var v = 1;

View file

@ -1,4 +1,5 @@
// @module: amd
// @target: ES5
// @filename: t1.ts
export default "hello";

View file

@ -1,4 +1,5 @@
// @module: commonjs
// @target: ES5
// @filename: t1.ts
export default "hello";