コード例 #1
0
        private void PromiseContinuationCallback(JsValue task, IntPtr callbackState)
        {
            task.AddRef();
            JsContext context = JsContext.Current;

            TimedFunction(DEFAULT_PROMISE_TIMEOUT, () =>
            {
                using (new JsContext.Scope(context))
                {
                    task.CallFunction(JsValue.GlobalObject);
                }
                task.AddRef();
            }, priority: JsTaskPriority.PROMISE);
        }
コード例 #2
0
 /// <summary>
 /// Adds a reference to the value
 /// </summary>
 /// <param name="value">The value</param>
 private static void AddReferenceToValue(JsValue value)
 {
     if (CanHaveReferences(value))
     {
         value.AddRef();
     }
 }
コード例 #3
0
        internal string RegisterCallback(JsValue callback)
        {
            callback.AddRef();
            var hash = GenerateCallbackHash();

            callbacks[hash] = callback;
            return(hash);
        }
コード例 #4
0
        /// <summary>
        /// The promise continuation callback
        /// </summary>
        /// <param name="task">The task, represented as a JavaScript function</param>
        /// <param name="callbackState">The data argument to be passed to the callback</param>
        private static void PromiseContinuationCallback(JsValue task, IntPtr callbackState)
        {
            task.AddRef();

            try
            {
                task.CallFunction(JsValue.GlobalObject);
            }
            finally
            {
                task.Release();
            }
        }
コード例 #5
0
        public void setSignalHandler(JsValue handler)
        {
            var type = handler.ValueType;

            if (type != JsValueType.Function && type != JsValueType.Null)
            {
                throw new Exception("Invalid paramter type.");
            }
            if (this.handler.IsValid)
            {
                this.handler.Release();
            }
            if (type == JsValueType.Null)
            {
                this.handler = JsValue.Invalid;
                return;
            }
            handler.AddRef();
            this.handler = handler;
        }
コード例 #6
0
 public JsCallback(string id, JsValue callback)
 {
     CallbackFunction = callback;
     Id = id;
     callback.AddRef();
 }
コード例 #7
0
 private JsValue AddRef(JsValue value)
 {
     value.AddRef();
     return(value);
 }