Skip to content

Commit

Permalink
Merge pull request #4179 from Microsoft/exportDeclarationsInSystem
Browse files Browse the repository at this point in the history
emit export declarations for system modules as a part of 'execute' me…
  • Loading branch information
vladima committed Aug 10, 2015
2 parents bfa624c + 7ecaea3 commit 586abac
Show file tree
Hide file tree
Showing 18 changed files with 605 additions and 176 deletions.
249 changes: 130 additions & 119 deletions src/compiler/emitter.ts

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions tests/baselines/reference/aliasesInSystemModule1.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ System.register(['foo'], function(exports_1) {
var cls, cls2, x, y, z, M;
return {
setters:[
function (_alias) {
alias = _alias;
function (alias_1) {
alias = alias_1;
}],
execute: function() {
cls = alias.Class;
Expand Down
4 changes: 2 additions & 2 deletions tests/baselines/reference/aliasesInSystemModule2.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ System.register(["foo"], function(exports_1) {
var cls, cls2, x, y, z, M;
return {
setters:[
function (_foo_1) {
foo_1 = _foo_1;
function (foo_1_1) {
foo_1 = foo_1_1;
}],
execute: function() {
cls = foo_1.alias.Class;
Expand Down
20 changes: 10 additions & 10 deletions tests/baselines/reference/systemModule10.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@ System.register(['file1', 'file2'], function(exports_1) {
var file1_1, n2;
return {
setters:[
function (_file1_1) {
file1_1 = _file1_1;
exports_1("n", file1_1["default"]);
exports_1("n1", file1_1["default"]);
exports_1("x", file1_1.x);
exports_1("y", file1_1.x);
function (file1_1_1) {
file1_1 = file1_1_1;
},
function (_n2) {
n2 = _n2;
exports_1("n2", n2);
exports_1("n3", n2);
function (n2_1) {
n2 = n2_1;
}],
execute: function() {
exports_1("x", file1_1.x);
exports_1("y", file1_1.x);
exports_1("n", file1_1["default"]);
exports_1("n1", file1_1["default"]);
exports_1("n2", n2);
exports_1("n3", n2);
}
}
});
20 changes: 10 additions & 10 deletions tests/baselines/reference/systemModule10_ES5.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@ System.register(['file1', 'file2'], function(exports_1) {
var file1_1, n2;
return {
setters:[
function (_file1_1) {
file1_1 = _file1_1;
exports_1("n", file1_1.default);
exports_1("n1", file1_1.default);
exports_1("x", file1_1.x);
exports_1("y", file1_1.x);
function (file1_1_1) {
file1_1 = file1_1_1;
},
function (_n2) {
n2 = _n2;
exports_1("n2", n2);
exports_1("n3", n2);
function (n2_1) {
n2 = n2_1;
}],
execute: function() {
exports_1("x", file1_1.x);
exports_1("y", file1_1.x);
exports_1("n", file1_1.default);
exports_1("n1", file1_1.default);
exports_1("n2", n2);
exports_1("n3", n2);
}
}
});
36 changes: 18 additions & 18 deletions tests/baselines/reference/systemModule11.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ System.register(['bar'], function(exports_1) {
}
return {
setters:[
function (_bar_1) {
exportStar_1(_bar_1);
function (bar_1_1) {
exportStar_1(bar_1_1);
}],
execute: function() {
}
Expand All @@ -82,8 +82,8 @@ System.register(['bar'], function(exports_1) {
}
return {
setters:[
function (_bar_1) {
exportStar_1(_bar_1);
function (bar_1_1) {
exportStar_1(bar_1_1);
}],
execute: function() {
exports_1("x", x);
Expand All @@ -108,14 +108,14 @@ System.register(['a', 'bar'], function(exports_1) {
}
return {
setters:[
function (_a_1) {
var reexports_1 = {};
reexports_1["x"] = _a_1["x"];
reexports_1["z"] = _a_1["y"];
exports_1(reexports_1);
function (a_1_1) {
exports_1({
"x": a_1_1["x"],
"z": a_1_1["y"]
});
},
function (_bar_1) {
exportStar_1(_bar_1);
function (bar_1_1) {
exportStar_1(bar_1_1);
}],
execute: function() {
}
Expand All @@ -130,11 +130,11 @@ System.register(['a'], function(exports_1) {
exports_1("default", default_1);
return {
setters:[
function (_a_1) {
var reexports_1 = {};
reexports_1["s"] = _a_1["s"];
reexports_1["s2"] = _a_1["s1"];
exports_1(reexports_1);
function (a_1_1) {
exports_1({
"s": a_1_1["s"],
"s2": a_1_1["s1"]
});
}],
execute: function() {
exports_1("z", z);
Expand All @@ -154,8 +154,8 @@ System.register(['a'], function(exports_1) {
}
return {
setters:[
function (_a_1) {
exportStar_1(_a_1);
function (a_1_1) {
exportStar_1(a_1_1);
}],
execute: function() {
}
Expand Down
16 changes: 16 additions & 0 deletions tests/baselines/reference/systemModule14.errors.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
tests/cases/compiler/systemModule14.ts(6,17): error TS2307: Cannot find module 'foo'.


==== tests/cases/compiler/systemModule14.ts (1 errors) ====

function foo() {
return a;
}

import {a} from "foo";
~~~~~
!!! error TS2307: Cannot find module 'foo'.
export {foo}

var x = 1;
export {foo as b}
31 changes: 31 additions & 0 deletions tests/baselines/reference/systemModule14.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//// [systemModule14.ts]

function foo() {
return a;
}

import {a} from "foo";
export {foo}

var x = 1;
export {foo as b}

//// [systemModule14.js]
System.register(["foo"], function(exports_1) {
var foo_1;
var x;
function foo() {
return foo_1.a;
}
return {
setters:[
function (foo_1_1) {
foo_1 = foo_1_1;
}],
execute: function() {
exports_1("foo", foo);
x = 1;
exports_1("b", foo);
}
}
});
88 changes: 88 additions & 0 deletions tests/baselines/reference/systemModule15.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
//// [tests/cases/compiler/systemModule15.ts] ////

//// [file1.ts]


import * as moduleB from "./file2"

declare function use(v: any): void;

use(moduleB.value);
use(moduleB.moduleC);
use(moduleB.moduleCStar);

//// [file2.ts]

import * as moduleCStar from "./file3"
import {value2} from "./file4"
import moduleC from "./file3"
import {value} from "./file3"

export {
moduleCStar,
moduleC,
value
}

//// [file3.ts]

export var value = "youpi";
export default value;

//// [file4.ts]

export var value2 = "v";

//// [file3.js]
System.register([], function(exports_1) {
var value;
return {
setters:[],
execute: function() {
exports_1("value", value = "youpi");
exports_1("default",value);
}
}
});
//// [file4.js]
System.register([], function(exports_1) {
var value2;
return {
setters:[],
execute: function() {
exports_1("value2", value2 = "v");
}
}
});
//// [file2.js]
System.register(["./file3"], function(exports_1) {
var moduleCStar, file3_1, file3_2;
return {
setters:[
function (moduleCStar_1) {
moduleCStar = moduleCStar_1;
file3_1 = moduleCStar_1;
file3_2 = moduleCStar_1;
}],
execute: function() {
exports_1("moduleCStar", moduleCStar);
exports_1("moduleC", file3_1["default"]);
exports_1("value", file3_2.value);
}
}
});
//// [file1.js]
System.register(["./file2"], function(exports_1) {
var moduleB;
return {
setters:[
function (moduleB_1) {
moduleB = moduleB_1;
}],
execute: function() {
use(moduleB.value);
use(moduleB.moduleC);
use(moduleB.moduleCStar);
}
}
});
66 changes: 66 additions & 0 deletions tests/baselines/reference/systemModule15.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
=== tests/cases/compiler/file1.ts ===


import * as moduleB from "./file2"
>moduleB : Symbol(moduleB, Decl(file1.ts, 2, 6))

declare function use(v: any): void;
>use : Symbol(use, Decl(file1.ts, 2, 34))
>v : Symbol(v, Decl(file1.ts, 4, 21))

use(moduleB.value);
>use : Symbol(use, Decl(file1.ts, 2, 34))
>moduleB.value : Symbol(moduleB.value, Decl(file2.ts, 8, 12))
>moduleB : Symbol(moduleB, Decl(file1.ts, 2, 6))
>value : Symbol(moduleB.value, Decl(file2.ts, 8, 12))

use(moduleB.moduleC);
>use : Symbol(use, Decl(file1.ts, 2, 34))
>moduleB.moduleC : Symbol(moduleB.moduleC, Decl(file2.ts, 7, 16))
>moduleB : Symbol(moduleB, Decl(file1.ts, 2, 6))
>moduleC : Symbol(moduleB.moduleC, Decl(file2.ts, 7, 16))

use(moduleB.moduleCStar);
>use : Symbol(use, Decl(file1.ts, 2, 34))
>moduleB.moduleCStar : Symbol(moduleB.moduleCStar, Decl(file2.ts, 6, 8))
>moduleB : Symbol(moduleB, Decl(file1.ts, 2, 6))
>moduleCStar : Symbol(moduleB.moduleCStar, Decl(file2.ts, 6, 8))

=== tests/cases/compiler/file2.ts ===

import * as moduleCStar from "./file3"
>moduleCStar : Symbol(moduleCStar, Decl(file2.ts, 1, 6))

import {value2} from "./file4"
>value2 : Symbol(value2, Decl(file2.ts, 2, 8))

import moduleC from "./file3"
>moduleC : Symbol(moduleC, Decl(file2.ts, 3, 6))

import {value} from "./file3"
>value : Symbol(value, Decl(file2.ts, 4, 8))

export {
moduleCStar,
>moduleCStar : Symbol(moduleCStar, Decl(file2.ts, 6, 8))

moduleC,
>moduleC : Symbol(moduleC, Decl(file2.ts, 7, 16))

value
>value : Symbol(value, Decl(file2.ts, 8, 12))
}

=== tests/cases/compiler/file3.ts ===

export var value = "youpi";
>value : Symbol(value, Decl(file3.ts, 1, 10))

export default value;
>value : Symbol(value, Decl(file3.ts, 1, 10))

=== tests/cases/compiler/file4.ts ===

export var value2 = "v";
>value2 : Symbol(value2, Decl(file4.ts, 1, 10))

Loading

0 comments on commit 586abac

Please sign in to comment.