From b3d9ea5ad3e3941b3d7ffbd683ce0c5f9ca50a25 Mon Sep 17 00:00:00 2001 From: Jimmy Domagala-Tang Date: Wed, 14 Aug 2024 14:49:40 -0400 Subject: [PATCH] Merge pull request #19966 from overleaf/revert-19424-jdt-batch-spelling-line-tracker-updates Revert "Line changes spread into array (avoiding max call stack)" GitOrigin-RevId: 5039d4182aeeb5d8c3aed13af45af177755a3823 --- .../extensions/spelling/line-tracker.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/services/web/frontend/js/features/source-editor/extensions/spelling/line-tracker.ts b/services/web/frontend/js/features/source-editor/extensions/spelling/line-tracker.ts index b7774faf89..02711cf827 100644 --- a/services/web/frontend/js/features/source-editor/extensions/spelling/line-tracker.ts +++ b/services/web/frontend/js/features/source-editor/extensions/spelling/line-tracker.ts @@ -113,14 +113,18 @@ export class LineTracker { */ const changes = new Array(insertedText.lines).fill(true) - const index = startLine - 1 + lineShift + try { + this._lines.splice(startLine - 1 + lineShift, 1, ...changes) + lineShift += changes.length - 1 + } catch (error) { + if (error instanceof RangeError) { + throw new OError(error.message).withInfo({ + changesSize: changes.length, + }) + } - this._lines = [ - ...this._lines.slice(0, index), - ...changes, - ...this._lines.slice(index + 1), - ] - lineShift += changes.length - 1 + throw error + } } } )