本文整理汇总了C++中createTypeError函数的典型用法代码示例。如果您正苦于以下问题:C++ createTypeError函数的具体用法?C++ createTypeError怎么用?C++ createTypeError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了createTypeError函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: JSPromiseConstructorFuncResolve
EncodedJSValue JSC_HOST_CALL JSPromiseConstructorFuncResolve(ExecState* exec)
{
if (!exec->argumentCount())
return throwVMError(exec, createTypeError(exec, "Expected at least one argument"));
JSGlobalObject* globalObject = exec->callee()->globalObject();
JSPromise* promise = JSPromise::createWithResolver(exec->vm(), globalObject);
promise->resolver()->resolve(exec, exec->uncheckedArgument(0));
return JSValue::encode(promise);
}
开发者ID:RobotsAndPencils,项目名称:JavaScriptCore-iOS,代码行数:12,代码来源:JSPromiseConstructor.cpp
示例2: constructJSReadableStreamReader
EncodedJSValue JSC_HOST_CALL constructJSReadableStreamReader(ExecState* state)
{
JSReadableStream* stream = jsDynamicCast<JSReadableStream*>(state->argument(0));
if (!stream)
return throwVMError(state, createTypeError(state, ASCIILiteral("ReadableStreamReader constructor parameter is not a ReadableStream")));
JSValue jsFunction = stream->get(state, Identifier::fromString(state, "getReader"));
CallData callData;
CallType callType = getCallData(jsFunction, callData);
MarkedArgumentBuffer noArguments;
return JSValue::encode(call(state, jsFunction, callType, callData, stream, noArguments));
}
开发者ID:edcwconan,项目名称:webkit,代码行数:13,代码来源:JSReadableStreamPrivateConstructors.cpp
示例3: makeGetterTypeErrorForBuiltins
EncodedJSValue JSC_HOST_CALL makeGetterTypeErrorForBuiltins(ExecState* execState)
{
ASSERT(execState);
ASSERT(execState->argumentCount() == 2);
VM& vm = execState->vm();
auto scope = DECLARE_CATCH_SCOPE(vm);
auto interfaceName = execState->uncheckedArgument(0).getString(execState);
ASSERT_UNUSED(scope, !scope.exception());
auto attributeName = execState->uncheckedArgument(1).getString(execState);
ASSERT(!scope.exception());
return JSValue::encode(createTypeError(execState, makeGetterTypeErrorMessage(interfaceName.utf8().data(), attributeName.utf8().data())));
}
开发者ID:eocanha,项目名称:webkit,代码行数:13,代码来源:JSDOMGlobalObject.cpp
示例4: impl
void JSPannerNode::setPanningModel(ExecState* exec, JSValue value)
{
PannerNode& imp = impl();
#if ENABLE(LEGACY_WEB_AUDIO)
if (value.isNumber()) {
uint32_t model = value.toUInt32(exec);
if (!imp.setPanningModel(model))
exec->vm().throwException(exec, createTypeError(exec, "Illegal panningModel"));
return;
}
#endif
if (value.isString()) {
String model = value.toString(exec)->value(exec);
if (model == "equalpower" || model == "HRTF" || model == "soundfield") {
imp.setPanningModel(model);
return;
}
}
exec->vm().throwException(exec, createTypeError(exec, "Illegal panningModel"));
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:23,代码来源:JSPannerNodeCustom.cpp
示例5: dateProtoFuncToJSON
EncodedJSValue JSC_HOST_CALL dateProtoFuncToJSON(ExecState* exec)
{
JSValue thisValue = exec->thisValue();
JSObject* object = jsCast<JSObject*>(thisValue.toThis(exec, NotStrictMode));
if (exec->hadException())
return JSValue::encode(jsNull());
JSValue toISOValue = object->get(exec, exec->vm().propertyNames->toISOString);
if (exec->hadException())
return JSValue::encode(jsNull());
CallData callData;
CallType callType = getCallData(toISOValue, callData);
if (callType == CallTypeNone)
return throwVMError(exec, createTypeError(exec, ASCIILiteral("toISOString is not a function")));
JSValue result = call(exec, asObject(toISOValue), callType, callData, object, exec->emptyList());
if (exec->hadException())
return JSValue::encode(jsNull());
if (result.isObject())
return throwVMError(exec, createTypeError(exec, ASCIILiteral("toISOString did not return a primitive value")));
return JSValue::encode(result);
}
开发者ID:chenbk85,项目名称:webkit2-wincairo,代码行数:23,代码来源:DatePrototype.cpp
示例6: impl
void JSOscillatorNode::setType(ExecState* exec, JSValue value)
{
OscillatorNode& imp = impl();
#if ENABLE(LEGACY_WEB_AUDIO)
if (value.isNumber()) {
uint32_t type = value.toUInt32(exec);
if (!imp.setType(type))
exec->vm().throwException(exec, createTypeError(exec, "Illegal OscillatorNode type"));
return;
}
#endif
if (value.isString()) {
String type = value.toString(exec)->value(exec);
if (type == "sine" || type == "square" || type == "sawtooth" || type == "triangle") {
imp.setType(type);
return;
}
}
exec->vm().throwException(exec, createTypeError(exec, "Illegal OscillatorNode type"));
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:23,代码来源:JSOscillatorNodeCustom.cpp
示例7: constructPromise
static EncodedJSValue JSC_HOST_CALL constructPromise(ExecState* exec)
{
if (!exec->argumentCount())
return throwVMError(exec, createTypeError(exec, "Expected at least one argument"));
JSValue function = exec->argument(0);
CallData callData;
CallType callType = getCallData(function, callData);
if (callType == CallTypeNone)
return throwVMError(exec, createTypeError(exec, "Expected function as as first argument"));
JSGlobalObject* globalObject = asInternalFunction(exec->callee())->globalObject();
// 1. Let promise be a new promise.
JSPromise* promise = JSPromise::createWithResolver(exec->vm(), globalObject);
// 2. Let resolver be promise's associated resolver.
JSPromiseResolver* resolver = promise->resolver();
// 3. Set init's callback this value to promise.
// 4. Invoke init with resolver passed as parameter.
MarkedArgumentBuffer initArguments;
initArguments.append(resolver);
call(exec, function, callType, callData, promise, initArguments);
// 5. If init threw an exception, catch it, and then, if resolver's resolved flag
// is unset, run resolver's reject with the thrown exception as argument.
if (exec->hadException()) {
JSValue exception = exec->exception();
exec->clearException();
resolver->rejectIfNotResolved(exec, exception);
}
return JSValue::encode(promise);
}
开发者ID:darionco,项目名称:JavaScriptCore-iOS,代码行数:37,代码来源:JSPromiseConstructor.cpp
示例8: JSPromisePrototypeFuncCatch
EncodedJSValue JSC_HOST_CALL JSPromisePrototypeFuncCatch(ExecState* exec)
{
JSPromise* thisObject = jsDynamicCast<JSPromise*>(exec->thisValue());
if (!thisObject)
return throwVMError(exec, createTypeError(exec, "Receiver of catch must be a Promise"));
JSValue rejectCallback = exec->argument(0);
if (!rejectCallback.isUndefined()) {
CallData callData;
CallType callType = getCallData(rejectCallback, callData);
if (callType == CallTypeNone)
return throwVMError(exec, createTypeError(exec, "Expected function or undefined as as first argument"));
}
JSFunction* callee = jsCast<JSFunction*>(exec->callee());
JSGlobalObject* globalObject = callee->globalObject();
// 1. Let promise be a new promise.
JSPromise* promise = JSPromise::createWithResolver(exec->vm(), globalObject);
// 2. Let resolver be promise's associated resolver.
JSPromiseResolver* resolver = promise->resolver();
// 3. Let fulfillCallback be a new promise callback for resolver and its fulfill algorithm.
InternalFunction* fulfillWrapper = JSPromiseCallback::create(exec, globalObject, globalObject->promiseCallbackStructure(), resolver, JSPromiseCallback::Fulfill);
// 4. Let rejectWrapper be a promise wrapper callback for resolver and rejectCallback if rejectCallback is
// not omitted and a promise callback for resolver and its reject algorithm otherwise.
InternalFunction* rejectWrapper = wrapCallback(exec, globalObject, rejectCallback, resolver, JSPromiseCallback::Reject);
// 5. Append fulfillWrapper and rejectWrapper to the context object.
thisObject->appendCallbacks(exec, fulfillWrapper, rejectWrapper);
// 6. Return promise.
return JSValue::encode(promise);
}
开发者ID:darionco,项目名称:JavaScriptCore-iOS,代码行数:36,代码来源:JSPromisePrototype.cpp
示例9: setData
EncodedJSValue setData(ExecState* exec)
{
JSDataView* dataView = jsDynamicCast<JSDataView*>(exec->thisValue());
if (!dataView)
return throwVMError(exec, createTypeError(exec, "Receiver of DataView method must be a DataView"));
if (exec->argumentCount() < 2)
return throwVMError(exec, createTypeError(exec, "Need at least two argument (the byteOffset and value)"));
unsigned byteOffset = exec->uncheckedArgument(0).toUInt32(exec);
if (exec->hadException())
return JSValue::encode(jsUndefined());
typename Adaptor::Type value = toNativeFromValue<Adaptor>(exec, exec->uncheckedArgument(1));
if (exec->hadException())
return JSValue::encode(jsUndefined());
bool littleEndian = false;
unsigned elementSize = sizeof(typename Adaptor::Type);
if (elementSize > 1 && exec->argumentCount() >= 3) {
littleEndian = exec->uncheckedArgument(2).toBoolean(exec);
if (exec->hadException())
return JSValue::encode(jsUndefined());
}
unsigned byteLength = dataView->length();
if (elementSize > byteLength || byteOffset > byteLength - elementSize)
return throwVMError(exec, createRangeError(exec, "Out of bounds access"));
if (needToFlipBytesIfLittleEndian(littleEndian))
value = flipBytes(value);
*reinterpret_cast<typename Adaptor::Type*>(static_cast<uint8_t*>(dataView->vector()) + byteOffset) = value;
return JSValue::encode(jsUndefined());
}
开发者ID:604339917,项目名称:JavaScriptCore-iOS-1,代码行数:36,代码来源:JSDataViewPrototype.cpp
示例10: jsTestOverridingNameGetterPrototypeFunctionAnotherFunction
EncodedJSValue JSC_HOST_CALL jsTestOverridingNameGetterPrototypeFunctionAnotherFunction(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSTestOverridingNameGetter::s_info))
return throwVMTypeError(exec);
JSTestOverridingNameGetter* castedThis = static_cast<JSTestOverridingNameGetter*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTestOverridingNameGetter::s_info);
TestOverridingNameGetter* impl = static_cast<TestOverridingNameGetter*>(castedThis->impl());
if (exec->argumentCount() < 1)
return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
const String& str(ustringToString(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toString(exec)->value(exec)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
impl->anotherFunction(str);
return JSValue::encode(jsUndefined());
}
开发者ID:sohocoke,项目名称:webkit,代码行数:16,代码来源:JSTestOverridingNameGetter.cpp
示例11: objectConstructorDefineProperty
EncodedJSValue JSC_HOST_CALL objectConstructorDefineProperty(ExecState* exec)
{
if (!exec->argument(0).isObject())
return throwVMError(exec, createTypeError(exec, ASCIILiteral("Properties can only be defined on Objects.")));
JSObject* O = asObject(exec->argument(0));
String propertyName = exec->argument(1).toString(exec)->value(exec);
if (exec->hadException())
return JSValue::encode(jsNull());
PropertyDescriptor descriptor;
if (!toPropertyDescriptor(exec, exec->argument(2), descriptor))
return JSValue::encode(jsNull());
ASSERT((descriptor.attributes() & Accessor) || (!descriptor.isAccessorDescriptor()));
ASSERT(!exec->hadException());
O->methodTable()->defineOwnProperty(O, exec, Identifier(exec, propertyName), descriptor, true);
return JSValue::encode(O);
}
开发者ID:166MMX,项目名称:openjdk.java.net-openjfx-8u40-rt,代码行数:16,代码来源:ObjectConstructor.cpp
示例12: jsMessagePortPrototypeFunctionRemoveEventListener
EncodedJSValue JSC_HOST_CALL jsMessagePortPrototypeFunctionRemoveEventListener(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSMessagePort::s_info))
return throwVMTypeError(exec);
JSMessagePort* castedThis = static_cast<JSMessagePort*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSMessagePort::s_info);
MessagePort* imp = static_cast<MessagePort*>(castedThis->impl());
if (exec->argumentCount() < 2)
return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
JSValue listener = exec->argument(1);
if (!listener.isObject())
return JSValue::encode(jsUndefined());
imp->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec));
return JSValue::encode(jsUndefined());
}
开发者ID:Xertz,项目名称:EAWebKit,代码行数:16,代码来源:JSMessagePort.cpp
示例13: jsHTMLKeygenElementPrototypeFunctionSetCustomValidity
EncodedJSValue JSC_HOST_CALL jsHTMLKeygenElementPrototypeFunctionSetCustomValidity(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSHTMLKeygenElement::s_info))
return throwVMTypeError(exec);
JSHTMLKeygenElement* castedThis = static_cast<JSHTMLKeygenElement*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSHTMLKeygenElement::s_info);
HTMLKeygenElement* imp = static_cast<HTMLKeygenElement*>(castedThis->impl());
if (exec->argumentCount() < 1)
return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
const String& error(valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
imp->setCustomValidity(error);
return JSValue::encode(jsUndefined());
}
开发者ID:Xertz,项目名称:EAWebKit,代码行数:17,代码来源:JSHTMLKeygenElement.cpp
示例14: createNotAConstructorError
JSObject* createNotAConstructorError(ExecState* exec, JSValue value, unsigned bytecodeOffset, CodeBlock* codeBlock)
{
int startOffset = 0;
int endOffset = 0;
int divotPoint = 0;
int line = codeBlock->expressionRangeForBytecodeOffset(exec, bytecodeOffset, divotPoint, startOffset, endOffset);
// We're in a "new" expression, so we need to skip over the "new.." part
int startPoint = divotPoint - (startOffset ? startOffset - 4 : 0); // -4 for "new "
const UChar* data = codeBlock->source()->data();
while (startPoint < divotPoint && isStrWhiteSpace(data[startPoint]))
startPoint++;
UString errorMessage = createErrorMessage(exec, codeBlock, line, startPoint, divotPoint, value, "not a constructor");
JSObject* exception = addErrorInfo(exec, createTypeError(exec, errorMessage), line, codeBlock->ownerExecutable()->source(), divotPoint, startOffset, endOffset);
return exception;
}
开发者ID:pelegri,项目名称:WebKit-PlayBook,代码行数:17,代码来源:ExceptionHelpers.cpp
示例15: constructJSMutationObserver
EncodedJSValue JSC_HOST_CALL constructJSMutationObserver(ExecState* exec)
{
if (exec->argumentCount() < 1)
return throwVMError(exec, createNotEnoughArgumentsError(exec));
JSObject* object = exec->argument(0).getObject();
CallData callData;
if (!object || object->methodTable()->getCallData(object, callData) == CallType::None)
return throwVMError(exec, createTypeError(exec, "Callback argument must be a function"));
DOMConstructorObject* jsConstructor = jsCast<DOMConstructorObject*>(exec->callee());
auto callback = JSMutationCallback::create(object, jsConstructor->globalObject());
JSObject* jsObserver = asObject(toJS(exec, jsConstructor->globalObject(), MutationObserver::create(WTFMove(callback))));
PrivateName propertyName;
jsObserver->putDirect(jsConstructor->globalObject()->vm(), propertyName, object);
return JSValue::encode(jsObserver);
}
开发者ID:caiolima,项目名称:webkit,代码行数:17,代码来源:JSMutationObserverCustom.cpp
示例16: throwError
bool JSObject::hasInstance(ExecState* exec, JSValue value, JSValue proto)
{
if (!value.isObject())
return false;
if (!proto.isObject()) {
throwError(exec, createTypeError(exec, "instanceof called on an object with an invalid prototype property."));
return false;
}
JSObject* object = asObject(value);
while ((object = object->prototype().getObject())) {
if (proto == object)
return true;
}
return false;
}
开发者ID:mikedougherty,项目名称:webkit,代码行数:17,代码来源:JSObject.cpp
示例17: jsAudioBufferSourceNodePrototypeFunctionNoteOff
EncodedJSValue JSC_HOST_CALL jsAudioBufferSourceNodePrototypeFunctionNoteOff(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSAudioBufferSourceNode::s_info))
return throwVMTypeError(exec);
JSAudioBufferSourceNode* castedThis = static_cast<JSAudioBufferSourceNode*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSAudioBufferSourceNode::s_info);
AudioBufferSourceNode* imp = static_cast<AudioBufferSourceNode*>(castedThis->impl());
if (exec->argumentCount() < 1)
return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
float when(exec->argument(0).toFloat(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
imp->noteOff(when);
return JSValue::encode(jsUndefined());
}
开发者ID:Xertz,项目名称:EAWebKit,代码行数:17,代码来源:JSAudioBufferSourceNode.cpp
示例18: jsTouchListPrototypeFunctionItem
EncodedJSValue JSC_HOST_CALL jsTouchListPrototypeFunctionItem(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSTouchList::s_info))
return throwVMTypeError(exec);
JSTouchList* castedThis = static_cast<JSTouchList*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTouchList::s_info);
TouchList* imp = static_cast<TouchList*>(castedThis->impl());
if (exec->argumentCount() < 1)
return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
unsigned index(exec->argument(0).toUInt32(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->item(index)));
return JSValue::encode(result);
}
开发者ID:Xertz,项目名称:EAWebKit,代码行数:18,代码来源:JSTouchList.cpp
示例19: objectProtoFuncDefineSetter
EncodedJSValue JSC_HOST_CALL objectProtoFuncDefineSetter(ExecState* exec)
{
JSObject* thisObject = exec->thisValue().toThis(exec, StrictMode).toObject(exec);
if (exec->hadException())
return JSValue::encode(jsUndefined());
JSValue set = exec->argument(1);
CallData callData;
if (getCallData(set, callData) == CallTypeNone)
return throwVMError(exec, createTypeError(exec, ASCIILiteral("invalid setter usage")));
PropertyDescriptor descriptor;
descriptor.setSetter(set);
descriptor.setEnumerable(true);
descriptor.setConfigurable(true);
thisObject->methodTable(exec->vm())->defineOwnProperty(thisObject, exec, exec->argument(0).toString(exec)->toIdentifier(exec), descriptor, false);
return JSValue::encode(jsUndefined());
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:19,代码来源:ObjectPrototype.cpp
示例20: jsDOMApplicationCachePrototypeFunctionDispatchEvent
EncodedJSValue JSC_HOST_CALL jsDOMApplicationCachePrototypeFunctionDispatchEvent(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSDOMApplicationCache::s_info))
return throwVMTypeError(exec);
JSDOMApplicationCache* castedThis = static_cast<JSDOMApplicationCache*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSDOMApplicationCache::s_info);
DOMApplicationCache* imp = static_cast<DOMApplicationCache*>(castedThis->impl());
if (exec->argumentCount() < 1)
return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
ExceptionCode ec = 0;
Event* evt(toEvent(exec->argument(0)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
JSC::JSValue result = jsBoolean(imp->dispatchEvent(evt, ec));
setDOMException(exec, ec);
return JSValue::encode(result);
}
开发者ID:Xertz,项目名称:EAWebKit,代码行数:20,代码来源:JSDOMApplicationCache.cpp
注:本文中的createTypeError函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论