From cb0f87282b8a884c0ac4cf539e5d4032b1d0639e Mon Sep 17 00:00:00 2001 From: Domagoj Kriskovic Date: Thu, 9 Apr 2026 11:35:45 +0200 Subject: [PATCH] fix: ensure original write method is correctly restored after code execution GitOrigin-RevId: 0c1d40bbde58d04de362586103a50b522dc14c2a --- .../ide-react/components/editor/python/pyodide.worker.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/web/frontend/js/features/ide-react/components/editor/python/pyodide.worker.ts b/services/web/frontend/js/features/ide-react/components/editor/python/pyodide.worker.ts index 09c82a1182..a1210fb724 100644 --- a/services/web/frontend/js/features/ide-react/components/editor/python/pyodide.worker.ts +++ b/services/web/frontend/js/features/ide-react/components/editor/python/pyodide.worker.ts @@ -127,13 +127,13 @@ async function handleRunCode(msg: RunCodeRequest) { }, }) + const fs = instance.FS + const originalWrite = fs.write as PyodideFS['write'] try { - const fs = instance.FS if (msg.files.length > 0) { syncProjectFiles(fs, msg.files) } - const originalWrite = fs.write as PyodideFS['write'] fs.write = ((...args: Parameters) => { const [stream] = args // Only surface writes to the synced project workspace, not Pyodide internals. @@ -144,7 +144,7 @@ async function handleRunCode(msg: RunCodeRequest) { writtenPaths.add(stream.path) } - return originalWrite(...args) + return originalWrite.call(fs, ...args) }) as PyodideFS['write'] const result = await instance.runPythonAsync(msg.code) @@ -167,6 +167,7 @@ async function handleRunCode(msg: RunCodeRequest) { requestId: msg.id, }) } finally { + fs.write = originalWrite const outputs = [...writtenPaths].sort() self.postMessage({ type: 'run-code-result',