Skip to content

Commit abc2a35

Browse files
authored
Fix System module export import = (microsoft#49788)
* Add more SystemJS test case * Fix System module `export import =` * Update test case
1 parent e5b400c commit abc2a35

File tree

5 files changed

+94
-0
lines changed

5 files changed

+94
-0
lines changed

src/compiler/transformers/module/system.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,20 @@ namespace ts {
466466
factory.createAssignment(importVariableName, parameterName)
467467
)
468468
);
469+
if (hasSyntacticModifier(entry, ModifierFlags.Export)) {
470+
statements.push(
471+
factory.createExpressionStatement(
472+
factory.createCallExpression(
473+
exportFunction,
474+
/*typeArguments*/ undefined,
475+
[
476+
factory.createStringLiteral(idText(importVariableName)),
477+
parameterName,
478+
]
479+
)
480+
)
481+
);
482+
}
469483
break;
470484

471485
case SyntaxKind.ExportDeclaration:
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
//// [tests/cases/compiler/systemModule18.ts] ////
2+
3+
//// [react.ts]
4+
export function createElement() {}
5+
export function lazy() {}
6+
export function useState() {}
7+
8+
//// [index.ts]
9+
export import React = require("./react.js");
10+
11+
12+
//// [react.js]
13+
System.register([], function (exports_1, context_1) {
14+
"use strict";
15+
var __moduleName = context_1 && context_1.id;
16+
function createElement() { }
17+
exports_1("createElement", createElement);
18+
function lazy() { }
19+
exports_1("lazy", lazy);
20+
function useState() { }
21+
exports_1("useState", useState);
22+
return {
23+
setters: [],
24+
execute: function () {
25+
}
26+
};
27+
});
28+
//// [index.js]
29+
System.register(["./react.js"], function (exports_1, context_1) {
30+
"use strict";
31+
var React;
32+
var __moduleName = context_1 && context_1.id;
33+
return {
34+
setters: [
35+
function (React_1) {
36+
React = React_1;
37+
exports_1("React", React_1);
38+
}
39+
],
40+
execute: function () {
41+
}
42+
};
43+
});
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
=== tests/cases/compiler/index.ts ===
2+
export import React = require("./react.js");
3+
>React : Symbol(React, Decl(index.ts, 0, 0))
4+
5+
=== tests/cases/compiler/react.ts ===
6+
export function createElement() {}
7+
>createElement : Symbol(createElement, Decl(react.ts, 0, 0))
8+
9+
export function lazy() {}
10+
>lazy : Symbol(lazy, Decl(react.ts, 0, 34))
11+
12+
export function useState() {}
13+
>useState : Symbol(useState, Decl(react.ts, 1, 25))
14+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
=== tests/cases/compiler/index.ts ===
2+
export import React = require("./react.js");
3+
>React : typeof React
4+
5+
=== tests/cases/compiler/react.ts ===
6+
export function createElement() {}
7+
>createElement : () => void
8+
9+
export function lazy() {}
10+
>lazy : () => void
11+
12+
export function useState() {}
13+
>useState : () => void
14+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// @module: system
2+
3+
// @filename: react.ts
4+
export function createElement() {}
5+
export function lazy() {}
6+
export function useState() {}
7+
8+
// @filename: index.ts
9+
export import React = require("./react.js");

0 commit comments

Comments
 (0)