Allow singleline string writer to be recursively used (#18297)

* Allow singleline string writer to be recursively used

* Add unit test exposing issue

* Fix lints
This commit is contained in:
Wesley Wigham
2017-09-06 21:56:16 -07:00
committed by GitHub
parent 697c4d3353
commit 5c779b1edb
4 changed files with 53 additions and 4 deletions

View File

@@ -32,7 +32,6 @@ namespace ts {
}
const stringWriter = createSingleLineStringWriter();
let stringWriterAcquired = false;
function createSingleLineStringWriter(): StringSymbolWriter {
let str = "";
@@ -62,15 +61,14 @@ namespace ts {
}
export function usingSingleLineStringWriter(action: (writer: StringSymbolWriter) => void): string {
const oldString = stringWriter.string();
try {
Debug.assert(!stringWriterAcquired);
stringWriterAcquired = true;
action(stringWriter);
return stringWriter.string();
}
finally {
stringWriter.clear();
stringWriterAcquired = false;
stringWriter.writeKeyword(oldString);
}
}