diff --git a/src/compiler/declarationEmitter.ts b/src/compiler/declarationEmitter.ts index 0e0b121bf3c..6e09a398ea6 100644 --- a/src/compiler/declarationEmitter.ts +++ b/src/compiler/declarationEmitter.ts @@ -1675,7 +1675,7 @@ namespace ts { /* @internal */ export function writeDeclarationFile(declarationFilePath: string, sourceFiles: SourceFile[], isBundledEmit: boolean, host: EmitHost, resolver: EmitResolver, emitterDiagnostics: DiagnosticCollection) { const emitDeclarationResult = emitDeclarations(host, resolver, emitterDiagnostics, declarationFilePath, sourceFiles, isBundledEmit); - const emitSkipped = emitDeclarationResult.reportedDeclarationError || host.isEmitBlocked(declarationFilePath); + const emitSkipped = emitDeclarationResult.reportedDeclarationError || host.isEmitBlocked(declarationFilePath) || host.getCompilerOptions().noEmit; if (!emitSkipped) { const declarationOutput = emitDeclarationResult.referencePathsOutput + getDeclarationOutput(emitDeclarationResult.synchronousDeclarationOutput, emitDeclarationResult.moduleElementDeclarationEmitInfo); diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 88847999a4b..337996443b2 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -7823,7 +7823,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi function emitFile({ jsFilePath, sourceMapFilePath, declarationFilePath}: { jsFilePath: string, sourceMapFilePath: string, declarationFilePath: string }, sourceFiles: SourceFile[], isBundledEmit: boolean) { // Make sure not to write js File and source map file if any of them cannot be written - if (!host.isEmitBlocked(jsFilePath)) { + if (!host.isEmitBlocked(jsFilePath) && !compilerOptions.noEmit) { emitJavaScript(jsFilePath, sourceMapFilePath, sourceFiles, isBundledEmit); } else { diff --git a/src/harness/compilerRunner.ts b/src/harness/compilerRunner.ts index 4f3607cf182..8ee287b2637 100644 --- a/src/harness/compilerRunner.ts +++ b/src/harness/compilerRunner.ts @@ -142,7 +142,7 @@ class CompilerBaselineRunner extends RunnerBase { it("Correct JS output for " + fileName, () => { if (hasNonDtsFiles && this.emit) { - if (result.files.length === 0 && result.errors.length === 0) { + if (!options.noEmit && result.files.length === 0 && result.errors.length === 0) { throw new Error("Expected at least one js file to be emitted or at least one error to be created."); } diff --git a/tests/baselines/reference/jsFileCompilationBindErrors.js b/tests/baselines/reference/jsFileCompilationBindErrors.js deleted file mode 100644 index e4b515e2b69..00000000000 --- a/tests/baselines/reference/jsFileCompilationBindErrors.js +++ /dev/null @@ -1,25 +0,0 @@ -//// [a.js] -let C = "sss"; -let C = 0; // Error: Cannot redeclare block-scoped variable 'C'. - -function f() { - return; - return; // Error: Unreachable code detected. -} - -function b() { - "use strict"; - var arguments = 0; // Error: Invalid use of 'arguments' in strict mode. -} - -//// [a.js] -var C = "sss"; -var C = 0; // Error: Cannot redeclare block-scoped variable 'C'. -function f() { - return; - return; // Error: Unreachable code detected. -} -function b() { - "use strict"; - var arguments = 0; // Error: Invalid use of 'arguments' in strict mode. -}