diff --git a/src/common/services/DecorationService.ts b/src/common/services/DecorationService.ts index a582c18af..95875e54a 100644 --- a/src/common/services/DecorationService.ts +++ b/src/common/services/DecorationService.ts @@ -225,12 +225,7 @@ export class DecorationLineCache extends Disposable { if (newLine < 0) { continue; } - const existing = newMap.get(newLine); - if (existing) { - existing.push(...bucket); - } else { - newMap.set(newLine, bucket.slice()); - } + this._mergeLineBucket(newMap, newLine, bucket); } this._decorationsByLine.clear(); for (const [line, bucket] of newMap) { @@ -254,7 +249,9 @@ export class DecorationLineCache extends Disposable { private _mergeLineBucket(newMap: Map, line: number, bucket: IInternalDecoration[]): void { const existing = newMap.get(line); if (existing) { - existing.push(...bucket); + for (let i = 0, len = bucket.length; i < len; i++) { + existing.push(bucket[i]); + } } else { newMap.set(line, bucket.slice()); }