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',