summaryrefslogtreecommitdiff
path: root/core/modules.rs
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2023-05-31 08:19:06 -0600
committerGitHub <noreply@github.com>2023-05-31 08:19:06 -0600
commit8e84dc0139055db8c84ad28723114d343982a8f7 (patch)
tree93238866035949af70c32769e651f0f3fae5cf83 /core/modules.rs
parentd0efd040c79021958a1e83caa56572c0401ca1f2 (diff)
chore(core): Split JsRuntimeForSnapshot from JsRuntime (#19308)
This cleans up `JsRuntime` a bit more: * We no longer print cargo's rerun-if-changed messages in `JsRuntime` -- those are printed elsewhere * We no longer special case the OwnedIsolate for snapshots. Instead we make use of an inner object that has the `Drop` impl and allows us to `std::mem::forget` it if we need to extract the isolate for a snapshot * The `snapshot` method is only available on `JsRuntimeForSnapshot`, not `JsRuntime`. * `OpState` construction is slightly cleaner, though I'd still like to extract more --------- Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'core/modules.rs')
-rw-r--r--core/modules.rs25
1 files changed, 15 insertions, 10 deletions
diff --git a/core/modules.rs b/core/modules.rs
index 174dadd2d..353119660 100644
--- a/core/modules.rs
+++ b/core/modules.rs
@@ -1719,6 +1719,7 @@ mod tests {
use super::*;
use crate::ascii_str;
use crate::JsRuntime;
+ use crate::JsRuntimeForSnapshot;
use crate::RuntimeOptions;
use crate::Snapshot;
use deno_ops::op;
@@ -2889,11 +2890,13 @@ if (import.meta.url != 'file:///main_with_code.js') throw Error();
);
let loader = MockLoader::new();
- let mut runtime = JsRuntime::new(RuntimeOptions {
- module_loader: Some(loader),
- will_snapshot: true,
- ..Default::default()
- });
+ let mut runtime = JsRuntimeForSnapshot::new(
+ RuntimeOptions {
+ module_loader: Some(loader),
+ ..Default::default()
+ },
+ Default::default(),
+ );
// In default resolution code should be empty.
// Instead we explicitly pass in our own code.
// The behavior should be very similar to /a.js.
@@ -2931,11 +2934,13 @@ if (import.meta.url != 'file:///main_with_code.js') throw Error();
);
let loader = MockLoader::new();
- let mut runtime = JsRuntime::new(RuntimeOptions {
- module_loader: Some(loader),
- will_snapshot: true,
- ..Default::default()
- });
+ let mut runtime = JsRuntimeForSnapshot::new(
+ RuntimeOptions {
+ module_loader: Some(loader),
+ ..Default::default()
+ },
+ Default::default(),
+ );
// In default resolution code should be empty.
// Instead we explicitly pass in our own code.
// The behavior should be very similar to /a.js.