diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 2d8377f74f8..17c54c9eb0a 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2710,15 +2710,20 @@ 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.ES5) { + write("Object.defineProperty(exports, \"__esModule\", {"); + writeLine(); + increaseIndent(); + // default value of configurable, enumerable, writable are `false`. + write("value: true"); + writeLine(); + decreaseIndent(); + write("};"); + writeLine(); + } else { + write("exports.__esModule = true;"); + writeLine(); + } } if (languageVersion === ScriptTarget.ES3) { write("exports[\"default\"]"); diff --git a/tests/baselines/reference/exportAndImport-es3-amd.js b/tests/baselines/reference/exportAndImport-es3-amd.js index 33630da60d2..d2293a56e23 100644 --- a/tests/baselines/reference/exportAndImport-es3-amd.js +++ b/tests/baselines/reference/exportAndImport-es3-amd.js @@ -16,9 +16,7 @@ export default function f2() { define(["require", "exports"], function (require, exports) { function f1() { } - Object.defineProperty(exports, "__esModule", { - value: true - }; + exports.__esModule = true; exports["default"] = f1; }); //// [m2.js] @@ -26,8 +24,6 @@ define(["require", "exports", "./m1"], function (require, exports, m1_1) { function f2() { m1_1["default"](); } - Object.defineProperty(exports, "__esModule", { - value: true - }; + exports.__esModule = true; exports["default"] = f2; }); diff --git a/tests/baselines/reference/exportAndImport-es3.js b/tests/baselines/reference/exportAndImport-es3.js index 60d2c39e203..1be548bc930 100644 --- a/tests/baselines/reference/exportAndImport-es3.js +++ b/tests/baselines/reference/exportAndImport-es3.js @@ -15,16 +15,12 @@ export default function f2() { //// [m1.js] function f1() { } -Object.defineProperty(exports, "__esModule", { - value: true -}; +exports.__esModule = true; exports["default"] = f1; //// [m2.js] var m1_1 = require("./m1"); function f2() { m1_1["default"](); } -Object.defineProperty(exports, "__esModule", { - value: true -}; +exports.__esModule = true; exports["default"] = f2;