void InspectorRuntimeAgent::parse(ErrorString*, const String& expression, Inspector::TypeBuilder::Runtime::SyntaxErrorType::Enum* result, Inspector::TypeBuilder::OptOutput<String>* message, RefPtr<Inspector::TypeBuilder::Runtime::ErrorRange>& range) { VM* vm = JSDOMWindowBase::commonVM(); JSLockHolder lock(vm); ParserError error; checkSyntax(*vm, JSC::makeSource(expression), error); switch (error.m_syntaxErrorType) { case ParserError::SyntaxErrorNone: *result = Inspector::TypeBuilder::Runtime::SyntaxErrorType::None; break; case ParserError::SyntaxErrorIrrecoverable: *result = Inspector::TypeBuilder::Runtime::SyntaxErrorType::Irrecoverable; break; case ParserError::SyntaxErrorUnterminatedLiteral: *result = Inspector::TypeBuilder::Runtime::SyntaxErrorType::UnterminatedLiteral; break; case ParserError::SyntaxErrorRecoverable: *result = Inspector::TypeBuilder::Runtime::SyntaxErrorType::Recoverable; break; } if (error.m_syntaxErrorType != ParserError::SyntaxErrorNone) { *message = error.m_message; range = buildErrorRangeObject(error.m_token.m_location); } }
void InspectorRuntimeAgent::parse(ErrorString&, const String& expression, Inspector::Protocol::Runtime::SyntaxErrorType* result, Inspector::Protocol::OptOutput<String>* message, RefPtr<Inspector::Protocol::Runtime::ErrorRange>& range) { JSLockHolder lock(m_vm); ParserError error; checkSyntax(m_vm, JSC::makeSource(expression), error); switch (error.syntaxErrorType()) { case ParserError::SyntaxErrorNone: *result = Inspector::Protocol::Runtime::SyntaxErrorType::None; break; case ParserError::SyntaxErrorIrrecoverable: *result = Inspector::Protocol::Runtime::SyntaxErrorType::Irrecoverable; break; case ParserError::SyntaxErrorUnterminatedLiteral: *result = Inspector::Protocol::Runtime::SyntaxErrorType::UnterminatedLiteral; break; case ParserError::SyntaxErrorRecoverable: *result = Inspector::Protocol::Runtime::SyntaxErrorType::Recoverable; break; } if (error.syntaxErrorType() != ParserError::SyntaxErrorNone) { *message = error.message(); range = buildErrorRangeObject(error.token().m_location); } }