Skip to content

Commit 7d44a45

Browse files
committed
Remove try-finally blocks
1 parent 5e19753 commit 7d44a45

File tree

5 files changed

+68
-78
lines changed

5 files changed

+68
-78
lines changed

src/compiler/binder.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,12 @@ namespace ts {
105105
const binder = createBinder();
106106

107107
export function bindSourceFile(file: SourceFile, options: CompilerOptions) {
108-
try {
109-
performance.mark("beforeBind");
110-
perfLogger.logStartBindFile("" + file.fileName);
111-
binder(file, options);
112-
} finally {
113-
perfLogger.logStopBindFile();
114-
performance.mark("afterBind");
115-
performance.measure("Bind", "beforeBind", "afterBind");
116-
}
108+
performance.mark("beforeBind");
109+
perfLogger.logStartBindFile("" + file.fileName);
110+
binder(file, options);
111+
perfLogger.logStopBindFile();
112+
performance.mark("afterBind");
113+
performance.measure("Bind", "beforeBind", "afterBind");
117114
}
118115

119116
function createBinder(): (file: SourceFile, options: CompilerOptions) => void {

src/compiler/moduleNameResolver.ts

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -665,23 +665,19 @@ namespace ts {
665665
}
666666
}
667667

668-
try {
669-
perfLogger.logStartResolveModule(moduleName /* , containingFile, ModuleResolutionKind[moduleResolution]*/);
670-
switch (moduleResolution) {
671-
case ModuleResolutionKind.NodeJs:
672-
result = nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
673-
break;
674-
case ModuleResolutionKind.Classic:
675-
result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
676-
break;
677-
default:
678-
return Debug.fail(`Unexpected moduleResolution: ${moduleResolution}`);
679-
}
668+
perfLogger.logStartResolveModule(moduleName /* , containingFile, ModuleResolutionKind[moduleResolution]*/);
669+
switch (moduleResolution) {
670+
case ModuleResolutionKind.NodeJs:
671+
result = nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
672+
break;
673+
case ModuleResolutionKind.Classic:
674+
result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
675+
break;
676+
default:
677+
return Debug.fail(`Unexpected moduleResolution: ${moduleResolution}`);
680678
}
681-
finally {
682-
if (result && result.resolvedModule) perfLogger.logInfoEvent(`Module "${moduleName}" resolved to "${result.resolvedModule.resolvedFileName}"`);
683-
perfLogger.logStopResolveModule((result && result.resolvedModule) ? "" + result.resolvedModule.resolvedFileName : "null");
684-
}
679+
if (result && result.resolvedModule) perfLogger.logInfoEvent(`Module "${moduleName}" resolved to "${result.resolvedModule.resolvedFileName}"`);
680+
perfLogger.logStopResolveModule((result && result.resolvedModule) ? "" + result.resolvedModule.resolvedFileName : "null");
685681

686682
if (perFolderCache) {
687683
perFolderCache.set(moduleName, result);

src/compiler/parser.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -512,18 +512,15 @@ namespace ts {
512512
export function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes = false, scriptKind?: ScriptKind): SourceFile {
513513
performance.mark("beforeParse");
514514
let result: SourceFile;
515-
try {
516-
perfLogger.logStartParseSourceFile(fileName);
517-
if (languageVersion === ScriptTarget.JSON) {
518-
result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, ScriptKind.JSON);
519-
}
520-
else {
521-
result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, scriptKind);
522-
}
515+
516+
perfLogger.logStartParseSourceFile(fileName);
517+
if (languageVersion === ScriptTarget.JSON) {
518+
result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, ScriptKind.JSON);
523519
}
524-
finally {
525-
perfLogger.logStopParseSourceFile();
520+
else {
521+
result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, scriptKind);
526522
}
523+
perfLogger.logStopParseSourceFile();
527524

528525
performance.mark("afterParse");
529526
performance.measure("Parse", "beforeParse", "afterParse");

src/compiler/sys.ts

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,37 +1087,38 @@ namespace ts {
10871087
}
10881088

10891089
function readFile(fileName: string, _encoding?: string): string | undefined {
1090-
try {
1091-
perfLogger.logStartReadFile(fileName);
1092-
if (!fileExists(fileName)) {
1093-
return undefined;
1094-
}
1095-
const buffer = _fs.readFileSync(fileName);
1096-
let len = buffer.length;
1097-
if (len >= 2 && buffer[0] === 0xFE && buffer[1] === 0xFF) {
1098-
// Big endian UTF-16 byte order mark detected. Since big endian is not supported by node.js,
1099-
// flip all byte pairs and treat as little endian.
1100-
len &= ~1; // Round down to a multiple of 2
1101-
for (let i = 0; i < len; i += 2) {
1102-
const temp = buffer[i];
1103-
buffer[i] = buffer[i + 1];
1104-
buffer[i + 1] = temp;
1105-
}
1106-
return buffer.toString("utf16le", 2);
1107-
}
1108-
if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) {
1109-
// Little endian UTF-16 byte order mark detected
1110-
return buffer.toString("utf16le", 2);
1111-
}
1112-
if (len >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {
1113-
// UTF-8 byte order mark detected
1114-
return buffer.toString("utf8", 3);
1090+
perfLogger.logStartReadFile(fileName);
1091+
if (!fileExists(fileName)) {
1092+
return undefined;
1093+
}
1094+
const buffer = _fs.readFileSync(fileName);
1095+
let len = buffer.length;
1096+
let result: string;
1097+
if (len >= 2 && buffer[0] === 0xFE && buffer[1] === 0xFF) {
1098+
// Big endian UTF-16 byte order mark detected. Since big endian is not supported by node.js,
1099+
// flip all byte pairs and treat as little endian.
1100+
len &= ~1; // Round down to a multiple of 2
1101+
for (let i = 0; i < len; i += 2) {
1102+
const temp = buffer[i];
1103+
buffer[i] = buffer[i + 1];
1104+
buffer[i + 1] = temp;
11151105
}
1106+
result = buffer.toString("utf16le", 2);
1107+
}
1108+
else if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) {
1109+
// Little endian UTF-16 byte order mark detected
1110+
result = buffer.toString("utf16le", 2);
1111+
}
1112+
else if (len >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {
1113+
// UTF-8 byte order mark detected
1114+
result = buffer.toString("utf8", 3);
1115+
}
1116+
else {
11161117
// Default is UTF-8 with no byte order mark
1117-
return buffer.toString("utf8");
1118-
} finally {
1119-
perfLogger.logStopReadFile();
1118+
result = buffer.toString("utf8");
11201119
}
1120+
perfLogger.logStopReadFile();
1121+
return result;
11211122
}
11221123

11231124
function writeFile(fileName: string, data: string, writeByteOrderMark?: boolean): void {

src/compiler/watch.ts

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,22 +1003,21 @@ namespace ts {
10031003
timerToUpdateProgram = undefined;
10041004
reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation);
10051005

1006-
try {
1007-
switch (reloadLevel) {
1008-
case ConfigFileProgramReloadLevel.Partial:
1009-
perfLogger.logStartUpdateProgram("PartialConfigReload");
1010-
return reloadFileNamesFromConfigFile();
1011-
case ConfigFileProgramReloadLevel.Full:
1012-
perfLogger.logStartUpdateProgram("FullConfigReload");
1013-
return reloadConfigFile();
1014-
default:
1015-
perfLogger.logStartUpdateProgram("SynchronizeProgram");
1016-
synchronizeProgram();
1017-
return;
1018-
}
1019-
} finally {
1020-
perfLogger.logStopUpdateProgram("Done");
1006+
switch (reloadLevel) {
1007+
case ConfigFileProgramReloadLevel.Partial:
1008+
perfLogger.logStartUpdateProgram("PartialConfigReload");
1009+
reloadFileNamesFromConfigFile();
1010+
break;
1011+
case ConfigFileProgramReloadLevel.Full:
1012+
perfLogger.logStartUpdateProgram("FullConfigReload");
1013+
reloadConfigFile();
1014+
break;
1015+
default:
1016+
perfLogger.logStartUpdateProgram("SynchronizeProgram");
1017+
synchronizeProgram();
1018+
break;
10211019
}
1020+
perfLogger.logStopUpdateProgram("Done");
10221021
}
10231022

10241023
function reloadFileNamesFromConfigFile() {

0 commit comments

Comments
 (0)