This commit is contained in:
Josh Matthews 2022-11-22 00:24:52 -05:00
parent 76edfce6a7
commit f76bb20c2e
9 changed files with 60 additions and 43 deletions

View file

@ -44,8 +44,12 @@ use js::jsval::ObjectValue;
use js::jsval::UndefinedValue;
use js::rust::wrappers::JS_AlreadyHasOwnPropertyById;
use js::rust::wrappers::JS_NewObjectWithGivenProto;
use js::rust::wrappers::{AppendToIdVector, RUST_INTERNED_STRING_TO_JSID, SetDataPropertyDescriptor};
use js::rust::{get_context_realm, Handle, HandleObject, HandleValue, MutableHandle, MutableHandleObject};
use js::rust::wrappers::{
AppendToIdVector, SetDataPropertyDescriptor, RUST_INTERNED_STRING_TO_JSID,
};
use js::rust::{
get_context_realm, Handle, HandleObject, HandleValue, MutableHandle, MutableHandleObject,
};
use std::{ffi::CStr, os::raw::c_char, ptr};
/// Determine if this id shadows any existing properties for this proxy.

View file

@ -8,6 +8,7 @@ use crate::dom::bindings::conversions::jsid_to_string;
use crate::dom::bindings::str::{ByteString, DOMString, USVString};
use indexmap::IndexMap;
use js::conversions::{ConversionResult, FromJSValConvertible, ToJSValConvertible};
use js::jsapi::glue::JS_GetOwnPropertyDescriptorById;
use js::jsapi::HandleId as RawHandleId;
use js::jsapi::JSContext;
use js::jsapi::JS_NewPlainObject;
@ -20,7 +21,6 @@ use js::jsval::ObjectValue;
use js::jsval::UndefinedValue;
use js::rust::wrappers::GetPropertyKeys;
use js::rust::wrappers::JS_DefineUCProperty2;
use js::jsapi::glue::JS_GetOwnPropertyDescriptorById;
use js::rust::wrappers::JS_GetPropertyById;
use js::rust::wrappers::JS_IdToValue;
use js::rust::HandleId;
@ -136,8 +136,13 @@ where
rooted!(in(cx) let mut desc = PropertyDescriptor::default());
let mut is_none = false;
if !JS_GetOwnPropertyDescriptorById(cx, object.handle().into(), id.handle().into(), desc.handle_mut().into(), &mut is_none)
{
if !JS_GetOwnPropertyDescriptorById(
cx,
object.handle().into(),
id.handle().into(),
desc.handle_mut().into(),
&mut is_none,
) {
return Err(());
}

View file

@ -18,9 +18,9 @@ use crate::dom::windowproxy;
use crate::script_runtime::JSContext as SafeJSContext;
use js::conversions::ToJSValConvertible;
use js::glue::JS_GetReservedSlot;
use js::glue::RUST_FUNCTION_VALUE_TO_JITINFO;
use js::glue::{CallJitGetterOp, CallJitMethodOp, CallJitSetterOp, IsWrapper};
use js::glue::{UnwrapObjectDynamic, UnwrapObjectStatic};
use js::glue::RUST_FUNCTION_VALUE_TO_JITINFO;
use js::jsapi::HandleId as RawHandleId;
use js::jsapi::HandleObject as RawHandleObject;
use js::jsapi::MutableHandleIdVector as RawMutableHandleIdVector;

View file

@ -82,7 +82,7 @@ use js::glue::{IsWrapper, UnwrapObjectDynamic};
use js::jsapi::Compile1;
use js::jsapi::SetScriptPrivate;
use js::jsapi::{CurrentGlobalOrNull, GetNonCCWObjectGlobal};
use js::jsapi::{HandleObject, Heap, InstantiateOptions, InstantiateGlobalStencil};
use js::jsapi::{HandleObject, Heap, InstantiateGlobalStencil, InstantiateOptions};
use js::jsapi::{JSContext, JSObject, JSScript};
use js::jsval::PrivateValue;
use js::jsval::{JSVal, UndefinedValue};
@ -2631,7 +2631,12 @@ impl GlobalScope {
hideScriptFromDebugger: false,
deferDebugMetadata: false,
};
let script = InstantiateGlobalStencil(*cx, &options, *pre_compiled_script.source_code, ptr::null_mut());
let script = InstantiateGlobalStencil(
*cx,
&options,
*pre_compiled_script.source_code,
ptr::null_mut(),
);
compiled_script.set(script);
},
};

View file

