本文整理汇总了C++中createSyntaxError函数的典型用法代码示例。如果您正苦于以下问题:C++ createSyntaxError函数的具体用法?C++ createSyntaxError怎么用?C++ createSyntaxError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了createSyntaxError函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: constructRegExp
// ECMA 15.10.4
JSObject* constructRegExp(ExecState* exec, JSGlobalObject* globalObject, const ArgList& args)
{
JSValue arg0 = args.at(0);
JSValue arg1 = args.at(1);
if (arg0.inherits(&RegExpObject::s_info)) {
if (!arg1.isUndefined())
return throwError(exec, createTypeError(exec, "Cannot supply flags when constructing one RegExp from another."));
return asObject(arg0);
}
UString pattern = arg0.isUndefined() ? UString("") : arg0.toString(exec);
if (exec->hadException())
return 0;
RegExpFlags flags = NoFlags;
if (!arg1.isUndefined()) {
flags = regExpFlags(arg1.toString(exec));
if (exec->hadException())
return 0;
if (flags == InvalidFlags)
return throwError(exec, createSyntaxError(exec, "Invalid flags supplied to RegExp constructor."));
}
RefPtr<RegExp> regExp = exec->globalData().regExpCache()->lookupOrCreate(pattern, flags);
if (!regExp->isValid())
return throwError(exec, createSyntaxError(exec, regExp->errorMessage()));
return new (exec) RegExpObject(exec->lexicalGlobalObject(), globalObject->regExpStructure(), regExp.release());
}
开发者ID:Eightomic,项目名称:phantomjs,代码行数:30,代码来源:RegExpConstructor.cpp
示例2: throwError
JSC::JSValue JSAudioNode::connect(JSC::ExecState* exec)
{
if (exec->argumentCount() < 1)
return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
unsigned outputIndex = 0;
unsigned inputIndex = 0;
AudioNode* destinationNode = toAudioNode(exec->argument(0));
if (!destinationNode)
return throwError(exec, createSyntaxError(exec, "Invalid destination node"));
if (exec->argumentCount() > 1)
outputIndex = exec->argument(1).toInt32(exec);
if (exec->argumentCount() > 2)
inputIndex = exec->argument(2).toInt32(exec);
AudioNode* audioNode = static_cast<AudioNode*>(impl());
bool success = audioNode->connect(destinationNode, outputIndex, inputIndex);
if (!success)
return throwError(exec, createSyntaxError(exec, "Invalid index parameter"));
return JSC::jsUndefined();
}
开发者ID:0omega,项目名称:platform_external_webkit,代码行数:25,代码来源:JSAudioNodeCustom.cpp
示例3: constructRegExp
// ECMA 15.10.4
JSObject* constructRegExp(ExecState* exec, JSGlobalObject* globalObject, const ArgList& args, bool callAsConstructor)
{
JSValue arg0 = args.at(0);
JSValue arg1 = args.at(1);
if (arg0.inherits(&RegExpObject::s_info)) {
if (!arg1.isUndefined())
return throwError(exec, createTypeError(exec, "Cannot supply flags when constructing one RegExp from another."));
// If called as a function, this just returns the first argument (see 15.10.3.1).
if (callAsConstructor) {
RegExp* regExp = static_cast<RegExpObject*>(asObject(arg0))->regExp();
return RegExpObject::create(exec, globalObject, globalObject->regExpStructure(), regExp);
}
return asObject(arg0);
}
UString pattern = arg0.isUndefined() ? UString("") : arg0.toString(exec)->value(exec);
if (exec->hadException())
return 0;
RegExpFlags flags = NoFlags;
if (!arg1.isUndefined()) {
flags = regExpFlags(arg1.toString(exec)->value(exec));
if (exec->hadException())
return 0;
if (flags == InvalidFlags)
return throwError(exec, createSyntaxError(exec, "Invalid flags supplied to RegExp constructor."));
}
RegExp* regExp = RegExp::create(exec->globalData(), pattern, flags);
if (!regExp->isValid())
return throwError(exec, createSyntaxError(exec, regExp->errorMessage()));
return RegExpObject::create(exec, exec->lexicalGlobalObject(), globalObject->regExpStructure(), regExp);
}
开发者ID:CannedFish,项目名称:deepin-webkit,代码行数:35,代码来源:RegExpConstructor.cpp
示例4: throwVMError
EncodedJSValue JSC_HOST_CALL JSAudioContextConstructor::constructJSAudioContext(ExecState* exec)
{
JSAudioContextConstructor* jsConstructor = jsCast<JSAudioContextConstructor*>(exec->callee());
if (!jsConstructor)
return throwVMError(exec, createReferenceError(exec, "AudioContext constructor callee is unavailable"));
ScriptExecutionContext* scriptExecutionContext = jsConstructor->scriptExecutionContext();
if (!scriptExecutionContext)
return throwVMError(exec, createReferenceError(exec, "AudioContext constructor script execution context is unavailable"));
if (!scriptExecutionContext->isDocument())
return throwVMError(exec, createReferenceError(exec, "AudioContext constructor called in a script execution context which is not a document"));
Document* document = static_cast<Document*>(scriptExecutionContext);
RefPtr<AudioContext> audioContext;
if (!exec->argumentCount()) {
// Constructor for default AudioContext which talks to audio hardware.
ExceptionCode ec = 0;
audioContext = AudioContext::create(document, ec);
if (ec) {
setDOMException(exec, ec);
return JSValue::encode(JSValue());
}
if (!audioContext.get())
return throwVMError(exec, createSyntaxError(exec, "audio resources unavailable for AudioContext construction"));
} else {
// Constructor for offline (render-target) AudioContext which renders into an AudioBuffer.
// new AudioContext(in unsigned long numberOfChannels, in unsigned long numberOfFrames, in float sampleRate);
if (exec->argumentCount() < 3)
return throwVMError(exec, createNotEnoughArgumentsError(exec));
int32_t numberOfChannels = exec->argument(0).toInt32(exec);
int32_t numberOfFrames = exec->argument(1).toInt32(exec);
float sampleRate = exec->argument(2).toFloat(exec);
if (numberOfChannels <= 0 || numberOfChannels > 10)
return throwVMError(exec, createSyntaxError(exec, "Invalid number of channels"));
if (numberOfFrames <= 0)
return throwVMError(exec, createSyntaxError(exec, "Invalid number of frames"));
if (sampleRate <= 0)
return throwVMError(exec, createSyntaxError(exec, "Invalid sample rate"));
ExceptionCode ec = 0;
audioContext = AudioContext::createOfflineContext(document, numberOfChannels, numberOfFrames, sampleRate, ec);
if (ec) {
setDOMException(exec, ec);
return throwVMError(exec, createSyntaxError(exec, "Error creating OfflineAudioContext"));
}
}
if (!audioContext.get())
return throwVMError(exec, createReferenceError(exec, "Error creating AudioContext"));
return JSValue::encode(CREATE_DOM_WRAPPER(exec, jsConstructor->globalObject(), AudioContext, audioContext.get()));
}
开发者ID:Moondee,项目名称:Artemis,代码行数:59,代码来源:JSAudioContextCustom.cpp
示例5: toAudioBuffer
void JSAudioBufferSourceNode::setBuffer(ExecState* exec, JSValue value)
{
AudioBufferSourceNode* imp = static_cast<AudioBufferSourceNode*>(impl());
AudioBuffer* buffer = toAudioBuffer(value);
if (!buffer) {
throwError(exec, createSyntaxError(exec, "Value is not of type AudioBuffer"));
return;
}
if (!imp->setBuffer(buffer))
throwError(exec, createSyntaxError(exec, "AudioBuffer unsupported number of channels"));
}
开发者ID:CannedFish,项目名称:deepin-webkit,代码行数:12,代码来源:JSAudioBufferSourceNodeCustom.cpp
示例6: jsDataViewPrototypeFunctionSetFloat64
EncodedJSValue JSC_HOST_CALL jsDataViewPrototypeFunctionSetFloat64(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSDataView::s_info))
return throwVMTypeError(exec);
JSDataView* castedThis = static_cast<JSDataView*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSDataView::s_info);
DataView* imp = static_cast<DataView*>(castedThis->impl());
if (exec->argumentCount() < 2)
return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
ExceptionCode ec = 0;
unsigned byteOffset(exec->argument(0).toUInt32(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
double value(exec->argument(1).toNumber(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
int argsCount = exec->argumentCount();
if (argsCount <= 2) {
imp->setFloat64(byteOffset, value, ec);
setDOMException(exec, ec);
return JSValue::encode(jsUndefined());
}
bool littleEndian(exec->argument(2).toBoolean(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
imp->setFloat64(byteOffset, value, littleEndian, ec);
setDOMException(exec, ec);
return JSValue::encode(jsUndefined());
}
开发者ID:mulriple,项目名称:Webkit-Projects,代码行数:33,代码来源:JSDataView.cpp
示例7: jsDatabaseSyncPrototypeFunctionChangeVersion
EncodedJSValue JSC_HOST_CALL jsDatabaseSyncPrototypeFunctionChangeVersion(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSDatabaseSync::s_info))
return throwVMTypeError(exec);
JSDatabaseSync* castedThis = static_cast<JSDatabaseSync*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSDatabaseSync::s_info);
DatabaseSync* imp = static_cast<DatabaseSync*>(castedThis->impl());
if (exec->argumentCount() < 2)
return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
ExceptionCode ec = 0;
const String& oldVersion(ustringToString(exec->argument(0).toString(exec)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
const String& newVersion(ustringToString(exec->argument(1).toString(exec)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
RefPtr<SQLTransactionSyncCallback> callback;
if (exec->argumentCount() > 2 && !exec->argument(2).isNull() && !exec->argument(2).isUndefined()) {
if (!exec->argument(2).isObject()) {
setDOMException(exec, TYPE_MISMATCH_ERR);
return JSValue::encode(jsUndefined());
}
callback = JSSQLTransactionSyncCallback::create(asObject(exec->argument(2)), castedThis->globalObject());
}
imp->changeVersion(oldVersion, newVersion, callback, ec);
setDOMException(exec, ec);
return JSValue::encode(jsUndefined());
}
开发者ID:mulriple,项目名称:Webkit-Projects,代码行数:30,代码来源:JSDatabaseSync.cpp
示例8: jsSVGNumberListPrototypeFunctionReplaceItem
EncodedJSValue JSC_HOST_CALL jsSVGNumberListPrototypeFunctionReplaceItem(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSSVGNumberList::s_info))
return throwVMTypeError(exec);
JSSVGNumberList* castedThis = static_cast<JSSVGNumberList*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGNumberList::s_info);
SVGListPropertyTearOff<SVGNumberList> * imp = static_cast<SVGListPropertyTearOff<SVGNumberList> *>(castedThis->impl());
if (exec->argumentCount() < 2)
return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
ExceptionCode ec = 0;
if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSSVGNumber::s_info))
return throwVMTypeError(exec);
SVGPropertyTearOff<float>* item(toSVGNumber(exec->argument(0)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
unsigned index(exec->argument(1).toUInt32(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->replaceItem(item, index, ec)));
setDOMException(exec, ec);
return JSValue::encode(result);
}
开发者ID:mulriple,项目名称:Webkit-Projects,代码行数:25,代码来源:JSSVGNumberList.cpp
示例9: throwError
// Custom functions
JSValue JSXMLHttpRequest::open(ExecState* exec)
{
if (exec->argumentCount() < 2)
return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
const KURL& url = impl()->scriptExecutionContext()->completeURL(ustringToString(exec->argument(1).toString(exec)));
String method = ustringToString(exec->argument(0).toString(exec));
ExceptionCode ec = 0;
if (exec->argumentCount() >= 3) {
bool async = exec->argument(2).toBoolean(exec);
if (exec->argumentCount() >= 4 && !exec->argument(3).isUndefined()) {
String user = valueToStringWithNullCheck(exec, exec->argument(3));
if (exec->argumentCount() >= 5 && !exec->argument(4).isUndefined()) {
String password = valueToStringWithNullCheck(exec, exec->argument(4));
impl()->open(method, url, async, user, password, ec);
} else
impl()->open(method, url, async, user, ec);
} else
impl()->open(method, url, async, ec);
} else
impl()->open(method, url, ec);
setDOMException(exec, ec);
return jsUndefined();
}
开发者ID:azrul2202,项目名称:WebKit-Smartphone,代码行数:29,代码来源:JSXMLHttpRequestCustom.cpp
示例10: throwError
JSValue JSWebSocket::send(ExecState* exec)
{
if (!exec->argumentCount())
return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
JSValue message = exec->argument(0);
ExceptionCode ec = 0;
bool result;
if (message.inherits(&JSArrayBuffer::s_info))
result = impl()->send(toArrayBuffer(message), ec);
else if (message.inherits(&JSBlob::s_info))
result = impl()->send(toBlob(message), ec);
else {
String stringMessage = ustringToString(message.toString(exec)->value(exec));
if (exec->hadException())
return jsUndefined();
result = impl()->send(stringMessage, ec);
}
if (ec) {
setDOMException(exec, ec);
return jsUndefined();
}
return jsBoolean(result);
}
开发者ID:CannedFish,项目名称:deepin-webkit,代码行数:25,代码来源:JSWebSocketCustom.cpp
示例11: jsSVGColorPrototypeFunctionSetColor
EncodedJSValue JSC_HOST_CALL jsSVGColorPrototypeFunctionSetColor(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSSVGColor::s_info))
return throwVMTypeError(exec);
JSSVGColor* castedThis = static_cast<JSSVGColor*>(asObject(thisValue));
ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGColor::s_info);
SVGColor* imp = static_cast<SVGColor*>(castedThis->impl());
if (exec->argumentCount() < 3)
return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
ExceptionCode ec = 0;
unsigned short colorType(exec->argument(0).toUInt32(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
const String& rgbColor(ustringToString(exec->argument(1).toString(exec)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
const String& iccColor(ustringToString(exec->argument(2).toString(exec)));
if (exec->hadException())
return JSValue::encode(jsUndefined());
imp->setColor(colorType, rgbColor, iccColor, ec);
setDOMException(exec, ec);
return JSValue::encode(jsUndefined());
}
开发者ID:mulriple,项目名称:Webkit-Projects,代码行数:25,代码来源:JSSVGColor.cpp
示例12: regExpProtoFuncCompile
EncodedJSValue JSC_HOST_CALL regExpProtoFuncCompile(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&RegExpObject::info))
return throwVMTypeError(exec);
RefPtr<RegExp> regExp;
JSValue arg0 = exec->argument(0);
JSValue arg1 = exec->argument(1);
if (arg0.inherits(&RegExpObject::info)) {
if (!arg1.isUndefined())
return throwVMError(exec, createTypeError(exec, "Cannot supply flags when constructing one RegExp from another."));
regExp = asRegExpObject(arg0)->regExp();
} else {
UString pattern = !exec->argumentCount() ? UString("") : arg0.toString(exec);
UString flags = arg1.isUndefined() ? UString("") : arg1.toString(exec);
regExp = exec->globalData().regExpCache()->lookupOrCreate(pattern, flags);
}
if (!regExp->isValid())
return throwVMError(exec, createSyntaxError(exec, makeString("Invalid regular expression: ", regExp->errorMessage())));
asRegExpObject(thisValue)->setRegExp(regExp.release());
asRegExpObject(thisValue)->setLastIndex(0);
return JSValue::encode(jsUndefined());
}
开发者ID:azrul2202,项目名称:WebKit-Smartphone,代码行数:27,代码来源:RegExpPrototype.cpp
示例13: throwVMError
EncodedJSValue JSC_HOST_CALL JSSharedWorkerConstructor::constructJSSharedWorker(ExecState* exec)
{
JSSharedWorkerConstructor* jsConstructor = static_cast<JSSharedWorkerConstructor*>(exec->callee());
if (exec->argumentCount() < 1)
return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
UString scriptURL = exec->argument(0).toString(exec);
UString name;
if (exec->argumentCount() > 1)
name = exec->argument(1).toString(exec);
if (exec->hadException())
return JSValue::encode(JSValue());
// FIXME: We need to use both the dynamic scope and the lexical scope (dynamic scope for resolving the worker URL)
DOMWindow* window = asJSDOMWindow(exec->lexicalGlobalObject())->impl();
ExceptionCode ec = 0;
RefPtr<SharedWorker> worker = SharedWorker::create(ustringToString(scriptURL), ustringToString(name), window->document(), ec);
if (ec) {
setDOMException(exec, ec);
return JSValue::encode(JSValue());
}
return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), worker.release())));
}
开发者ID:mulriple,项目名称:Webkit-Projects,代码行数:26,代码来源:JSSharedWorkerCustom.cpp
示例14: setDOMException
JSValue JSSVGLength::convertToSpecifiedUnits(ExecState* exec)
{
if (impl()->role() == AnimValRole) {
setDOMException(exec, NO_MODIFICATION_ALLOWED_ERR);
return jsUndefined();
}
SVGLength& podImp = impl()->propertyReference();
if (exec->argumentCount() < 1)
return throwError(exec, createSyntaxError(exec, "Not enough arguments"));
unsigned short unitType = exec->argument(0).toUInt32(exec);
if (exec->hadException())
return jsUndefined();
ExceptionCode ec = 0;
SVGLengthContext lengthContext(impl()->contextElement());
podImp.convertToSpecifiedUnits(unitType, lengthContext, ec);
if (ec) {
setDOMException(exec, ec);
return jsUndefined();
}
impl()->commitChange();
return jsUndefined();
}
开发者ID:CannedFish,项目名称:deepin-webkit,代码行数:27,代码来源:JSSVGLengthCustom.cpp
示例15: objectProtoFuncDefineSetter
EncodedJSValue JSC_HOST_CALL objectProtoFuncDefineSetter(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
CallData callData;
if (getCallData(exec->argument(1), callData) == CallTypeNone)
return throwVMError(exec, createSyntaxError(exec, "invalid setter usage"));
thisValue.toThisObject(exec)->defineSetter(exec, Identifier(exec, exec->argument(0).toString(exec)), asObject(exec->argument(1)));
return JSValue::encode(jsUndefined());
}
开发者ID:dankurka,项目名称:webkit_titanium,代码行数:9,代码来源:ObjectPrototype.cpp
示例16: addErrorInfo
JSObject* ProgramExecutable::checkSyntax(ExecState* exec)
{
int errLine;
UString errMsg;
JSGlobalData* globalData = &exec->globalData();
JSGlobalObject* lexicalGlobalObject = exec->lexicalGlobalObject();
RefPtr<ProgramNode> programNode = globalData->parser->parse<ProgramNode>(globalData, lexicalGlobalObject->debugger(), exec, m_source, &errLine, &errMsg);
if (!programNode)
return addErrorInfo(globalData, createSyntaxError(lexicalGlobalObject, errMsg), errLine, m_source);
return 0;
}
开发者ID:Treeeater,项目名称:Webkit,代码行数:11,代码来源:Executable.cpp
示例17: regExpProtoFuncCompile
EncodedJSValue JSC_HOST_CALL regExpProtoFuncCompile(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&RegExpObject::s_info))
return throwVMTypeError(exec);
RegExp* regExp;
JSValue arg0 = exec->argument(0);
JSValue arg1 = exec->argument(1);
if (arg0.isSymbolic() || arg1.isSymbolic()) {
Statistics::statistics()->accumulate("Concolic::MissingInstrumentation::regExpProtoFuncCompile", 1);
}
if (arg0.inherits(&RegExpObject::s_info)) {
if (!arg1.isUndefined())
return throwVMError(exec, createTypeError(exec, "Cannot supply flags when constructing one RegExp from another."));
regExp = asRegExpObject(arg0)->regExp();
} else {
UString pattern = !exec->argumentCount() ? UString("") : arg0.toString(exec)->value(exec);
if (exec->hadException())
return JSValue::encode(jsUndefined());
RegExpFlags flags = NoFlags;
if (!arg1.isUndefined()) {
flags = regExpFlags(arg1.toString(exec)->value(exec));
if (exec->hadException())
return JSValue::encode(jsUndefined());
if (flags == InvalidFlags)
return throwVMError(exec, createSyntaxError(exec, "Invalid flags supplied to RegExp constructor."));
}
regExp = RegExp::create(exec->globalData(), pattern, flags);
}
if (!regExp->isValid())
return throwVMError(exec, createSyntaxError(exec, regExp->errorMessage()));
asRegExpObject(thisValue)->setRegExp(exec->globalData(), regExp);
asRegExpObject(thisValue)->setLastIndex(exec, 0);
return JSValue::encode(jsUndefined());
}
开发者ID:cs-au-dk,项目名称:Artemis,代码行数:41,代码来源:RegExpPrototype.cpp
示例18: throwVMError
EncodedJSValue JSC_HOST_CALL JSWebSocketConstructor::constructJSWebSocket(ExecState* exec)
{
JSWebSocketConstructor* jsConstructor = static_cast<JSWebSocketConstructor*>(exec->callee());
ScriptExecutionContext* context = jsConstructor->scriptExecutionContext();
if (!context)
return throwVMError(exec, createReferenceError(exec, "WebSocket constructor associated document is unavailable"));
if (!exec->argumentCount())
return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
String urlString = ustringToString(exec->argument(0).toString(exec)->value(exec));
if (exec->hadException())
return throwVMError(exec, createSyntaxError(exec, "wrong URL"));
RefPtr<WebSocket> webSocket = WebSocket::create(context);
ExceptionCode ec = 0;
if (exec->argumentCount() < 2)
webSocket->connect(urlString, ec);
else {
JSValue protocolsValue = exec->argument(1);
if (isJSArray(protocolsValue)) {
Vector<String> protocols;
JSArray* protocolsArray = asArray(protocolsValue);
for (unsigned i = 0; i < protocolsArray->length(); ++i) {
String protocol = ustringToString(protocolsArray->getIndex(i).toString(exec)->value(exec));
if (exec->hadException())
return JSValue::encode(JSValue());
protocols.append(protocol);
}
webSocket->connect(urlString, protocols, ec);
} else {
String protocol = ustringToString(protocolsValue.toString(exec)->value(exec));
if (exec->hadException())
return JSValue::encode(JSValue());
webSocket->connect(urlString, protocol, ec);
}
}
setDOMException(exec, ec);
return JSValue::encode(CREATE_DOM_WRAPPER(exec, jsConstructor->globalObject(), WebSocket, webSocket.get()));
}
开发者ID:CannedFish,项目名称:deepin-webkit,代码行数:39,代码来源:JSWebSocketCustom.cpp
示例19: visit
boost::any visit( BooleanConstant booleanConstant ) {
if( currentTokenIs(TokenType::KeywordTrue) )
booleanConstant->value = true;
else if( currentTokenIs(TokenType::KeywordFalse) )
booleanConstant->value = false;
else
throw createSyntaxError( "Expected 'true' or 'false'" );
extractToken();
return boost::any();
}
开发者ID:vanderlokken,项目名称:8b,代码行数:13,代码来源:Parser.cpp
示例20: constructRegExp
// ECMA 15.10.4
JSObject* constructRegExp(ExecState* exec, JSGlobalObject* globalObject, const ArgList& args, JSValue newTarget)
{
JSValue arg0 = args.at(0);
JSValue arg1 = args.at(1);
if (arg0.inherits(RegExpObject::info())) {
if (!arg1.isUndefined())
return exec->vm().throwException(exec, createTypeError(exec, ASCIILiteral("Cannot supply flags when constructing one RegExp from another.")));
// If called as a function, this just returns the first argument (see 15.10.3.1).
if (newTarget != jsUndefined()) {
RegExp* regExp = static_cast<RegExpObject*>(asObject(arg0))->regExp();
return RegExpObject::create(exec->vm(), getRegExpStructure(exec, globalObject, newTarget), regExp);
}
return asObject(arg0);
}
String pattern = arg0.isUndefined() ? emptyString() : arg0.toString(exec)->value(exec);
if (exec->hadException())
return 0;
RegExpFlags flags = NoFlags;
if (!arg1.isUndefined()) {
flags = regExpFlags(arg1.toString(exec)->value(exec));
if (exec->hadException())
return 0;
if (flags == InvalidFlags)
return exec->vm().throwException(exec, createSyntaxError(exec, ASCIILiteral("Invalid flags supplied to RegExp constructor.")));
}
VM& vm = exec->vm();
RegExp* regExp = RegExp::create(vm, pattern, flags);
if (!regExp->isValid())
return vm.throwException(exec, createSyntaxError(exec, regExp->errorMessage()));
return RegExpObject::create(vm, getRegExpStructure(exec, globalObject, newTarget), regExp);
}
开发者ID:jeff-jenness,项目名称:webkit,代码行数:38,代码来源:RegExpConstructor.cpp
注:本文中的createSyntaxError函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论