diff options
author | Bartek Iwańczuk <biwanczuk@gmail.com> | 2023-06-26 13:54:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-26 13:54:10 +0200 |
commit | ad3c494b46c97f0cf91098b7ec2afa576ea7a3dd (patch) | |
tree | 2996e36708b4c726c3b5e99b6fbbd8e63fcc121b /core/runtime/jsruntime.rs | |
parent | c7d38e593f7de66af47321e7463d8c15ae4176f2 (diff) |
Revert "Reland "refactor(core): cleanup feature flags for js source i… (#19611)
…nclusion" (#19519)"
This reverts commit 28a4f3d0f5383695b1d49ccdc8b0f799a715b2c2.
This change causes failures when used outside Deno repo:
```
============================================================
Deno has panicked. This is a bug in Deno. Please report this
at https://github.com/denoland/deno/issues/new.
If you can reliably reproduce this panic, include the
reproduction steps and re-run with the RUST_BACKTRACE=1 env
var set and include the backtrace in your report.
Platform: linux x86_64
Version: 1.34.3+b37b286
Args: ["/opt/hostedtoolcache/deno/0.0.0-b37b286f7fa68d5656f7c180f6127bdc38cf2cf5/x64/deno", "test", "--doc", "--unstable", "--allow-all", "--coverage=./cov"]
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Failed to read "/home/runner/work/deno/deno/core/00_primordials.js"
Caused by:
No such file or directory (os error 2)', core/runtime/jsruntime.rs:699:8
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
Diffstat (limited to 'core/runtime/jsruntime.rs')
-rw-r--r-- | core/runtime/jsruntime.rs | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/core/runtime/jsruntime.rs b/core/runtime/jsruntime.rs index e6b531d61..2e473e7c9 100644 --- a/core/runtime/jsruntime.rs +++ b/core/runtime/jsruntime.rs @@ -505,7 +505,7 @@ impl JsRuntime { maybe_load_callback: Option<ExtModuleLoaderCb>, ) -> JsRuntime { let init_mode = InitMode::from_options(&options); - let (op_state, ops) = Self::create_opstate(&mut options); + let (op_state, ops) = Self::create_opstate(&mut options, init_mode); let op_state = Rc::new(RefCell::new(op_state)); // Collect event-loop middleware @@ -844,25 +844,29 @@ impl JsRuntime { for extension in &extensions { let maybe_esm_entry_point = extension.get_esm_entry_point(); - for file_source in extension.get_esm_sources() { - self - .load_side_module( - &ModuleSpecifier::parse(file_source.specifier)?, - None, - ) - .await?; + if let Some(esm_files) = extension.get_esm_sources() { + for file_source in esm_files { + self + .load_side_module( + &ModuleSpecifier::parse(file_source.specifier)?, + None, + ) + .await?; + } } if let Some(entry_point) = maybe_esm_entry_point { esm_entrypoints.push(entry_point); } - for file_source in extension.get_js_sources() { - realm.execute_script( - self.v8_isolate(), - file_source.specifier, - file_source.load()?, - )?; + if let Some(js_files) = extension.get_js_sources() { + for file_source in js_files { + realm.execute_script( + self.v8_isolate(), + file_source.specifier, + file_source.load()?, + )?; + } } if extension.is_core { @@ -880,16 +884,6 @@ impl JsRuntime { panic!("{} not present in the module map", specifier) }) }; - { - let module_map_rc = self.module_map.clone(); - let module_map = module_map_rc.borrow(); - let handle = module_map.handles.get(mod_id).unwrap().clone(); - let mut scope = realm.handle_scope(self.v8_isolate()); - let handle = v8::Local::new(&mut scope, handle); - if handle.get_status() == v8::ModuleStatus::Evaluated { - continue; - } - } let receiver = self.mod_evaluate(mod_id); self.run_event_loop(false).await?; receiver @@ -973,11 +967,20 @@ impl JsRuntime { } /// Initializes ops of provided Extensions - fn create_opstate(options: &mut RuntimeOptions) -> (OpState, Vec<OpDecl>) { + fn create_opstate( + options: &mut RuntimeOptions, + init_mode: InitMode, + ) -> (OpState, Vec<OpDecl>) { // Add built-in extension - options - .extensions - .insert(0, crate::ops_builtin::core::init_ext()); + if init_mode == InitMode::FromSnapshot { + options + .extensions + .insert(0, crate::ops_builtin::core::init_ops()); + } else { + options + .extensions + .insert(0, crate::ops_builtin::core::init_ops_and_esm()); + } let ops = Self::collect_ops(&mut options.extensions); |