Skip to content

Commit 3517af8

Browse files
Make 'getIndentString' just use a loop. (microsoft#41221)
* Make 'getIndentString' just use a loop. * Added test. * Accepted baselines.
1 parent 6c29847 commit 3517af8

5 files changed

+51
-2
lines changed

src/compiler/utilities.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3849,8 +3849,10 @@ namespace ts {
38493849

38503850
const indentStrings: string[] = ["", " "];
38513851
export function getIndentString(level: number) {
3852-
if (indentStrings[level] === undefined) {
3853-
indentStrings[level] = getIndentString(level - 1) + indentStrings[1];
3852+
// prepopulate cache
3853+
const singleLevel = indentStrings[1];
3854+
for (let current = indentStrings.length; current <= level; current++) {
3855+
indentStrings.push(indentStrings[current - 1] + singleLevel);
38543856
}
38553857
return indentStrings[level];
38563858
}

tests/baselines/reference/commentWithUnreasonableIndentationLevel01.js

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/commentWithUnreasonableIndentationLevel01.symbols

Lines changed: 9 additions & 0 deletions
Large diffs are not rendered by default.

tests/baselines/reference/commentWithUnreasonableIndentationLevel01.types

Lines changed: 9 additions & 0 deletions
Large diffs are not rendered by default.

tests/cases/compiler/commentWithUnreasonableIndentationLevel01.ts

Lines changed: 7 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)