From 055a07ea4aeef266e13e16bc5136f8b87cc0ee49 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 1 Jul 2019 14:15:30 -0700 Subject: [PATCH] Check for parse errors in emitted JS (#32009) --- src/harness/harness.ts | 7 +++++++ tests/baselines/reference/emitBOM.js | 16 ++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index f03103d0239..c6842115095 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1311,6 +1311,13 @@ namespace Harness { if (jsCode.length && jsCode.charCodeAt(jsCode.length - 1) !== ts.CharacterCodes.lineFeed) { jsCode += "\r\n"; } + if (!result.diagnostics.length && !ts.endsWith(file.file, ts.Extension.Json)) { + const fileParseResult = ts.createSourceFile(file.file, file.text, options.target || ts.ScriptTarget.ES3, /*parentNodes*/ false, ts.endsWith(file.file, "x") ? ts.ScriptKind.JSX : ts.ScriptKind.JS); + if (ts.length(fileParseResult.parseDiagnostics)) { + jsCode += getErrorBaseline([file.asTestFile()], fileParseResult.parseDiagnostics); + return; + } + } jsCode += fileOutput(file, harnessSettings); }); diff --git a/tests/baselines/reference/emitBOM.js b/tests/baselines/reference/emitBOM.js index 3f3d61fd2f9..2890ba0d81d 100644 --- a/tests/baselines/reference/emitBOM.js +++ b/tests/baselines/reference/emitBOM.js @@ -2,10 +2,18 @@ // JS and d.ts output should have a BOM but not the sourcemap var x; -//// [emitBOM.js] -// JS and d.ts output should have a BOM but not the sourcemap -var x; -//# sourceMappingURL=emitBOM.js.map +tests/cases/compiler/emitBOM.js(1,2): error TS1127: Invalid character. +tests/cases/compiler/emitBOM.js(1,3): error TS1127: Invalid character. + + +==== tests/cases/compiler/emitBOM.js (2 errors) ==== + // JS and d.ts output should have a BOM but not the sourcemap + +!!! error TS1127: Invalid character. + +!!! error TS1127: Invalid character. + var x; + //# sourceMappingURL=emitBOM.js.map //// [emitBOM.d.ts] declare var x: any;