From cb6deab3a935c275792ce4b475792f78fbb36cb0 Mon Sep 17 00:00:00 2001 From: Jimmy Domagala-Tang Date: Wed, 14 Aug 2024 12:37:33 -0400 Subject: [PATCH] Merge pull request #19424 from overleaf/jdt-batch-spelling-line-tracker-updates Line changes spread into array (avoiding max call stack) GitOrigin-RevId: a60520b2aff18603bfe96b92abf305576661223a --- .../extensions/spelling/line-tracker.ts | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 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 02711cf827..b7774faf89 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,18 +113,14 @@ export class LineTracker { */ const changes = new Array(insertedText.lines).fill(true) - 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, - }) - } + const index = startLine - 1 + lineShift - throw error - } + this._lines = [ + ...this._lines.slice(0, index), + ...changes, + ...this._lines.slice(index + 1), + ] + lineShift += changes.length - 1 } } )