improve module loading interoperability for babel

This commit is contained in:
vvakame
2015-06-21 16:15:21 +09:00
parent 25ecada731
commit 54a4e9e57d
20 changed files with 223 additions and 0 deletions
+11
View File
@@ -2709,6 +2709,17 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
}
else {
if (node.flags & NodeFlags.Default) {
if (compilerOptions.module === ModuleKind.CommonJS || compilerOptions.module === ModuleKind.AMD || compilerOptions.module === ModuleKind.UMD) {
write("Object.defineProperty(exports, \"__esModule\", {");
writeLine();
increaseIndent();
// default value of configurable, enumerable, writable are `false`.
write("value: true");
writeLine();
decreaseIndent();
write("};");
writeLine();
}
if (languageVersion === ScriptTarget.ES3) {
write("exports[\"default\"]");
} else {
+29
View File
@@ -0,0 +1,29 @@
//// [es5-commonjs.ts]
export default class A
{
constructor ()
{
}
public B()
{
return 42;
}
}
//// [es5-commonjs.js]
var A = (function () {
function A() {
}
A.prototype.B = function () {
return 42;
};
return A;
})();
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = A;
@@ -0,0 +1,17 @@
=== tests/cases/compiler/es5-commonjs.ts ===
export default class A
>A : Symbol(A, Decl(es5-commonjs.ts, 0, 0))
{
constructor ()
{
}
public B()
>B : Symbol(B, Decl(es5-commonjs.ts, 6, 5))
{
return 42;
}
}
@@ -0,0 +1,18 @@
=== tests/cases/compiler/es5-commonjs.ts ===
export default class A
>A : A
{
constructor ()
{
}
public B()
>B : () => number
{
return 42;
>42 : number
}
}
+34
View File
@@ -0,0 +1,34 @@
//// [es5-system.ts]
export default class A
{
constructor ()
{
}
public B()
{
return 42;
}
}
//// [es5-system.js]
System.register([], function(exports_1) {
var A;
return {
setters:[],
execute: function() {
A = (function () {
function A() {
}
A.prototype.B = function () {
return 42;
};
return A;
})();
exports_1("default", A);
}
}
});
@@ -0,0 +1,17 @@
=== tests/cases/compiler/es5-system.ts ===
export default class A
>A : Symbol(A, Decl(es5-system.ts, 0, 0))
{
constructor ()
{
}
public B()
>B : Symbol(B, Decl(es5-system.ts, 6, 5))
{
return 42;
}
}
@@ -0,0 +1,18 @@
=== tests/cases/compiler/es5-system.ts ===
export default class A
>A : A
{
constructor ()
{
}
public B()
>B : () => number
{
return 42;
>42 : number
}
}
+3
View File
@@ -31,5 +31,8 @@ export default class A
};
return A;
})();
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = A;
});
@@ -12,6 +12,9 @@ var C = (function () {
C.prototype.method = function () { };
return C;
})();
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = C;
@@ -12,6 +12,9 @@ var default_1 = (function () {
default_1.prototype.method = function () { };
return default_1;
})();
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = default_1;
@@ -24,6 +24,9 @@ var C = (function () {
};
return C;
})();
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = C;
var after = new C();
var t = C;
@@ -5,6 +5,9 @@ export default function f() { }
//// [es5ExportDefaultFunctionDeclaration.js]
function f() { }
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = f;
@@ -5,6 +5,9 @@ export default function () { }
//// [es5ExportDefaultFunctionDeclaration2.js]
function default_1() { }
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = default_1;
@@ -13,6 +13,9 @@ var before = func();
function func() {
return func;
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = func;
var after = func();
@@ -16,6 +16,9 @@ export default function f2() {
define(["require", "exports"], function (require, exports) {
function f1() {
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports["default"] = f1;
});
//// [m2.js]
@@ -23,5 +26,8 @@ define(["require", "exports", "./m1"], function (require, exports, m1_1) {
function f2() {
m1_1["default"]();
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports["default"] = f2;
});
@@ -15,10 +15,16 @@ export default function f2() {
//// [m1.js]
function f1() {
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports["default"] = f1;
//// [m2.js]
var m1_1 = require("./m1");
function f2() {
m1_1["default"]();
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports["default"] = f2;
@@ -16,6 +16,9 @@ export default function f2() {
define(["require", "exports"], function (require, exports) {
function f1() {
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = f1;
});
//// [m2.js]
@@ -23,5 +26,8 @@ define(["require", "exports", "./m1"], function (require, exports, m1_1) {
function f2() {
m1_1.default();
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = f2;
});
@@ -15,10 +15,16 @@ export default function f2() {
//// [m1.js]
function f1() {
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = f1;
//// [m2.js]
var m1_1 = require("./m1");
function f2() {
m1_1.default();
}
Object.defineProperty(exports, "__esModule", {
value: true
};
exports.default = f2;
+17
View File
@@ -0,0 +1,17 @@
// @target: ES5
// @sourcemap: false
// @declaration: false
// @module: commonjs
export default class A
{
constructor ()
{
}
public B()
{
return 42;
}
}
+17
View File
@@ -0,0 +1,17 @@
// @target: ES5
// @sourcemap: false
// @declaration: false
// @module: system
export default class A
{
constructor ()
{
}
public B()
{
return 42;
}
}