summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/worker.rs2
-rw-r--r--runtime/js/99_main.js33
-rw-r--r--tests/specs/future/runtime_api/__test__.jsonc21
-rw-r--r--tests/specs/future/runtime_api/main.js2
-rw-r--r--tests/specs/future/runtime_api/worker.js5
5 files changed, 56 insertions, 7 deletions
diff --git a/cli/worker.rs b/cli/worker.rs
index 40c3cfcc3..be5a85cd6 100644
--- a/cli/worker.rs
+++ b/cli/worker.rs
@@ -813,7 +813,7 @@ fn create_web_worker_callback(
node_ipc_fd: None,
disable_deprecated_api_warning: shared.disable_deprecated_api_warning,
verbose_deprecated_api_warning: shared.verbose_deprecated_api_warning,
- future: false,
+ future: shared.enable_future_features,
},
extensions: vec![],
startup_snapshot: crate::js::deno_isolate_init(),
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index cbba28434..c66732331 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -837,7 +837,7 @@ function bootstrapWorkerRuntime(
6: argv0,
7: shouldDisableDeprecatedApiWarning,
8: shouldUseVerboseDeprecatedApiWarning,
- 9: _future,
+ 9: future,
} = runtimeOptions;
deprecatedApiWarningDisabled = shouldDisableDeprecatedApiWarning;
@@ -937,6 +937,37 @@ function bootstrapWorkerRuntime(
workerMetadata,
);
}
+
+ if (future) {
+ delete Deno.Buffer;
+ delete Deno.close;
+ delete Deno.copy;
+ delete Deno.File;
+ delete Deno.fstat;
+ delete Deno.fstatSync;
+ delete Deno.ftruncate;
+ delete Deno.ftruncateSync;
+ delete Deno.flock;
+ delete Deno.flockSync;
+ delete Deno.FsFile.prototype.rid;
+ delete Deno.funlock;
+ delete Deno.funlockSync;
+ delete Deno.iter;
+ delete Deno.iterSync;
+ delete Deno.metrics;
+ delete Deno.readAll;
+ delete Deno.readAllSync;
+ delete Deno.read;
+ delete Deno.readSync;
+ delete Deno.resources;
+ delete Deno.seek;
+ delete Deno.seekSync;
+ delete Deno.shutdown;
+ delete Deno.writeAll;
+ delete Deno.writeAllSync;
+ delete Deno.write;
+ delete Deno.writeSync;
+ }
} else {
// Warmup
return;
diff --git a/tests/specs/future/runtime_api/__test__.jsonc b/tests/specs/future/runtime_api/__test__.jsonc
index eb833195d..7aceff5bf 100644
--- a/tests/specs/future/runtime_api/__test__.jsonc
+++ b/tests/specs/future/runtime_api/__test__.jsonc
@@ -1,7 +1,18 @@
{
- "args": "run -A main.js",
- "output": "main.out",
- "envs": {
- "DENO_FUTURE": "1"
- }
+ "steps": [
+ {
+ "args": "run -A --unstable-fs main.js",
+ "output": "main.out",
+ "envs": {
+ "DENO_FUTURE": "1"
+ }
+ },
+ {
+ "args": "run -A --unstable-fs worker.js",
+ "output": "main.out",
+ "envs": {
+ "DENO_FUTURE": "1"
+ }
+ }
+ ]
}
diff --git a/tests/specs/future/runtime_api/main.js b/tests/specs/future/runtime_api/main.js
index 5275ad878..ed60a7b7c 100644
--- a/tests/specs/future/runtime_api/main.js
+++ b/tests/specs/future/runtime_api/main.js
@@ -30,3 +30,5 @@ console.log("Deno.writeAll is", Deno.writeAll);
console.log("Deno.writeAllSync is", Deno.writeAllSync);
console.log("Deno.write is", Deno.write);
console.log("Deno.writeSync is", Deno.writeSync);
+
+self.close();
diff --git a/tests/specs/future/runtime_api/worker.js b/tests/specs/future/runtime_api/worker.js
new file mode 100644
index 000000000..64b8e07b8
--- /dev/null
+++ b/tests/specs/future/runtime_api/worker.js
@@ -0,0 +1,5 @@
+import { delay } from "../../../util/std/async/delay.ts";
+
+const worker = new Worker(import.meta.resolve("./main.js"), { type: "module" });
+await delay(1_000);
+worker.terminate();