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§

§1.0.0

None

No value.

§1.0.0

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>

source§

impl<T: FromJSValConvertible> FromJSValConvertible for Option<T>

§

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>>, ()>

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.
source§

impl<T: ToJSValConvertible> ToJSValConvertible for Option<T>

source§

unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandleValue<'_>)

Convert self to a JSVal. JSAPI failure causes a panic.
source§

impl<T: Traceable> Traceable for Option<T>

source§

unsafe fn trace(&self, trc: *mut JSTracer)

Trace self.