diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index e0837c6aa0..57ad0260cb 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -27,10 +27,6 @@ declare var module: any; declare var process: any; declare var global: any; -enum SystemError { - UnsupportedFileEncoding -} - var sys: System = (function () { function getWScriptSystem(): System { @@ -72,9 +68,7 @@ var sys: System = (function () { return fileStream.ReadText(); } catch (e) { - if (e.number === -2147024809) { - e.systemError = SystemError.UnsupportedFileEncoding; - } + throw e; } finally { fileStream.Close(); diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index e6e48e32e4..52dac9695d 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -71,15 +71,6 @@ module ts { return true; } - - function getSystemErrorMessage(e: SystemError): string { - switch (e) { - case SystemError.UnsupportedFileEncoding: - return getDiagnosticText(Diagnostics.Unsupported_file_encoding); - default: - Debug.assert("Unreachable code in 'getSystemErrorMessage'"); - } - } function countLines(program: Program): number { var count = 0; @@ -151,14 +142,19 @@ module ts { // otherwise use toLowerCase as a canonical form. return sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase(); } - + + // returned by CScript sys environment + var unsupportedFileEncodingErrorCode = -2147024809; + function getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile { try { var text = sys.readFile(filename, options.charset); } catch (e) { if (onError) { - onError(e.systemError ? getSystemErrorMessage(e.systemError) : e.message); + onError(e.number === unsupportedFileEncodingErrorCode ? + getDiagnosticText(Diagnostics.Unsupported_file_encoding) : + e.message); } text = ""; }