Type Alias mozjs_sys::jsapi::JS::ModuleResolveHook

source ·
pub type ModuleResolveHook = Option<unsafe extern "C" fn(cx: *mut JSContext, referencingPrivate: Handle<Value>, moduleRequest: 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.