mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-20 05:17:43 -05:00
addressed PR feedback
This commit is contained in:
@@ -4377,15 +4377,18 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(node.flags & NodeFlags.Export) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
if (!shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
// do not emit var if variable was already hoisted
|
||||
if (!(node.flags & NodeFlags.Export) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
|
||||
27
tests/baselines/reference/systemModuleConstEnums.js
Normal file
27
tests/baselines/reference/systemModuleConstEnums.js
Normal file
@@ -0,0 +1,27 @@
|
||||
//// [systemModuleConstEnums.ts]
|
||||
|
||||
declare function use(a: any);
|
||||
const enum TopLevelConstEnum { X }
|
||||
|
||||
export function foo() {
|
||||
use(TopLevelConstEnum.X);
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
}
|
||||
|
||||
module M {
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
}
|
||||
|
||||
//// [systemModuleConstEnums.js]
|
||||
System.register([], function(exports_1) {
|
||||
function foo() {
|
||||
use(0 /* X */);
|
||||
use(0 /* X */);
|
||||
}
|
||||
exports_1("foo", foo);
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
}
|
||||
}
|
||||
});
|
||||
35
tests/baselines/reference/systemModuleConstEnums.symbols
Normal file
35
tests/baselines/reference/systemModuleConstEnums.symbols
Normal file
@@ -0,0 +1,35 @@
|
||||
=== tests/cases/compiler/systemModuleConstEnums.ts ===
|
||||
|
||||
declare function use(a: any);
|
||||
>use : Symbol(use, Decl(systemModuleConstEnums.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(systemModuleConstEnums.ts, 1, 21))
|
||||
|
||||
const enum TopLevelConstEnum { X }
|
||||
>TopLevelConstEnum : Symbol(TopLevelConstEnum, Decl(systemModuleConstEnums.ts, 1, 29))
|
||||
>X : Symbol(TopLevelConstEnum.X, Decl(systemModuleConstEnums.ts, 2, 30))
|
||||
|
||||
export function foo() {
|
||||
>foo : Symbol(foo, Decl(systemModuleConstEnums.ts, 2, 34))
|
||||
|
||||
use(TopLevelConstEnum.X);
|
||||
>use : Symbol(use, Decl(systemModuleConstEnums.ts, 0, 0))
|
||||
>TopLevelConstEnum.X : Symbol(TopLevelConstEnum.X, Decl(systemModuleConstEnums.ts, 2, 30))
|
||||
>TopLevelConstEnum : Symbol(TopLevelConstEnum, Decl(systemModuleConstEnums.ts, 1, 29))
|
||||
>X : Symbol(TopLevelConstEnum.X, Decl(systemModuleConstEnums.ts, 2, 30))
|
||||
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
>use : Symbol(use, Decl(systemModuleConstEnums.ts, 0, 0))
|
||||
>M.NonTopLevelConstEnum.X : Symbol(M.NonTopLevelConstEnum.X, Decl(systemModuleConstEnums.ts, 10, 44))
|
||||
>M.NonTopLevelConstEnum : Symbol(M.NonTopLevelConstEnum, Decl(systemModuleConstEnums.ts, 9, 10))
|
||||
>M : Symbol(M, Decl(systemModuleConstEnums.ts, 7, 1))
|
||||
>NonTopLevelConstEnum : Symbol(M.NonTopLevelConstEnum, Decl(systemModuleConstEnums.ts, 9, 10))
|
||||
>X : Symbol(M.NonTopLevelConstEnum.X, Decl(systemModuleConstEnums.ts, 10, 44))
|
||||
}
|
||||
|
||||
module M {
|
||||
>M : Symbol(M, Decl(systemModuleConstEnums.ts, 7, 1))
|
||||
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
>NonTopLevelConstEnum : Symbol(NonTopLevelConstEnum, Decl(systemModuleConstEnums.ts, 9, 10))
|
||||
>X : Symbol(NonTopLevelConstEnum.X, Decl(systemModuleConstEnums.ts, 10, 44))
|
||||
}
|
||||
37
tests/baselines/reference/systemModuleConstEnums.types
Normal file
37
tests/baselines/reference/systemModuleConstEnums.types
Normal file
@@ -0,0 +1,37 @@
|
||||
=== tests/cases/compiler/systemModuleConstEnums.ts ===
|
||||
|
||||
declare function use(a: any);
|
||||
>use : (a: any) => any
|
||||
>a : any
|
||||
|
||||
const enum TopLevelConstEnum { X }
|
||||
>TopLevelConstEnum : TopLevelConstEnum
|
||||
>X : TopLevelConstEnum
|
||||
|
||||
export function foo() {
|
||||
>foo : () => void
|
||||
|
||||
use(TopLevelConstEnum.X);
|
||||
>use(TopLevelConstEnum.X) : any
|
||||
>use : (a: any) => any
|
||||
>TopLevelConstEnum.X : TopLevelConstEnum
|
||||
>TopLevelConstEnum : typeof TopLevelConstEnum
|
||||
>X : TopLevelConstEnum
|
||||
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
>use(M.NonTopLevelConstEnum.X) : any
|
||||
>use : (a: any) => any
|
||||
>M.NonTopLevelConstEnum.X : M.NonTopLevelConstEnum
|
||||
>M.NonTopLevelConstEnum : typeof M.NonTopLevelConstEnum
|
||||
>M : typeof M
|
||||
>NonTopLevelConstEnum : typeof M.NonTopLevelConstEnum
|
||||
>X : M.NonTopLevelConstEnum
|
||||
}
|
||||
|
||||
module M {
|
||||
>M : typeof M
|
||||
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
>NonTopLevelConstEnum : NonTopLevelConstEnum
|
||||
>X : NonTopLevelConstEnum
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
//// [systemModuleConstEnumsSeparateCompilation.ts]
|
||||
|
||||
declare function use(a: any);
|
||||
const enum TopLevelConstEnum { X }
|
||||
|
||||
export function foo() {
|
||||
use(TopLevelConstEnum.X);
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
}
|
||||
|
||||
module M {
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
}
|
||||
|
||||
//// [systemModuleConstEnumsSeparateCompilation.js]
|
||||
System.register([], function(exports_1) {
|
||||
var TopLevelConstEnum, M;
|
||||
function foo() {
|
||||
use(TopLevelConstEnum.X);
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
}
|
||||
exports_1("foo", foo);
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
(function (TopLevelConstEnum) {
|
||||
TopLevelConstEnum[TopLevelConstEnum["X"] = 0] = "X";
|
||||
})(TopLevelConstEnum || (TopLevelConstEnum = {}));
|
||||
(function (M) {
|
||||
(function (NonTopLevelConstEnum) {
|
||||
NonTopLevelConstEnum[NonTopLevelConstEnum["X"] = 0] = "X";
|
||||
})(M.NonTopLevelConstEnum || (M.NonTopLevelConstEnum = {}));
|
||||
var NonTopLevelConstEnum = M.NonTopLevelConstEnum;
|
||||
})(M || (M = {}));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,35 @@
|
||||
=== tests/cases/compiler/systemModuleConstEnumsSeparateCompilation.ts ===
|
||||
|
||||
declare function use(a: any);
|
||||
>use : Symbol(use, Decl(systemModuleConstEnumsSeparateCompilation.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(systemModuleConstEnumsSeparateCompilation.ts, 1, 21))
|
||||
|
||||
const enum TopLevelConstEnum { X }
|
||||
>TopLevelConstEnum : Symbol(TopLevelConstEnum, Decl(systemModuleConstEnumsSeparateCompilation.ts, 1, 29))
|
||||
>X : Symbol(TopLevelConstEnum.X, Decl(systemModuleConstEnumsSeparateCompilation.ts, 2, 30))
|
||||
|
||||
export function foo() {
|
||||
>foo : Symbol(foo, Decl(systemModuleConstEnumsSeparateCompilation.ts, 2, 34))
|
||||
|
||||
use(TopLevelConstEnum.X);
|
||||
>use : Symbol(use, Decl(systemModuleConstEnumsSeparateCompilation.ts, 0, 0))
|
||||
>TopLevelConstEnum.X : Symbol(TopLevelConstEnum.X, Decl(systemModuleConstEnumsSeparateCompilation.ts, 2, 30))
|
||||
>TopLevelConstEnum : Symbol(TopLevelConstEnum, Decl(systemModuleConstEnumsSeparateCompilation.ts, 1, 29))
|
||||
>X : Symbol(TopLevelConstEnum.X, Decl(systemModuleConstEnumsSeparateCompilation.ts, 2, 30))
|
||||
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
>use : Symbol(use, Decl(systemModuleConstEnumsSeparateCompilation.ts, 0, 0))
|
||||
>M.NonTopLevelConstEnum.X : Symbol(M.NonTopLevelConstEnum.X, Decl(systemModuleConstEnumsSeparateCompilation.ts, 10, 44))
|
||||
>M.NonTopLevelConstEnum : Symbol(M.NonTopLevelConstEnum, Decl(systemModuleConstEnumsSeparateCompilation.ts, 9, 10))
|
||||
>M : Symbol(M, Decl(systemModuleConstEnumsSeparateCompilation.ts, 7, 1))
|
||||
>NonTopLevelConstEnum : Symbol(M.NonTopLevelConstEnum, Decl(systemModuleConstEnumsSeparateCompilation.ts, 9, 10))
|
||||
>X : Symbol(M.NonTopLevelConstEnum.X, Decl(systemModuleConstEnumsSeparateCompilation.ts, 10, 44))
|
||||
}
|
||||
|
||||
module M {
|
||||
>M : Symbol(M, Decl(systemModuleConstEnumsSeparateCompilation.ts, 7, 1))
|
||||
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
>NonTopLevelConstEnum : Symbol(NonTopLevelConstEnum, Decl(systemModuleConstEnumsSeparateCompilation.ts, 9, 10))
|
||||
>X : Symbol(NonTopLevelConstEnum.X, Decl(systemModuleConstEnumsSeparateCompilation.ts, 10, 44))
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
=== tests/cases/compiler/systemModuleConstEnumsSeparateCompilation.ts ===
|
||||
|
||||
declare function use(a: any);
|
||||
>use : (a: any) => any
|
||||
>a : any
|
||||
|
||||
const enum TopLevelConstEnum { X }
|
||||
>TopLevelConstEnum : TopLevelConstEnum
|
||||
>X : TopLevelConstEnum
|
||||
|
||||
export function foo() {
|
||||
>foo : () => void
|
||||
|
||||
use(TopLevelConstEnum.X);
|
||||
>use(TopLevelConstEnum.X) : any
|
||||
>use : (a: any) => any
|
||||
>TopLevelConstEnum.X : TopLevelConstEnum
|
||||
>TopLevelConstEnum : typeof TopLevelConstEnum
|
||||
>X : TopLevelConstEnum
|
||||
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
>use(M.NonTopLevelConstEnum.X) : any
|
||||
>use : (a: any) => any
|
||||
>M.NonTopLevelConstEnum.X : M.NonTopLevelConstEnum
|
||||
>M.NonTopLevelConstEnum : typeof M.NonTopLevelConstEnum
|
||||
>M : typeof M
|
||||
>NonTopLevelConstEnum : typeof M.NonTopLevelConstEnum
|
||||
>X : M.NonTopLevelConstEnum
|
||||
}
|
||||
|
||||
module M {
|
||||
>M : typeof M
|
||||
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
>NonTopLevelConstEnum : NonTopLevelConstEnum
|
||||
>X : NonTopLevelConstEnum
|
||||
}
|
||||
67
tests/baselines/reference/systemModuleExportDefault.js
Normal file
67
tests/baselines/reference/systemModuleExportDefault.js
Normal file
@@ -0,0 +1,67 @@
|
||||
//// [tests/cases/compiler/systemModuleExportDefault.ts] ////
|
||||
|
||||
//// [file1.ts]
|
||||
|
||||
export default function() {}
|
||||
|
||||
//// [file2.ts]
|
||||
export default function foo() {}
|
||||
|
||||
//// [file3.ts]
|
||||
export default class {}
|
||||
|
||||
//// [file4.ts]
|
||||
export default class C {}
|
||||
|
||||
|
||||
|
||||
//// [file1.js]
|
||||
System.register([], function(exports_1) {
|
||||
function default_1() { }
|
||||
exports_1("default", default_1);
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
}
|
||||
}
|
||||
});
|
||||
//// [file2.js]
|
||||
System.register([], function(exports_1) {
|
||||
function foo() { }
|
||||
exports_1("default", foo);
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
}
|
||||
}
|
||||
});
|
||||
//// [file3.js]
|
||||
System.register([], function(exports_1) {
|
||||
var default_1;
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
default_1 = (function () {
|
||||
function default_1() {
|
||||
}
|
||||
return default_1;
|
||||
})();
|
||||
exports_1("default", default_1);
|
||||
}
|
||||
}
|
||||
});
|
||||
//// [file4.js]
|
||||
System.register([], function(exports_1) {
|
||||
var C;
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
C = (function () {
|
||||
function C() {
|
||||
}
|
||||
return C;
|
||||
})();
|
||||
exports_1("default", C);
|
||||
}
|
||||
}
|
||||
});
|
||||
16
tests/baselines/reference/systemModuleExportDefault.symbols
Normal file
16
tests/baselines/reference/systemModuleExportDefault.symbols
Normal file
@@ -0,0 +1,16 @@
|
||||
=== tests/cases/compiler/file1.ts ===
|
||||
|
||||
No type information for this code.export default function() {}
|
||||
No type information for this code.
|
||||
No type information for this code.=== tests/cases/compiler/file2.ts ===
|
||||
export default function foo() {}
|
||||
>foo : Symbol(foo, Decl(file2.ts, 0, 0))
|
||||
|
||||
=== tests/cases/compiler/file3.ts ===
|
||||
export default class {}
|
||||
No type information for this code.
|
||||
No type information for this code.=== tests/cases/compiler/file4.ts ===
|
||||
export default class C {}
|
||||
>C : Symbol(C, Decl(file4.ts, 0, 0))
|
||||
|
||||
|
||||
16
tests/baselines/reference/systemModuleExportDefault.types
Normal file
16
tests/baselines/reference/systemModuleExportDefault.types
Normal file
@@ -0,0 +1,16 @@
|
||||
=== tests/cases/compiler/file1.ts ===
|
||||
|
||||
No type information for this code.export default function() {}
|
||||
No type information for this code.
|
||||
No type information for this code.=== tests/cases/compiler/file2.ts ===
|
||||
export default function foo() {}
|
||||
>foo : () => void
|
||||
|
||||
=== tests/cases/compiler/file3.ts ===
|
||||
export default class {}
|
||||
No type information for this code.
|
||||
No type information for this code.=== tests/cases/compiler/file4.ts ===
|
||||
export default class C {}
|
||||
>C : C
|
||||
|
||||
|
||||
13
tests/cases/compiler/systemModuleConstEnums.ts
Normal file
13
tests/cases/compiler/systemModuleConstEnums.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
// @module: system
|
||||
|
||||
declare function use(a: any);
|
||||
const enum TopLevelConstEnum { X }
|
||||
|
||||
export function foo() {
|
||||
use(TopLevelConstEnum.X);
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
}
|
||||
|
||||
module M {
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// @module: system
|
||||
// @separateCompilation: true
|
||||
|
||||
declare function use(a: any);
|
||||
const enum TopLevelConstEnum { X }
|
||||
|
||||
export function foo() {
|
||||
use(TopLevelConstEnum.X);
|
||||
use(M.NonTopLevelConstEnum.X);
|
||||
}
|
||||
|
||||
module M {
|
||||
export const enum NonTopLevelConstEnum { X }
|
||||
}
|
||||
14
tests/cases/compiler/systemModuleExportDefault.ts
Normal file
14
tests/cases/compiler/systemModuleExportDefault.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
// @module: system
|
||||
|
||||
// @filename: file1.ts
|
||||
export default function() {}
|
||||
|
||||
// @filename: file2.ts
|
||||
export default function foo() {}
|
||||
|
||||
// @filename: file3.ts
|
||||
export default class {}
|
||||
|
||||
// @filename: file4.ts
|
||||
export default class C {}
|
||||
|
||||
Reference in New Issue
Block a user