public static void class_finalizer(JSRuntime rt, JSValue val) { var runtime = ScriptEngine.GetRuntime(rt); var header = JSApi.JSB_FreePayloadRT(rt, val); if (header.type_id == BridgeObjectType.ObjectRef) { var objectCache = runtime.GetObjectCache(); if (objectCache != null) { object obj; try { objectCache.RemoveObject(header.value, out obj); } catch (Exception exception) { runtime.GetLogger()?.WriteException(exception); } } } }
public static void class_finalizer(JSRuntime rt, JSValue val) { var runtime = ScriptEngine.GetRuntime(rt); var header = JSApi.JSB_FreePayloadRT(rt, val); if (header.type_id == BridgeObjectType.ObjectRef) { var objectCache = runtime.GetObjectCache(); if (objectCache != null) { object obj; if (objectCache.RemoveObject(header.value, out obj)) { var jsf = obj as IScriptFinalize; if (jsf != null) { jsf.OnJSFinalize(); } } } } }