Type Alias mozjs_sys::jsapi::StructuredCloneErrorOp

source ·
pub type StructuredCloneErrorOp = Option<unsafe extern "C" fn(cx: *mut JSContext, errorid: u32, closure: *mut c_void, errorMessage: *const c_char)>;
Expand description

This is called when serialization or deserialization encounters an error. To follow HTML5, the application must throw a DATA_CLONE_ERR DOMException with error set to one of the JS_SCERR_* values.

Note that if the .reportError field of the JSStructuredCloneCallbacks is set (to a function with this signature), then an exception will not be set on the JSContext when an error is encountered. The clone operation will still be aborted and will return false, however, so it is up to the embedding to do what it needs to for the error.

Example: for the DOM, mozilla::dom::StructuredCloneHolder will save away the error message during its reportError callback. Then when the overall operation fails, it will clear any exception that might have been set from other ways to fail and pass the saved error message to ErrorResult::ThrowDataCloneError().

Aliased Type§

enum StructuredCloneErrorOp {
    None,
    Some(unsafe extern "C" fn(_: *mut JSContext, _: u32, _: *mut c_void, _: *const i8)),
}

Variants§

§1.0.0

None

No value.

§1.0.0

Some(unsafe extern "C" fn(_: *mut JSContext, _: u32, _: *mut c_void, _: *const i8))

Some value of type T.