aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_module.rs
diff options
context:
space:
mode:
authorCYBAI <cyb.ai.815@gmail.com>2020-01-24 12:43:49 +0900
committerCYBAI <cyb.ai.815@gmail.com>2020-02-16 09:55:10 +0900
commit403ffcf1eb5c659626f70dec72f76aaf7782986d (patch)
treedf2f2e06ed557fcaac17862791a6c1db1f8a7b57 /components/script/script_module.rs
parent795dab71fffe98434308732e4cb8ee682f28e465 (diff)
downloadservo-403ffcf1eb5c659626f70dec72f76aaf7782986d.tar.gz
servo-403ffcf1eb5c659626f70dec72f76aaf7782986d.zip
Always pass InRealm to GlobalScope::from_context to avoid getting null global
Diffstat (limited to 'components/script/script_module.rs')
-rw-r--r--components/script/script_module.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/components/script/script_module.rs b/components/script/script_module.rs
index e22763e195a..bf2eafd5b42 100644
--- a/components/script/script_module.rs
+++ b/components/script/script_module.rs
@@ -32,6 +32,7 @@ use crate::dom::worker::TrustedWorkerAddress;
use crate::network_listener::{self, NetworkListener};
use crate::network_listener::{PreInvoke, ResourceTimingListener};
use crate::realms::{enter_realm, AlreadyInRealm, InRealm};
+use crate::script_runtime::JSContext as SafeJSContext;
use crate::task::TaskBox;
use crate::task_source::TaskSourceName;
use encoding_rs::UTF_8;
@@ -473,8 +474,9 @@ impl ModuleTree {
if let Some(exception) = &*module_error {
unsafe {
+ let ar = enter_realm(&*global);
JS_SetPendingException(*global.get_cx(), exception.handle());
- report_pending_exception(*global.get_cx(), true);
+ report_pending_exception(*global.get_cx(), true, InRealm::Entered(&ar));
}
}
}
@@ -1074,7 +1076,8 @@ unsafe extern "C" fn HostResolveImportedModule(
reference_private: RawHandleValue,
specifier: RawHandle<*mut JSString>,
) -> *mut JSObject {
- let global_scope = GlobalScope::from_context(cx);
+ let in_realm_proof = AlreadyInRealm::assert_for_cx(SafeJSContext::from_ptr(cx));
+ let global_scope = GlobalScope::from_context(cx, InRealm::Already(&in_realm_proof));
// Step 2.
let mut base_url = global_scope.api_base_url();