Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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;
                }
            }
        }
Ejemplo n.º 4
0
 public static ScriptContext GetContext(JSContext ctx)
 {
     if (ctx.IsValid())
     {
         var rt = JSApi.JS_GetRuntime(ctx);
         return(GetRuntime(rt)?.GetContext(ctx));
     }
     return(null);
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
            }
        }
Ejemplo n.º 7
0
        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;
            }
        }
Ejemplo n.º 8
0
 public bool IsValid()
 {
     return(_ctx.IsValid() && !_this_obj.IsNullish());
 }