@ -42,11 +42,11 @@ use encoding_rs::Encoding;
use html5ever::{LocalName, Prefix};
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
use js::jsapi::{
CanCompileOffThread, CompileToStencilOffThread1, OffThreadToken,
};
use js::jsapi::{CanCompileOffThread, CompileToStencilOffThread1, OffThreadToken};
use js::jsval::UndefinedValue;
use js::rust::{transform_str_to_source_text, CompileOptionsWrapper, FinishOffThreadStencil, Stencil};
use js::rust::{
transform_str_to_source_text, CompileOptionsWrapper, FinishOffThreadStencil, Stencil,
};
use msg::constellation_msg::PipelineId;
use net_traits::request::{
CorsSettings, CredentialsMode, Destination, ParserMetadata, RequestBuilder,
@ -1109,7 +1109,8 @@ impl HTMLScriptElement {
if let Some(record) = record {
rooted!(in(*global.get_cx()) let mut rval = UndefinedValue());
let evaluated = module_tree.execute_module(global, record, rval.handle_mut().into());
let evaluated =
module_tree.execute_module(global, record, rval.handle_mut().into());
if let Err(exception) = evaluated {
module_tree.set_rethrow_error(exception);

View file

@ -18,15 +18,15 @@ use js::glue::{
CreateReadableStreamUnderlyingSource, DeleteReadableStreamUnderlyingSource,
ReadableStreamUnderlyingSourceTraps,
};
use js::jsapi::{HandleObject, HandleValue, Heap, JSContext, JSObject};
use js::jsapi::{
IsReadableStream, NewReadableExternalSourceStreamObject, ReadableStreamClose,
ReadableStreamDefaultReaderRead, ReadableStreamError, ReadableStreamGetReader,
ReadableStreamIsDisturbed, ReadableStreamIsLocked, ReadableStreamIsReadable,
ReadableStreamReaderMode, ReadableStreamReaderReleaseLock, ReadableStreamUnderlyingSource,
ReadableStreamUpdateDataAvailableFromSource, UnwrapReadableStream, JS_GetArrayBufferViewData,
AutoRequireNoGC,
AutoRequireNoGC, IsReadableStream, JS_GetArrayBufferViewData,
NewReadableExternalSourceStreamObject, ReadableStreamClose, ReadableStreamDefaultReaderRead,
ReadableStreamError, ReadableStreamGetReader, ReadableStreamIsDisturbed,
ReadableStreamIsLocked, ReadableStreamIsReadable, ReadableStreamReaderMode,
ReadableStreamReaderReleaseLock, ReadableStreamUnderlyingSource,
ReadableStreamUpdateDataAvailableFromSource, UnwrapReadableStream,
};
use js::jsapi::{HandleObject, HandleValue, Heap, JSContext, JSObject};
use js::jsval::JSVal;
use js::jsval::UndefinedValue;
use js::rust::HandleValue as SafeHandleValue;
@ -339,7 +339,11 @@ unsafe extern "C" fn write_into_read_request_buffer(
) {
let source = &*(source as *const ExternalUnderlyingSourceController);
let mut is_shared_memory = false;
let buffer = JS_GetArrayBufferViewData(*chunk, &mut is_shared_memory, &AutoRequireNoGC { _address: 0 });
let buffer = JS_GetArrayBufferViewData(
*chunk,
&mut is_shared_memory,
&AutoRequireNoGC { _address: 0 },
);
assert!(!is_shared_memory);
let slice = slice::from_raw_parts_mut(buffer as *mut u8, length);
source.write_into_buffer(slice);

View file

@ -25,9 +25,7 @@ use embedder_traits::EmbedderMsg;
use indexmap::map::IndexMap;
use ipc_channel::ipc;
use js::glue::{CreateWrapperProxyHandler, ProxyTraps};
use js::glue::{
GetProxyPrivate, GetProxyReservedSlot, SetProxyReservedSlot,
};
use js::glue::{GetProxyPrivate, GetProxyReservedSlot, SetProxyReservedSlot};
use js::jsapi::Handle as RawHandle;
use js::jsapi::HandleId as RawHandleId;
use js::jsapi::HandleObject as RawHandleObject;
@ -35,7 +33,7 @@ use js::jsapi::HandleValue as RawHandleValue;
use js::jsapi::MutableHandle as RawMutableHandle;
use js::jsapi::MutableHandleObject as RawMutableHandleObject;
use js::jsapi::MutableHandleValue as RawMutableHandleValue;
use js::jsapi::{JSAutoRealm, JSContext, JSErrNum, JSObject, GCContext};
use js::jsapi::{GCContext, JSAutoRealm, JSContext, JSErrNum, JSObject};
use js::jsapi::{JSTracer, JS_DefinePropertyById, JSPROP_ENUMERATE, JSPROP_READONLY};
use js::jsapi::{JS_ForwardGetPropertyTo, JS_ForwardSetPropertyTo};
use js::jsapi::{JS_GetOwnPropertyDescriptorById, JS_IsExceptionPending};

View file

@ -47,13 +47,13 @@ use js::jsapi::HandleValue as RawHandleValue;
use js::jsapi::MutableHandleValue;
use js::jsapi::Value;
use js::jsapi::{CompileModule1, ExceptionStackBehavior, FinishDynamicModuleImport};
use js::jsapi::{SetModuleDynamicImportHook, SetScriptPrivateReferenceHooks};
use js::jsapi::{GetModuleRequestSpecifier, GetRequestedModules, SetModuleMetadataHook};
use js::jsapi::{GetModuleResolveHook, JSRuntime, SetModuleResolveHook};
use js::jsapi::{GetRequestedModules, SetModuleMetadataHook, GetModuleRequestSpecifier};
use js::jsapi::{Heap, JSContext, JS_ClearPendingException, SetModulePrivate};
use js::jsapi::{JSAutoRealm, JSObject, JSString};
use js::jsapi::{JS_DefineProperty4, JS_IsExceptionPending, JS_NewStringCopyN, JSPROP_ENUMERATE};
use js::jsapi::{ModuleEvaluate, ModuleLink, ThrowOnModuleEvaluationFailure, ModuleErrorBehaviour};
use js::jsapi::{ModuleErrorBehaviour, ModuleEvaluate, ModuleLink, ThrowOnModuleEvaluationFailure};
use js::jsapi::{SetModuleDynamicImportHook, SetScriptPrivateReferenceHooks};
use js::jsval::{JSVal, PrivateValue, UndefinedValue};
use js::rust::jsapi_wrapped::{GetArrayLength, JS_GetElement};
use js::rust::jsapi_wrapped::{GetRequestedModuleSpecifier, JS_GetPendingException};
@ -526,10 +526,7 @@ impl ModuleTree {
warn!("fail to evaluate module");
rooted!(in(*cx) let mut exception = UndefinedValue());
assert!(JS_GetPendingException(
*cx,
&mut exception.handle_mut()
));
assert!(JS_GetPendingException(*cx, &mut exception.handle_mut()));
JS_ClearPendingException(*cx);
Err(RethrowError(RootedTraceableBox::from_box(Heap::boxed(
@ -998,7 +995,9 @@ impl ModuleOwner {
.map(|record| record.handle());
if let Some(record) = record {
let evaluated = module_tree.execute_module(&global, record, rval.handle_mut().into()).err();
let evaluated = module_tree
.execute_module(&global, record, rval.handle_mut().into())
.err();
if let Some(exception) = evaluated.clone() {
module_tree.set_rethrow_error(exception);
@ -1020,7 +1019,7 @@ impl ModuleOwner {
);
},
// do nothing if there's no errors
(None, None) => {}
(None, None) => {},
};
debug!("Finishing dynamic import for {:?}", module_identity);
@ -1430,7 +1429,11 @@ unsafe extern "C" fn HostResolveImportedModule(
// Step 5.
rooted!(in(*global_scope.get_cx()) let specifier = GetModuleRequestSpecifier(cx, specifier));
let url = ModuleTree::resolve_module_specifier(*global_scope.get_cx(), &base_url, specifier.handle().into());
let url = ModuleTree::resolve_module_specifier(
*global_scope.get_cx(),
&base_url,
specifier.handle().into(),
);
// Step 6.
assert!(url.is_ok());

View file

@ -52,8 +52,8 @@ use js::jsapi::StreamConsumer as JSStreamConsumer;
use js::jsapi::{BuildIdCharVector, DisableIncrementalGC, GCDescription, GCProgress};
use js::jsapi::{Dispatchable as JSRunnable, Dispatchable_MaybeShuttingDown};
use js::jsapi::{
GCReason, GCOptions, JSGCStatus, JS_AddExtraGCRootsTracer,
JS_RequestInterruptCallback, JS_SetGCCallback,
GCOptions, GCReason, JSGCStatus, JS_AddExtraGCRootsTracer, JS_RequestInterruptCallback,
JS_SetGCCallback,
};
use js::jsapi::{HandleObject, Heap, JobQueue};
use js::jsapi::{JSContext as RawJSContext, JSTracer, SetDOMCallbacks, SetGCSliceCallback};
@ -793,13 +793,10 @@ unsafe extern "C" fn gc_slice_callback(
let desc: &GCDescription = &*desc;
let options = match desc.options_ {
GCOptions::Normal => "Normal",
GCOptions::Shrink => "Shrink",
GCOptions::Shrink => "Shrink",
GCOptions::Shutdown => "Shutdown",
};
println!(
" isZone={}, options={}",
desc.isZone_, options
);
};
println!(" isZone={}, options={}", desc.isZone_, options);
}
let _ = stdout().flush();
}