AJValue PropertySlot::functionGetter(ExecState* exec) const { // Prevent getter functions from observing execution if an exception is pending. if (exec->hadException()) return exec->exception(); CallData callData; CallType callType = m_data.getterFunc->getCallData(callData); if (callType == CallTypeHost) return callData.native.function(exec, m_data.getterFunc, thisValue(), exec->emptyList()); ASSERT(callType == CallTypeJS); // FIXME: Can this be done more efficiently using the callData? return asFunction(m_data.getterFunc)->call(exec, thisValue(), exec->emptyList()); }
JSValue PropertySlot::functionGetter(ExecState* exec) const { // Prevent getter functions from observing execution if an exception is pending. if (exec->hadException()) return exec->exception(); CallData callData; CallType callType = m_data.getterFunc->getCallData(callData); return call(exec, m_data.getterFunc, callType, callData, thisValue(), exec->emptyList()); }
bool RenderTarget_dispose(JSContext *cx, unsigned argc, jsval *vp) { JS::CallArgs args = JS::CallArgsFromVp( argc, vp ); Value value=args.computeThis( cx ); RenderTarget *target=(RenderTarget *) JS_GetPrivate( &value.toObject() ); target->dispose(); // --- VG.Renderer().removeResource(this); RootedValue *renderer=g_host->executeScript( "VG.Renderer()" ); RootedObject rendererObject( cx, &renderer->toObject() ); RootedValue rc( cx ); RootedValue thisValue( cx, value ); bool ok=Call( cx, HandleObject( rendererObject ), "removeResource", HandleValueArray( thisValue ), MutableHandleValue( &rc ) ); return true; }
void CallFrame::dump(PrintStream& out) { if (CodeBlock* codeBlock = this->codeBlock()) { out.print(codeBlock->inferredName(), "#", codeBlock->hashAsStringIfPossible(), " [", codeBlock->jitType(), "]"); out.print("("); thisValue().dumpForBacktrace(out); for (size_t i = 0; i < argumentCount(); ++i) { out.print(", "); JSValue value = argument(i); value.dumpForBacktrace(out); } out.print(")"); return; } out.print(returnPC()); }
bool InterposeCall(JSContext* cx, JS::HandleObject target, const JS::CallArgs& args, bool* done) { *done = false; XPCWrappedNativeScope* scope = ObjectScope(CurrentGlobalOrNull(cx)); MOZ_ASSERT(scope->HasInterposition()); nsCOMPtr<nsIAddonInterposition> interp = scope->GetInterposition(); RootedObject unwrappedTarget(cx, UncheckedUnwrap(target)); XPCWrappedNativeScope* targetScope = ObjectScope(unwrappedTarget); bool hasInterpostion = targetScope->HasCallInterposition(); if (!hasInterpostion) return true; // If there is a call interpostion, we don't want to propogate the // call to Base: *done = true; JSAddonId* addonId = AddonIdOfObject(target); RootedValue addonIdValue(cx, StringValue(StringOfAddonId(addonId))); RootedValue targetValue(cx, ObjectValue(*target)); RootedValue thisValue(cx, args.thisv()); RootedObject argsArray(cx, ConvertArgsToArray(cx, args)); if (!argsArray) return false; RootedValue argsVal(cx, ObjectValue(*argsArray)); RootedValue returnVal(cx); nsresult rv = interp->InterposeCall(addonIdValue, targetValue, thisValue, argsVal, args.rval()); if (NS_FAILED(rv)) { xpc::Throw(cx, rv); return false; } return true; }
bool nImO::Array::deeplyEqualTo (const nImO::Value & other) const { ODL_OBJENTER(); //#### ODL_P1("other = ", &other); //#### bool result = (&other == this); if (! result) { const Array * otherPtr = other.asArray(); if (otherPtr && (size() == otherPtr->size())) { const_iterator thisWalker(inherited2::begin()); const_iterator otherWalker(otherPtr->inherited2::begin()); for (result = true; result && (thisWalker != inherited2::end()); ++thisWalker, ++otherWalker) { SpValue thisValue(*thisWalker); SpValue otherValue(*otherWalker); if ((nullptr != thisValue) && (nullptr != otherValue)) { result = thisValue->deeplyEqualTo(*otherValue); } else { result = false; } } } } ODL_OBJEXIT_B(result); //#### return result; } // nImO::Array::deeplyEqualTo
bool JsonScanner::get(const __FlashStringHelper *name, char type) { return findName(name) && thisValue(type); }