Type Alias mozjs::jsapi::ModuleResolveHook
source · pub type ModuleResolveHook = Option<unsafe extern "C" fn(_: *mut JSContext, _: Handle<Value>, _: Handle<*mut JSObject>) -> *mut JSObject>;
Expand description
The HostResolveImportedModule hook.
See: https://tc39.es/ecma262/#sec-hostresolveimportedmodule
This embedding-defined hook is used to implement module loading. It is called to get or create a module object corresponding to |moduleRequest| occurring in the context of the script or module with private value |referencingPrivate|.
The module specifier string for the request can be obtained by calling JS::GetModuleRequestSpecifier.
The private value for a script or module is set with JS::SetScriptPrivate or JS::SetModulePrivate. It’s assumed that the embedding can handle receiving either here.
This hook must obey the restrictions defined in the spec:
- Each time the hook is called with the same arguemnts, the same module must be returned.
- If a module cannot be created for the given arguments, an exception must be thrown.
This is a synchronous operation.
Aliased Type§
enum ModuleResolveHook {
None,
Some(unsafe extern "C" fn(_: *mut JSContext, _: Handle<Value>, _: Handle<*mut JSObject>) -> *mut JSObject),
}
Variants§
None
No value.
Some(unsafe extern "C" fn(_: *mut JSContext, _: Handle<Value>, _: Handle<*mut JSObject>) -> *mut JSObject)
Some value of type T
.
Trait Implementations§
source§impl<T: CustomTrace> CustomTrace for Option<T>
impl<T: CustomTrace> CustomTrace for Option<T>
source§impl<T: FromJSValConvertible> FromJSValConvertible for Option<T>
impl<T: FromJSValConvertible> FromJSValConvertible for Option<T>
§type Config = <T as FromJSValConvertible>::Config
type Config = <T as FromJSValConvertible>::Config
Optional configurable behaviour switch; use () for no configuration.
source§unsafe fn from_jsval(
cx: *mut JSContext,
value: HandleValue<'_>,
option: T::Config
) -> Result<ConversionResult<Option<T>>, ()>
unsafe fn from_jsval( cx: *mut JSContext, value: HandleValue<'_>, option: T::Config ) -> Result<ConversionResult<Option<T>>, ()>
Convert
val
to type Self
.
Optional configuration of type T
can be passed as the option
argument.
If it returns Err(())
, a JSAPI exception is pending.
If it returns Ok(Failure(reason))
, there is no pending JSAPI exception.