这篇教程C++ ARGUMENTS函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ARGUMENTS函数的典型用法代码示例。如果您正苦于以下问题:C++ ARGUMENTS函数的具体用法?C++ ARGUMENTS怎么用?C++ ARGUMENTS使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ARGUMENTS函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: PROBE_STACK Var SIMDInt32x4Lib::EntryFromFloat32x4(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AssertMsg(args.Info.Count > 0, "Should always have implicit 'this'"); Assert(!(callInfo.Flags & CallFlags_New)); if (args.Info.Count >= 2 && JavascriptSIMDFloat32x4::Is(args[1])) { JavascriptSIMDFloat32x4 *instance = JavascriptSIMDFloat32x4::FromVar(args[1]); Assert(instance); bool throws = false; SIMDValue result = SIMDInt32x4Operation::OpFromFloat32x4(instance->GetValue(), throws); // out of range if (throws) { JavascriptError::ThrowRangeError(scriptContext, JSERR_ArgumentOutOfRange, _u("SIMD.Int32x4.FromFloat32x4")); } return JavascriptSIMDInt32x4::New(&result, scriptContext); } JavascriptError::ThrowTypeError(scriptContext, JSERR_SimdInt32x4TypeMismatch, _u("fromFloat32x4")); }
开发者ID:280185386,项目名称:ChakraCore,代码行数:25,
示例2: PROBE_STACK Var JavascriptSIMDFloat64x2::EntryToString(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AssertMsg(args.Info.Count > 0, "Should always have implicit 'this'"); Assert(!(callInfo.Flags & CallFlags_New)); if (args.Info.Count == 0 || JavascriptOperators::GetTypeId(args[0]) != TypeIds_SIMDFloat64x2) { JavascriptError::ThrowTypeError(scriptContext, JSERR_This_NeedSimd, L"SIMDFloat64x2.toString"); } JavascriptSIMDFloat64x2 *instance = JavascriptSIMDFloat64x2::FromVar(args[0]); Assert(instance); wchar_t stringBuffer[SIMD_STRING_BUFFER_MAX]; SIMDValue value = instance->GetValue(); JavascriptSIMDFloat64x2::ToStringBuffer(value, stringBuffer, SIMD_STRING_BUFFER_MAX); JavascriptString* string = JavascriptString::NewCopySzFromArena(stringBuffer, scriptContext, scriptContext->GeneralAllocator()); return string; }
开发者ID:Rootkitsmm,项目名称:ChakraCore,代码行数:27,
示例3: PROBE_STACK Var DataView::EntrySetFloat64(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); BOOL isLittleEndian = FALSE; Assert(!(callInfo.Flags & CallFlags_New)); if (args.Info.Count == 0 || !DataView::Is(args[0])) { JavascriptError::ThrowTypeError(scriptContext, JSERR_This_NeedDataView); } if (args.Info.Count < 3) { JavascriptError::ThrowTypeError(scriptContext, JSERR_DataView_NeedArgument, L"offset or value"); } DataView* dataView = DataView::FromVar(args[0]); uint32 offset = JavascriptConversion::ToUInt32(args[1], scriptContext); double value = JavascriptConversion::ToNumber(args[2], scriptContext); if (args.Info.Count > 3) { isLittleEndian = JavascriptConversion::ToBoolean(args[3], scriptContext); } dataView->SetValue<double>(offset, value, L"DataView.prototype.SetFloat64", isLittleEndian); return scriptContext->GetLibrary()->GetUndefined(); }
开发者ID:EdwardBetts,项目名称:spidernode,代码行数:28,
示例4: AsmJsChangeHeapBuffer Var AsmJsChangeHeapBuffer(RecyclableObject * function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); Assert(!(callInfo.Flags & CallFlags_New)); if (args.Info.Count < 1 || !ArrayBuffer::Is(args[1])) { JavascriptError::ThrowTypeError(scriptContext, JSERR_NeedArrayBufferObject); } ArrayBuffer* newArrayBuffer = ArrayBuffer::FromVar(args[1]); if (newArrayBuffer->IsDetached() || newArrayBuffer->GetByteLength() & 0xffffff || newArrayBuffer->GetByteLength() <= 0xffffff || newArrayBuffer->GetByteLength() > 0x80000000) { return JavascriptBoolean::ToVar(FALSE, scriptContext); } FrameDisplay* frame = ((ScriptFunction*)function)->GetEnvironment(); Var* moduleArrayBuffer = (Var*)frame->GetItem(0) + AsmJsModuleMemory::MemoryTableBeginOffset; *moduleArrayBuffer = newArrayBuffer; return JavascriptBoolean::ToVar(TRUE, scriptContext); }
开发者ID:boingoing,项目名称:ChakraCore,代码行数:25,
示例5: PROBE_STACK Var JavascriptWeakSet::EntryHas(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); if (!JavascriptWeakSet::Is(args[0])) { JavascriptError::ThrowTypeErrorVar(scriptContext, JSERR_NeedObjectOfType, _u("WeakSet.prototype.has"), _u("WeakSet")); } JavascriptWeakSet* weakSet = JavascriptWeakSet::FromVar(args[0]); Var key = (args.Info.Count > 1) ? args[1] : scriptContext->GetLibrary()->GetUndefined(); bool hasValue = false; if (JavascriptOperators::IsObject(key) && JavascriptOperators::GetTypeId(key) != TypeIds_HostDispatch) { DynamicObject* keyObj = DynamicObject::FromVar(key); hasValue = weakSet->Has(keyObj); } return scriptContext->GetLibrary()->CreateBoolean(hasValue); }
开发者ID:RexSong,项目名称:ChakraCore,代码行数:26,
示例6: PROBE_STACK Var SIMDUint16x8Lib::EntrySubSaturate(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AssertMsg(args.Info.Count > 0, "Should always have implicit 'this'"); Assert(!(callInfo.Flags & CallFlags_New)); // If any of the args are missing, then it is Undefined type which causes TypeError exception. // strict type on both operands if (args.Info.Count >= 3 && JavascriptSIMDUint16x8::Is(args[1]) && JavascriptSIMDUint16x8::Is(args[2])) { JavascriptSIMDUint16x8 *a = JavascriptSIMDUint16x8::FromVar(args[1]); JavascriptSIMDUint16x8 *b = JavascriptSIMDUint16x8::FromVar(args[2]); Assert(a && b); SIMDValue result, aValue, bValue; aValue = a->GetValue(); bValue = b->GetValue(); result = SIMDUint16x8Operation::OpSubSaturate(aValue, bValue); return JavascriptSIMDUint16x8::New(&result, scriptContext); } JavascriptError::ThrowTypeError(scriptContext, JSERR_SimdUint16x8TypeMismatch, _u("subSaturate")); }
开发者ID:AlexElting,项目名称:ChakraCore,代码行数:30,
示例7: PROBE_STACK // Boolean.prototype.toString as described in ES6 spec (draft 24) 19.3.3.2 Var JavascriptBoolean::EntryToString(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); AssertMsg(args.Info.Count, "Should always have implicit 'this'."); ScriptContext* scriptContext = function->GetScriptContext(); Assert(!(callInfo.Flags & CallFlags_New)); BOOL bval; Var aValue = args[0]; if(JavascriptBoolean::Is(aValue)) { bval = JavascriptBoolean::FromVar(aValue)->GetValue(); } else if (JavascriptBooleanObject::Is(aValue)) { JavascriptBooleanObject* booleanObject = JavascriptBooleanObject::FromVar(aValue); bval = booleanObject->GetValue(); } else { return TryInvokeRemotelyOrThrow(EntryToString, scriptContext, args, JSERR_This_NeedBoolean, _u("Boolean.prototype.toString")); } return bval ? scriptContext->GetLibrary()->GetTrueDisplayString() : scriptContext->GetLibrary()->GetFalseDisplayString(); }
开发者ID:AlexElting,项目名称:ChakraCore,代码行数:29,
示例8: PROBE_STACK Var JavascriptReflect::EntryPreventExtensions(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AUTO_TAG_NATIVE_LIBRARY_ENTRY(function, callInfo, _u("Reflect.preventExtensions")); AssertMsg(args.Info.Count > 0, "Should always have implicit 'this'"); if (args.Info.Flags & CallFlags_New) { JavascriptError::ThrowTypeError(scriptContext, JSERR_ErrorOnNew, _u("Reflect.preventExtensions")); } if (args.Info.Count < 2 || !JavascriptOperators::IsObject(args[1])) { JavascriptError::ThrowTypeError(scriptContext, JSERR_FunctionArgument_NeedObject, _u("Reflect.preventExtensions")); } Var target = args[1]; RecyclableObject* targetObj = RecyclableObject::FromVar(target); GlobalObject* globalObject = targetObj->GetLibrary()->GetGlobalObject(); if (globalObject != targetObj && globalObject && (globalObject->ToThis() == targetObj)) { globalObject->PreventExtensions(); } return scriptContext->GetLibrary()->GetTrueOrFalse(targetObj->PreventExtensions()); }
开发者ID:280185386,项目名称:ChakraCore,代码行数:29,
示例9: PROBE_STACK Var JavascriptSet::EntryForEach(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AUTO_TAG_NATIVE_LIBRARY_ENTRY(function, callInfo, _u("Set.prototype.forEach")); if (!JavascriptSet::Is(args[0])) { JavascriptError::ThrowTypeErrorVar(scriptContext, JSERR_NeedObjectOfType, _u("Set.prototype.forEach"), _u("Set")); } JavascriptSet* set = JavascriptSet::FromVar(args[0]); if (args.Info.Count < 2 || !JavascriptConversion::IsCallable(args[1])) { JavascriptError::ThrowTypeError(scriptContext, JSERR_FunctionArgument_NeedFunction, _u("Set.prototype.forEach")); } RecyclableObject* callBackFn = RecyclableObject::FromVar(args[1]); Var thisArg = (args.Info.Count > 2) ? args[2] : scriptContext->GetLibrary()->GetUndefined(); auto iterator = set->GetIterator(); while (iterator.Next()) { Var value = iterator.Current(); CALL_FUNCTION(callBackFn, CallInfo(CallFlags_Value, 4), thisArg, value, value, args[0]); } return scriptContext->GetLibrary()->GetUndefined(); }
开发者ID:thiagolimaa,项目名称:ChakraCore,代码行数:35,
示例10: PROBE_STACK Var SharedArrayBuffer::NewInstance(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AssertMsg(args.Info.Count > 0, "Should always have implicit 'this'"); Var newTarget = callInfo.Flags & CallFlags_NewTarget ? args.Values[args.Info.Count] : args[0]; bool isCtorSuperCall = (callInfo.Flags & CallFlags_New) && newTarget != nullptr && !JavascriptOperators::IsUndefined(newTarget); Assert(isCtorSuperCall || !(callInfo.Flags & CallFlags_New) || args[0] == nullptr); if (!(callInfo.Flags & CallFlags_New) || (newTarget && JavascriptOperators::IsUndefinedObject(newTarget))) { JavascriptError::ThrowTypeError(scriptContext, JSERR_ClassConstructorCannotBeCalledWithoutNew, _u("SharedArrayBuffer")); } uint32 byteLength = 0; if (args.Info.Count > 1) { byteLength = GetByteLengthFromVar(scriptContext, args[1]); } RecyclableObject* newArr = scriptContext->GetLibrary()->CreateSharedArrayBuffer(byteLength); return isCtorSuperCall ? JavascriptOperators::OrdinaryCreateFromConstructor(RecyclableObject::FromVar(newTarget), newArr, nullptr, scriptContext) : newArr; }
开发者ID:sankha93,项目名称:ChakraCore,代码行数:30,
示例11: PROBE_STACK Var JavascriptWeakMap::EntryGet(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); if (!JavascriptWeakMap::Is(args[0])) { JavascriptError::ThrowTypeErrorVar(scriptContext, JSERR_NeedObjectOfType, _u("WeakMap.prototype.get"), _u("WeakMap")); } JavascriptWeakMap* weakMap = JavascriptWeakMap::FromVar(args[0]); Var key = (args.Info.Count > 1) ? args[1] : scriptContext->GetLibrary()->GetUndefined(); if (JavascriptOperators::IsObject(key) && JavascriptOperators::GetTypeId(key) != TypeIds_HostDispatch) { DynamicObject* keyObj = DynamicObject::FromVar(key); Var value = nullptr; if (weakMap->Get(keyObj, &value)) { return value; } } return scriptContext->GetLibrary()->GetUndefined(); }
开发者ID:AlexElting,项目名称:ChakraCore,代码行数:29,
示例12: PROBE_STACK Var JavascriptSIMDUint16x8::EntryToString(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AssertMsg(args.Info.Count > 0, "Should always have implicit 'this'"); Assert(!(callInfo.Flags & CallFlags_New)); if (args.Info.Count == 0 || JavascriptOperators::GetTypeId(args[0]) != TypeIds_SIMDUint16x8) { JavascriptError::ThrowTypeError(scriptContext, JSERR_This_NeedSimd, L"SIMDUint16x8.toString"); } JavascriptSIMDUint16x8* instance = JavascriptSIMDUint16x8::FromVar(args[0]); Assert(instance); wchar_t stringBuffer[1024]; SIMDValue value = instance->GetValue(); swprintf_s(stringBuffer, 1024, L"SIMD.Uint16x8(%u, %u, %u, %u, %u, %u, %u, %u)", value.u16[0], value.u16[1], value.u16[2], value.u16[3], value.u16[4], value.u16[5], value.u16[6], value.u16[7]); JavascriptString* string = JavascriptString::NewCopySzFromArena(stringBuffer, scriptContext, scriptContext->GeneralAllocator()); return string; }
开发者ID:Cellule,项目名称:ChakraCore,代码行数:27,
示例13: PROBE_STACK Var ObjectPrototypeObject::Entry__proto__getter(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); Assert(!(callInfo.Flags & CallFlags_New)); ScriptContext* scriptContext = function->GetScriptContext();#if !FLOATVAR // Mark temp number will stack allocate number that is used as the object ptr. // So we should box it before call ToObject on it. Var arg0 = JavascriptNumber::BoxStackNumber(args[0], scriptContext);#else Var arg0 = args[0];#endif // B.2.2.1.1 // get Object.prototype.__proto__ // The value of the [[Get]] attribute is a built-in function that requires no arguments. It performs the following steps: // 1. Let O be ToObject(this value). // 2. ReturnIfAbrupt(O). RecyclableObject* object; if (args.Info.Count < 1 || !JavascriptConversion::ToObject(arg0, scriptContext, &object)) { JavascriptError::ThrowTypeError(scriptContext, JSERR_This_NeedObject, _u("Object.prototype.__proto__")); } // 3. Return O.[[GetPrototypeOf]](). return JavascriptObject::GetPrototypeOf(object, scriptContext); }
开发者ID:Rastaban,项目名称:ChakraCore,代码行数:30,
注:本文中的ARGUMENTS函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ARGUMENT_PRESENT函数代码示例 C++ ARGS_REQ函数代码示例 |