diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index f08082d72c8..c826cd77441 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -7402,8 +7402,8 @@ const _super = (function (geti, seti) { emitExportStarHelper(); emitCaptureThisForNodeIfNecessary(node); emitLinesStartingAt(node.statements, startIndex); - emitTempDeclarations(/*newLine*/ true); emitExportEquals(/*emitAsReturn*/ true); + emitTempDeclarations(/*newLine*/ true); decreaseIndent(); writeLine(); write("});"); @@ -7416,8 +7416,8 @@ const _super = (function (geti, seti) { emitExportStarHelper(); emitCaptureThisForNodeIfNecessary(node); emitLinesStartingAt(node.statements, startIndex); - emitTempDeclarations(/*newLine*/ true); emitExportEquals(/*emitAsReturn*/ false); + emitTempDeclarations(/*newLine*/ true); } function emitUMDModule(node: SourceFile) { @@ -7443,8 +7443,8 @@ const _super = (function (geti, seti) { emitExportStarHelper(); emitCaptureThisForNodeIfNecessary(node); emitLinesStartingAt(node.statements, startIndex); - emitTempDeclarations(/*newLine*/ true); emitExportEquals(/*emitAsReturn*/ true); + emitTempDeclarations(/*newLine*/ true); decreaseIndent(); writeLine(); write("});"); diff --git a/tests/baselines/reference/exportEqualsAmd.js b/tests/baselines/reference/exportEqualsAmd.js new file mode 100644 index 00000000000..a0f029589d6 --- /dev/null +++ b/tests/baselines/reference/exportEqualsAmd.js @@ -0,0 +1,9 @@ +//// [exportEqualsAmd.ts] +export = { ["hi"]: "there" }; + +//// [exportEqualsAmd.js] +define(["require", "exports"], function (require, exports) { + "use strict"; + return (_a = {}, _a["hi"] = "there", _a); + var _a; +}); diff --git a/tests/baselines/reference/exportEqualsAmd.symbols b/tests/baselines/reference/exportEqualsAmd.symbols new file mode 100644 index 00000000000..db087c56786 --- /dev/null +++ b/tests/baselines/reference/exportEqualsAmd.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/exportEqualsAmd.ts === +export = { ["hi"]: "there" }; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/exportEqualsAmd.types b/tests/baselines/reference/exportEqualsAmd.types new file mode 100644 index 00000000000..f5b1bb49910 --- /dev/null +++ b/tests/baselines/reference/exportEqualsAmd.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/exportEqualsAmd.ts === +export = { ["hi"]: "there" }; +>{ ["hi"]: "there" } : { ["hi"]: string; } +>"hi" : string +>"there" : string + diff --git a/tests/baselines/reference/exportEqualsCommonJs.js b/tests/baselines/reference/exportEqualsCommonJs.js new file mode 100644 index 00000000000..01b7a43b310 --- /dev/null +++ b/tests/baselines/reference/exportEqualsCommonJs.js @@ -0,0 +1,7 @@ +//// [exportEqualsCommonJs.ts] +export = { ["hi"]: "there" }; + +//// [exportEqualsCommonJs.js] +"use strict"; +module.exports = (_a = {}, _a["hi"] = "there", _a); +var _a; diff --git a/tests/baselines/reference/exportEqualsCommonJs.symbols b/tests/baselines/reference/exportEqualsCommonJs.symbols new file mode 100644 index 00000000000..1c92a34bbc2 --- /dev/null +++ b/tests/baselines/reference/exportEqualsCommonJs.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/exportEqualsCommonJs.ts === +export = { ["hi"]: "there" }; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/exportEqualsCommonJs.types b/tests/baselines/reference/exportEqualsCommonJs.types new file mode 100644 index 00000000000..13b968595be --- /dev/null +++ b/tests/baselines/reference/exportEqualsCommonJs.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/exportEqualsCommonJs.ts === +export = { ["hi"]: "there" }; +>{ ["hi"]: "there" } : { ["hi"]: string; } +>"hi" : string +>"there" : string + diff --git a/tests/baselines/reference/exportEqualsUmd.js b/tests/baselines/reference/exportEqualsUmd.js new file mode 100644 index 00000000000..615cc2cddbe --- /dev/null +++ b/tests/baselines/reference/exportEqualsUmd.js @@ -0,0 +1,16 @@ +//// [exportEqualsUmd.ts] +export = { ["hi"]: "there" }; + +//// [exportEqualsUmd.js] +(function (factory) { + if (typeof module === 'object' && typeof module.exports === 'object') { + var v = factory(require, exports); if (v !== undefined) module.exports = v; + } + else if (typeof define === 'function' && define.amd) { + define(["require", "exports"], factory); + } +})(function (require, exports) { + "use strict"; + return (_a = {}, _a["hi"] = "there", _a); + var _a; +}); diff --git a/tests/baselines/reference/exportEqualsUmd.symbols b/tests/baselines/reference/exportEqualsUmd.symbols new file mode 100644 index 00000000000..480b8389030 --- /dev/null +++ b/tests/baselines/reference/exportEqualsUmd.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/exportEqualsUmd.ts === +export = { ["hi"]: "there" }; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/exportEqualsUmd.types b/tests/baselines/reference/exportEqualsUmd.types new file mode 100644 index 00000000000..ab456f0ae48 --- /dev/null +++ b/tests/baselines/reference/exportEqualsUmd.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/exportEqualsUmd.ts === +export = { ["hi"]: "there" }; +>{ ["hi"]: "there" } : { ["hi"]: string; } +>"hi" : string +>"there" : string + diff --git a/tests/cases/compiler/exportEqualsAmd.ts b/tests/cases/compiler/exportEqualsAmd.ts new file mode 100644 index 00000000000..132d9fe22cf --- /dev/null +++ b/tests/cases/compiler/exportEqualsAmd.ts @@ -0,0 +1,2 @@ +// @module: amd +export = { ["hi"]: "there" }; \ No newline at end of file diff --git a/tests/cases/compiler/exportEqualsCommonJs.ts b/tests/cases/compiler/exportEqualsCommonJs.ts new file mode 100644 index 00000000000..d075504ab03 --- /dev/null +++ b/tests/cases/compiler/exportEqualsCommonJs.ts @@ -0,0 +1,2 @@ +// @module: commonjs +export = { ["hi"]: "there" }; \ No newline at end of file diff --git a/tests/cases/compiler/exportEqualsUmd.ts b/tests/cases/compiler/exportEqualsUmd.ts new file mode 100644 index 00000000000..250aaccd2b8 --- /dev/null +++ b/tests/cases/compiler/exportEqualsUmd.ts @@ -0,0 +1,2 @@ +// @module: umd +export = { ["hi"]: "there" }; \ No newline at end of file