mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Set private reference for classic script
Web developers can use `Dynamic Import` in a classic script; thus, we need to save the script's private reference so that we can reuse it when we're going to fetch a dynamic import module for a classic script. Besides, because it's possible to use different executing context for a dynamic import module (like `dynamic-import/string-compilation-other-document.html` WPT test), we can't initialize a module owner at the timing of `SetScriptPrivate`; thus, if the private module script doesn't hold an owner, we'll use a DynamicImport owner for it.
This commit is contained in:
parent
99e832a345
commit
d1715918f0
10 changed files with 204 additions and 71 deletions
|
@ -63,6 +63,7 @@ use crate::dom::workletglobalscope::WorkletGlobalScopeInit;
|
|||
use crate::fetch::FetchCanceller;
|
||||
use crate::microtask::{Microtask, MicrotaskQueue};
|
||||
use crate::realms::enter_realm;
|
||||
use crate::script_module::ScriptFetchOptions;
|
||||
use crate::script_runtime::{
|
||||
get_reports, new_rt_and_cx, ContextForRequestInterrupt, JSContext, Runtime, ScriptPort,
|
||||
};
|
||||
|
@ -3702,7 +3703,12 @@ impl ScriptThread {
|
|||
// Script source is ready to be evaluated (11.)
|
||||
let _ac = enter_realm(global_scope);
|
||||
rooted!(in(*global_scope.get_cx()) let mut jsval = UndefinedValue());
|
||||
global_scope.evaluate_js_on_global_with_result(&script_source, jsval.handle_mut());
|
||||
global_scope.evaluate_js_on_global_with_result(
|
||||
&script_source,
|
||||
jsval.handle_mut(),
|
||||
ScriptFetchOptions::default_classic_script(&global_scope),
|
||||
global_scope.api_base_url(),
|
||||
);
|
||||
|
||||
load_data.js_eval_result = if jsval.get().is_string() {
|
||||
unsafe {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue