From b4aa1530970f7b9cc4e6f2f27e077852c4e178d3 Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Tue, 7 Feb 2023 20:22:46 +0100 Subject: refactor: Use ES modules for internal runtime code (#17648) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR refactors all internal js files (except core) to be written as ES modules. `__bootstrap`has been mostly replaced with static imports in form in `internal:[path to file from repo root]`. To specify if files are ESM, an `esm` method has been added to `Extension`, similar to the `js` method. A new ModuleLoader called `InternalModuleLoader` has been added to enable the loading of internal specifiers, which is used in all situations except when a snapshot is only loaded, and not a new one is created from it. --------- Co-authored-by: Bartek IwaƄczuk --- ext/web/benches/encoding.rs | 9 +++++---- ext/web/benches/timers_ops.rs | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'ext/web/benches') diff --git a/ext/web/benches/encoding.rs b/ext/web/benches/encoding.rs index 254ea4455..f8ad57c4f 100644 --- a/ext/web/benches/encoding.rs +++ b/ext/web/benches/encoding.rs @@ -29,11 +29,12 @@ fn setup() -> Vec { deno_console::init(), deno_web::init::(BlobStore::default(), None), Extension::builder("bench_setup") - .js(vec![( - "setup", + .esm(vec![( + "internal:setup", r#" - const { TextDecoder } = globalThis.__bootstrap.encoding; - const hello12k = Deno.core.encode("hello world\n".repeat(1e3)); + import { TextDecoder } from "internal:ext/web/08_text_encoding.js"; + globalThis.TextDecoder = TextDecoder; + globalThis.hello12k = Deno.core.encode("hello world\n".repeat(1e3)); "#, )]) .state(|state| { diff --git a/ext/web/benches/timers_ops.rs b/ext/web/benches/timers_ops.rs index b28b1ae1d..a2af22982 100644 --- a/ext/web/benches/timers_ops.rs +++ b/ext/web/benches/timers_ops.rs @@ -28,9 +28,10 @@ fn setup() -> Vec { deno_console::init(), deno_web::init::(BlobStore::default(), None), Extension::builder("bench_setup") - .js(vec![ - ("setup", r#" - const { setTimeout, handleTimerMacrotask } = globalThis.__bootstrap.timers; + .esm(vec![ + ("internal:setup", r#" + import { setTimeout, handleTimerMacrotask } from "internal:ext/web/02_timers.js"; + globalThis.setTimeout = setTimeout; Deno.core.setMacrotaskCallback(handleTimerMacrotask); "#), ]) -- cgit v1.2.3