Ejemplo n.º 1
0
        public override Statistics GetStatistics()
        {
            var statistics = new Statistics();

            V8SplitProxyNative.InvokeNoThrow(instance => instance.V8UnitTestSupport_GetStatistics(out statistics.IsolateCount, out statistics.ContextCount));
            return(statistics);
        }
Ejemplo n.º 2
0
 public void InvokeWithArrayBufferOrViewData(Action <IntPtr> action)
 {
     using (var actionScope = V8ProxyHelpers.CreateAddRefHostObjectScope(action))
     {
         var pAction = actionScope.Value;
         V8SplitProxyNative.Invoke(instance => instance.V8Object_InvokeWithArrayBufferOrViewData(Handle, pAction));
     }
 }
Ejemplo n.º 3
0
        public void ReleaseEntity()
        {
            var tempHandle = handle;

            if (tempHandle != V8Entity.Handle.Empty)
            {
                V8SplitProxyNative.InvokeNoThrow(instance => instance.V8Entity_Release(tempHandle));
            }
        }
 public V8IsolateProxyImpl(string name, V8RuntimeConstraints constraints, V8RuntimeFlags flags, int debugPort)
 {
     holder = new V8EntityHolder("V8 runtime", () => V8SplitProxyNative.Invoke(instance => instance.V8Isolate_Create(
                                                                                   name,
                                                                                   constraints?.MaxNewSpaceSize ?? -1,
                                                                                   constraints?.MaxOldSpaceSize ?? -1,
                                                                                   flags.HasFlag(V8RuntimeFlags.EnableDebugging),
                                                                                   flags.HasFlag(V8RuntimeFlags.EnableRemoteDebugging),
                                                                                   flags.HasFlag(V8RuntimeFlags.EnableDynamicModuleImports),
                                                                                   debugPort
                                                                                   )));
 }
 public V8Context.Handle CreateContext(string name, V8ScriptEngineFlags flags, int debugPort)
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Isolate_CreateContext(
                                          Handle,
                                          name,
                                          flags.HasFlag(V8ScriptEngineFlags.EnableDebugging),
                                          flags.HasFlag(V8ScriptEngineFlags.EnableRemoteDebugging),
                                          flags.HasFlag(V8ScriptEngineFlags.DisableGlobalMembers),
                                          flags.HasFlag(V8ScriptEngineFlags.EnableDateTimeConversion),
                                          flags.HasFlag(V8ScriptEngineFlags.EnableDynamicModuleImports),
                                          debugPort
                                          )));
 }
Ejemplo n.º 6
0
 public V8IsolateProxyImpl(string name, V8RuntimeConstraints constraints, V8RuntimeFlags flags, int debugPort)
 {
     holder = new V8EntityHolder("V8 runtime", () => V8SplitProxyNative.Invoke(instance => instance.V8Isolate_Create(
                                                                                   name,
                                                                                   constraints?.MaxNewSpaceSize ?? -1,
                                                                                   constraints?.MaxOldSpaceSize ?? -1,
                                                                                   constraints?.HeapExpansionMultiplier ?? 0,
                                                                                   constraints?.MaxArrayBufferAllocation ?? ulong.MaxValue,
                                                                                   flags.HasFlag(V8RuntimeFlags.EnableDebugging),
                                                                                   flags.HasFlag(V8RuntimeFlags.EnableRemoteDebugging),
                                                                                   flags.HasFlag(V8RuntimeFlags.EnableDynamicModuleImports),
                                                                                   debugPort
                                                                                   )));
 }
Ejemplo n.º 7
0
        public static void Destroy(ref V8EntityHolder holder)
        {
            var tempHandle = holder.handle;

            if (tempHandle != V8Entity.Handle.Empty)
            {
                V8SplitProxyNative.InvokeNoThrow(instance => instance.V8Entity_DestroyHandle(tempHandle));
            }

            if (holder.registered)
            {
                V8Proxy.OnEntityHolderDestroyed();
            }

            holder = new V8EntityHolder(holder.name);
        }
Ejemplo n.º 8
0
        public V8ArrayBufferOrViewInfo GetArrayBufferOrViewInfo()
        {
            var kind = GetArrayBufferOrViewKind();

            if (kind != V8ArrayBufferOrViewKind.None)
            {
                IV8Object arrayBuffer = null;
                ulong     offset      = 0;
                ulong     size        = 0;
                ulong     length      = 0;
                V8SplitProxyNative.Invoke(instance => instance.V8Object_GetArrayBufferOrViewInfo(Handle, out arrayBuffer, out offset, out size, out length));
                return(new V8ArrayBufferOrViewInfo(kind, arrayBuffer, offset, size, length));
            }

            return(null);
        }
Ejemplo n.º 9
0
 public void SetProperty(int index, object value)
 {
     V8SplitProxyNative.Invoke(instance => instance.V8Object_SetIndexedProperty(Handle, index, value));
 }
Ejemplo n.º 10
0
 public override UIntPtr GetNativeDigest(string value)
 {
     return(V8SplitProxyNative.InvokeNoThrow(instance => instance.V8UnitTestSupport_GetTextDigest(value)));
 }
Ejemplo n.º 11
0
 public void DisconnectClient()
 {
     V8SplitProxyNative.InvokeNoThrow(instance => instance.V8DebugCallback_DisconnectClient(Handle));
 }
Ejemplo n.º 12
0
 public object GetProperty(string name)
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_GetNamedProperty(Handle, name)));
 }
Ejemplo n.º 13
0
 public object InvokeMethod(string name, object[] args)
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_InvokeMethod(Handle, name, args)));
 }
Ejemplo n.º 14
0
 public object Invoke(bool asConstructor, object[] args)
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_Invoke(Handle, asConstructor, args)));
 }
Ejemplo n.º 15
0
 public void SendCommand(string command)
 {
     V8SplitProxyNative.InvokeNoThrow(instance => instance.V8DebugCallback_SendCommand(Handle, command));
 }
Ejemplo n.º 16
0
 private static void ScheduleHostException(Exception exception)
 {
     V8SplitProxyNative.InvokeNoThrow(instance => instance.HostException_Schedule(exception.GetBaseException().Message, ScriptEngine.Current?.MarshalToScript(exception)));
 }
Ejemplo n.º 17
0
 public object GetProperty(int index)
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_GetIndexedProperty(Handle, index)));
 }
Ejemplo n.º 18
0
 public string[] GetPropertyNames()
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_GetPropertyNames(Handle)));
 }
Ejemplo n.º 19
0
 public bool DeleteProperty(string name)
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_DeleteNamedProperty(Handle, name)));
 }
Ejemplo n.º 20
0
 public void SetProperty(string name, object value)
 {
     V8SplitProxyNative.Invoke(instance => instance.V8Object_SetNamedProperty(Handle, name, value));
 }
Ejemplo n.º 21
0
 private static void ScheduleHostException(IntPtr pObject, Exception exception)
 {
     V8SplitProxyNative.InvokeNoThrow(instance => instance.HostException_Schedule(exception.GetBaseException().Message, V8ProxyHelpers.MarshalExceptionToScript(pObject, exception)));
 }
Ejemplo n.º 22
0
 public bool DeleteProperty(int index)
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_DeleteIndexedProperty(Handle, index)));
 }
Ejemplo n.º 23
0
 public void Invoke()
 {
     V8SplitProxyNative.InvokeNoThrow(instance => instance.NativeCallback_Invoke(Handle));
 }
Ejemplo n.º 24
0
 public int[] GetPropertyIndices()
 {
     return(V8SplitProxyNative.Invoke(instance => instance.V8Object_GetPropertyIndices(Handle)));
 }