Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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;
        }