public Rooted <JS.Value> Invoke( JSHandleObject thisReference, params JS.Value[] arguments ) { return(Pointer.InvokeFunction(Context, thisReference, arguments)); }
public unsafe Rooted <Value> InvokeFunction( JSContextPtr context, JSHandleObject thisReference, params Value[] arguments ) { fixed(Value *pThis = &this) fixed(Value * pArgs = arguments) { var argsPtr = new ValueArrayPtr((uint)arguments.Length, (IntPtr)pArgs); var resultRoot = new Rooted <Value>(context, Undefined); if (JSAPI.CallFunctionValue( context, thisReference, pThis, ref argsPtr, resultRoot )) { return(resultRoot); } resultRoot.Dispose(); return(null); } }
public JSCustomClass(JSContextPtr context, string name, JSHandleObject globalObject) { Context = context; ClassDefinition = new JSClass(name); ClassPtr = new JSClassPtr(ClassDefinition, out ClassPin); GlobalObject = globalObject; SetConstructor(DefaultConstructor); }
public Rooted <JS.Value> Evaluate(JSHandleObject scope, string scriptSource, string filename = null, uint lineNumber = 0) { var resultRoot = new Rooted <JS.Value>(this, JS.Value.Undefined); if (JSAPI.EvaluateScript( this, scope, scriptSource, filename, lineNumber, resultRoot )) { return(resultRoot); } resultRoot.Dispose(); return(null); }
public Rooted <JS.Value> Evaluate( JSHandleObject scope, string scriptSource, out JSError error, string filename = null, uint lineNumber = 0 ) { var prior = ReportUncaughtExceptions; try { ReportUncaughtExceptions = false; var isAlreadyThrowing = Exception.IsPending; var result = Evaluate(scope, scriptSource, filename, lineNumber); if (Exception.IsPending && !isAlreadyThrowing) { var exc = Exception.Get(); if (exc.Value.ValueType == JSValueType.OBJECT) { error = new JSError(this, exc.Value.AsObject); } else { exc = Exception.Get(); error = null; } Exception.Clear(); } else { error = null; } return(result); } finally { ReportUncaughtExceptions = prior; } }
static unsafe JSBool global_resolve( JSContextPtr cx, JSHandleObject obj, JSHandleId id, ref JSObjectPtr objp ) { JSBool resolved = false; objp = JSObjectPtr.Zero; if (!JSAPI.ResolveStandardClass(cx, obj, id, ref resolved)) { return(false); } if (resolved) { objp = obj.Get(); return(true); } return(true); }
static unsafe JSBool global_enumerate(JSContextPtr cx, JSHandleObject obj) { return(JSAPI.EnumerateStandardClasses(cx, obj)); }