From 695bca73b8eb58af8b3123899bff28dcf6e16114 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Wed, 30 Mar 2022 21:38:36 -0400 Subject: [PATCH 1/2] revoke-fix --- src/NetscriptJSEvaluator.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/NetscriptJSEvaluator.ts b/src/NetscriptJSEvaluator.ts index 3267c4e24..2a7f70a0a 100644 --- a/src/NetscriptJSEvaluator.ts +++ b/src/NetscriptJSEvaluator.ts @@ -30,6 +30,7 @@ export async function compile(player: IPlayer, script: Script, scripts: Script[] const uurls = _getScriptUrls(script, scripts, []); const url = uurls[uurls.length - 1].url; if (script.url && script.url !== url) { + URL.revokeObjectURL(script.url); // Thoughts: Should we be revoking any URLs here? // If a script is modified repeatedly between two states, // we could reuse the blob at a later time. From 3e6d1f6d953ce2d52449173662bd34c2e7928b8f Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Wed, 30 Mar 2022 21:40:51 -0400 Subject: [PATCH 2/2] round 2 --- src/NetscriptJSEvaluator.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/NetscriptJSEvaluator.ts b/src/NetscriptJSEvaluator.ts index 2a7f70a0a..0295afaa9 100644 --- a/src/NetscriptJSEvaluator.ts +++ b/src/NetscriptJSEvaluator.ts @@ -43,8 +43,9 @@ export async function compile(player: IPlayer, script: Script, scripts: Script[] // }); // } } - script.url = url; - script.module = new Promise((resolve) => resolve(eval("import(url)"))); + if (script.dependencies.length > 0) script.dependencies.forEach((dep) => URL.revokeObjectURL(dep.url)); + script.url = uurls[uurls.length - 1].url; + script.module = new Promise((resolve) => resolve(eval("import(uurls[uurls.length - 1].url)"))); script.dependencies = uurls; }