From 4f3a7331bd4d0d5da7c05dd90a866ba9041779de Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 10 Mar 2026 12:33:07 +0900 Subject: [PATCH] Fix error in loadTestLongLines Fixes #5750 --- demo/client/components/window/testWindow.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/demo/client/components/window/testWindow.ts b/demo/client/components/window/testWindow.ts index a67fef16c..1ea6b3e67 100644 --- a/demo/client/components/window/testWindow.ts +++ b/demo/client/components/window/testWindow.ts @@ -705,13 +705,13 @@ function loadTest(term: Terminal, addons: AddonCollection): void { term.write('', () => { const time = Math.round(performance.now() - start); const mbs = ((byteCount / 1024) * (1 / (time / 1000))).toFixed(2); - term.write(`\n\r\nWrote ${byteCount}kB in ${time}ms (${mbs}MB/s) using the (${rendererName} renderer)`); + term.write(`\n\r\nWrote ${byteCount}KiB in ${time}ms (${mbs}MiB/s) using the (${rendererName} renderer)`); // Send ^C to get a new prompt (term as any)._core._onData.fire('\x03'); }); } -function loadTestLongLines(term: Terminal, addons: AddonCollection): void { +async function loadTestLongLines(term: Terminal, addons: AddonCollection): Promise { const rendererName = addons.webgl.instance ? 'webgl' : 'dom'; const testData = []; let byteCount = 0; @@ -729,16 +729,23 @@ function loadTestLongLines(term: Terminal, addons: AddonCollection): void { testData.push(data); } const start = performance.now(); - for (let i = 0; i < 1024 * 50; i++) { + for (let i = 0; i < 1024; i++) { for (const d of testData) { - term.write(d); + try { + term.write(d); + } catch { + // Flush events when cap is hit and try again(workaround for not having flow control in + // demo) + await new Promise(r => term.write('', () => r())); + term.write(d); + } } } // Wait for all data to be parsed before evaluating time term.write('', () => { const time = Math.round(performance.now() - start); const mbs = ((byteCount / 1024) * (1 / (time / 1000))).toFixed(2); - term.write(`\n\r\nWrote ${byteCount}kB in ${time}ms (${mbs}MB/s) using the (${rendererName} renderer)`); + term.write(`\n\r\nWrote ${byteCount}KiB in ${time}ms (${mbs}MiB/s) using the (${rendererName} renderer)`); // Send ^C to get a new prompt (term as any)._core._onData.fire('\x03'); });