pub type ReadTransferStructuredCloneOp = Option<unsafe extern "C" fn(cx: *mut JSContext, r: *mut JSStructuredCloneReader, aCloneDataPolicy: *const CloneDataPolicy, tag: u32, content: *mut c_void, extraData: u64, closure: *mut c_void, returnObject: MutableHandleObject) -> bool>;
Expand description
This is called when JS_ReadStructuredClone receives a transferable object not known to the engine. If this hook does not exist or returns false, the JS engine calls the reportError op if set, otherwise it throws a DATA_CLONE_ERR DOM Exception. This method is called before any other callback and must return a non-null object in returnObject on success.
If this readTransfer() hook is called and produces an object, then the read() hook will not be called for the same object, since the main data will only contain a backreference to the already-read object.
The clone buffer will relinquish ownership of this Transferable if and only if this hook returns true – as in, the freeTransfer hook will not be called on this entry if this hook returns true, but it will still be called if it returns false.
Aliased Type§
pub enum ReadTransferStructuredCloneOp {
None,
Some(unsafe extern "C" fn(*mut JSContext, *mut JSStructuredCloneReader, *const CloneDataPolicy, u32, *mut c_void, u64, *mut c_void, MutableHandle<*mut JSObject>) -> bool),
}