private void Destroy() { if (_jsThis.IsUndefined()) { return; } _state = ReadyState.UNSENT; _code = 0; _jsThis = JSApi.JS_UNDEFINED; var runtime = ScriptEngine.GetRuntime(_jsContext); if (runtime != null) { runtime.OnDestroy -= Destroy; } if (_jsContext.IsValid()) { JSApi.JS_FreeValue(_jsContext, _onreadystatechange); _onreadystatechange = JSApi.JS_UNDEFINED; JSApi.JS_FreeValue(_jsContext, _onerror); _onerror = JSApi.JS_UNDEFINED; _jsContext = JSContext.Null; } }
private void Destroy() { if (_jsThis.IsUndefined()) { return; } _Dispose(); _jsThis = JSApi.JS_UNDEFINED; if (_runtime != null) { _runtime.OnDestroy -= Destroy; _runtime = null; } if (_jsContext.IsValid()) { JSApi.JS_FreeValue(_jsContext, _oncreate); _oncreate = JSApi.JS_UNDEFINED; JSApi.JS_FreeValue(_jsContext, _ondelete); _ondelete = JSApi.JS_UNDEFINED; JSApi.JS_FreeValue(_jsContext, _onchange); _onchange = JSApi.JS_UNDEFINED; _jsContext = JSContext.Null; } }
private void ReleaseJSValues() { if (_ctx.IsValid()) { JSApi.JS_FreeValue(_ctx, _onDestroyFunc); _onDestroyFunc = JSApi.JS_UNDEFINED; _onDestroyValid = false; JSApi.JS_FreeValue(_ctx, _onEnableFunc); _onEnableFunc = JSApi.JS_UNDEFINED; _onEnableValid = false; JSApi.JS_FreeValue(_ctx, _onDisableFunc); _onDisableFunc = JSApi.JS_UNDEFINED; _onDisableValid = false; JSApi.JS_FreeValue(_ctx, _onInspectorGUIFunc); _onInspectorGUIFunc = JSApi.JS_UNDEFINED; _onInspectorGUIValid = false; JSApi.JS_FreeValue(_ctx, _this_obj); _this_obj = JSApi.JS_UNDEFINED; var context = ScriptEngine.GetContext(_ctx); if (context != null) { context.OnDestroy -= OnContextDestroy; } } }
public static ScriptContext GetContext(JSContext ctx) { if (ctx.IsValid()) { var rt = JSApi.JS_GetRuntime(ctx); return(GetRuntime(rt)?.GetContext(ctx)); } return(null); }
private void OnReadyStateChange() { if (!_jsContext.IsValid() || JSApi.JS_IsFunction(_jsContext, _onreadychange) != 1) { return; } var ret = JSApi.JS_Call(_jsContext, _onreadychange, JSApi.JS_UNDEFINED); JSApi.JS_FreeValue(_jsContext, ret); }
private void Destroy() { if (_jsThis.IsUndefined()) { return; } _state = ReadyState.UNSENT; _code = 0; _jsThis = JSApi.JS_UNDEFINED; if (_jsContext.IsValid()) { JSApi.JS_FreeValue(_jsContext, _onreadystatechange); _onreadystatechange = JSApi.JS_UNDEFINED; JSApi.JS_FreeValue(_jsContext, _onerror); _onerror = JSApi.JS_UNDEFINED; _jsContext = JSContext.Null; } }
public virtual void Dispose(bool bManaged) { if (_ctx.IsValid()) { JSApi.JS_FreeContext(_ctx); _ctx = JSContext.Null; } if (_rt.IsValid()) { JSApi.JS_FreeRuntime(_rt); _rt = JSRuntime.Null; } }
public bool IsValid() { return(_ctx.IsValid() && !_this_obj.IsNullish()); }