rquickjs-core 0.1.1

High level bindings to the QuickJS javascript engine
Documentation
pub struct DropHook;

static mut DROP_HOOK_CLASS: qjs::JSClassID = 0;

impl DropHook {
    pub unsafe fn register(rt: *mut qjs::JSRuntime) {
        qjs::JS_NewClassID(&mut DROP_HOOK_CLASS);
        if 0 == qjs::JS_IsRegisteredClass(rt, FUNC_CLASS) {
            let class_def = qjs::JSClassDef {
                class_name: b"RustRuntimeDropHook\0".as_ptr() as *const _,
                finalizer: Some(Self::finalizer),
                gc_mark: None,
                call: Some(Self::call),
                exotic: ptr::null_mut(),
            };
            assert!(qjs::JS_NewClass(rt, FUNC_CLASS, &class_def) == 0);
        }
    }

    unsafe extern "C" fn finalizer(_rt: *mut qjs::JSRuntime, val: qjs::JSValue) {
        let _opaque = Box::from_raw(qjs::JS_GetOpaque(val, DROP_HOOK_CLASS) as *mut Self);
    }
}