public JavaScriptFunction CreateFunction(JavaScriptCallableFunction hostFunction, string name) { if (hostFunction == null) { throw new ArgumentNullException(nameof(hostFunction)); } if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } ClaimContext(); var nameVal = Converter.FromString(name); NativeFunctionThunkData td = new NativeFunctionThunkData() { callback = hostFunction, engine = new WeakReference <JavaScriptEngine>(this) }; GCHandle handle = GCHandle.Alloc(td, GCHandleType.Weak); nativeFunctionThunks_.Add(td); JavaScriptValueSafeHandle resultHandle; Errors.ThrowIfIs(api_.JsCreateNamedFunction(nameVal.handle_, NativeCallbackPtr, GCHandle.ToIntPtr(handle), out resultHandle)); return(CreateObjectFromHandle(resultHandle) as JavaScriptFunction); }
public JavaScriptFunction CreateFunction(JavaScriptCallableFunction hostFunction) { if (hostFunction == null) { throw new ArgumentNullException(nameof(hostFunction)); } NativeFunctionThunkData td = new NativeFunctionThunkData() { callback = hostFunction, engine = new WeakReference <JavaScriptEngine>(this) }; GCHandle handle = GCHandle.Alloc(td, GCHandleType.Weak); nativeFunctionThunks_.Add(td); JavaScriptValueSafeHandle resultHandle; Errors.ThrowIfIs(api_.JsCreateFunction(NativeCallbackPtr, GCHandle.ToIntPtr(handle), out resultHandle)); return(CreateObjectFromHandle(resultHandle) as JavaScriptFunction); }
public JavaScriptFunction CreateFunction(JavaScriptCallableFunction hostFunction, string name) { if (hostFunction == null) throw new ArgumentNullException(nameof(hostFunction)); if (string.IsNullOrEmpty(name)) throw new ArgumentNullException(nameof(name)); ClaimContext(); var nameVal = Converter.FromString(name); NativeFunctionThunkData td = new NativeFunctionThunkData() { callback = hostFunction, engine = new WeakReference<JavaScriptEngine>(this) }; GCHandle handle = GCHandle.Alloc(td, GCHandleType.Weak); nativeFunctionThunks_.Add(td); JavaScriptValueSafeHandle resultHandle; Errors.ThrowIfIs(api_.JsCreateNamedFunction(nameVal.handle_, NativeCallbackPtr, GCHandle.ToIntPtr(handle), out resultHandle)); return CreateObjectFromHandle(resultHandle) as JavaScriptFunction; }