diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index dff0a2ba391..a5f3987eaea 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -5487,9 +5487,6 @@ if (typeof __param !== "function") __param = function (paramIndex, decorator) { } write("[\"require\", \"exports\""); - if (compilerOptions.noEmitHelpers) { - write(", \"__extends\""); - } if (aliasedModuleNames.length) { write(", "); write(aliasedModuleNames.join(", ")); @@ -5499,9 +5496,6 @@ if (typeof __param !== "function") __param = function (paramIndex, decorator) { write(unaliasedModuleNames.join(", ")); } write("], function (require, exports"); - if (compilerOptions.noEmitHelpers) { - write(", __extends"); - } if (importAliasNames.length) { write(", "); write(importAliasNames.join(", ")); @@ -5623,7 +5617,6 @@ if (typeof __param !== "function") __param = function (paramIndex, decorator) { // Only emit helpers if the user did not say otherwise. if (!compilerOptions.noEmitHelpers) { - // Only Emit __extends function when target ES5. // For target ES6 and above, we can emit classDeclaration as is. if ((languageVersion < ScriptTarget.ES6) && (!extendsEmitted && resolver.getNodeCheckFlags(node) & NodeCheckFlags.EmitExtends)) { @@ -5643,7 +5636,6 @@ if (typeof __param !== "function") __param = function (paramIndex, decorator) { writeLines(paramHelper); paramEmitted = true; } - } if (isExternalModule(node) || compilerOptions.separateCompilation) { diff --git a/tests/baselines/reference/noEmitHelpers2.js b/tests/baselines/reference/noEmitHelpers2.js new file mode 100644 index 00000000000..6ee07cd6251 --- /dev/null +++ b/tests/baselines/reference/noEmitHelpers2.js @@ -0,0 +1,17 @@ +//// [noEmitHelpers2.ts] + +function decorator() { } + +@decorator +class A { } + +//// [noEmitHelpers2.js] +function decorator() { } +var A = (function () { + function A() { + } + A = __decorate([ + decorator + ], A); + return A; +})(); diff --git a/tests/cases/compiler/noEmitHelpers2.ts b/tests/cases/compiler/noEmitHelpers2.ts new file mode 100644 index 00000000000..676b742c235 --- /dev/null +++ b/tests/cases/compiler/noEmitHelpers2.ts @@ -0,0 +1,10 @@ +// @noemithelpers: true +// @target: es5 + +function decorator() { } + +@decorator +class A { + constructor(a: number, b: string) { + } +} \ No newline at end of file