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); }
/// <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(); } }
internal string RegisterCallback(JsValue callback) { callback.AddRef(); var hash = GenerateCallbackHash(); callbacks[hash] = callback; return(hash); }
/// <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(); } }
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; }
public JsCallback(string id, JsValue callback) { CallbackFunction = callback; Id = id; callback.AddRef(); }
private JsValue AddRef(JsValue value) { value.AddRef(); return(value); }