Index: Source/bindings/v8/ScriptDebugServer.cpp |
diff --git a/Source/bindings/v8/ScriptDebugServer.cpp b/Source/bindings/v8/ScriptDebugServer.cpp |
index ee11d9ef1322dc98d3d4ed43b2825d55dfe3c9df..3f385e35a19d01f1e48d88c6b53c47cf73d24026 100644 |
--- a/Source/bindings/v8/ScriptDebugServer.cpp |
+++ b/Source/bindings/v8/ScriptDebugServer.cpp |
@@ -298,13 +298,23 @@ bool ScriptDebugServer::setScriptSource(const String& sourceID, const String& ne |
// Compile error. |
case 1: |
{ |
+ V8StringResource<WithUndefinedOrNullCheck> message(resultTuple->Get(2)); |
+ if (!message.prepare()) { |
+ *error = "Unknown error."; |
+ return false; |
+ } |
RefPtr<TypeBuilder::Debugger::SetScriptSourceError::CompileError> compileError = |
TypeBuilder::Debugger::SetScriptSourceError::CompileError::create() |
- .setMessage(toCoreStringWithUndefinedOrNullCheck(resultTuple->Get(2))) |
+ .setMessage(message) |
pfeldman
2013/12/12 16:11:24
Same here, we know it is a string. See https://cod
|
.setLineNumber(resultTuple->Get(3)->ToInteger()->Value()) |
.setColumnNumber(resultTuple->Get(4)->ToInteger()->Value()); |
- *error = toCoreStringWithUndefinedOrNullCheck(resultTuple->Get(1)); |
+ V8StringResource<WithUndefinedOrNullCheck> errorResource(resultTuple->Get(1)); |
pfeldman
2013/12/12 16:11:24
ditto
|
+ if (!errorResource.prepare()) { |
+ *error = "Unknown error."; |
+ return false; |
+ } |
+ *error = errorResource; |
errorData = TypeBuilder::Debugger::SetScriptSourceError::create(); |
errorData->setCompileError(compileError); |
return false; |
@@ -383,8 +393,10 @@ void ScriptDebugServer::handleProgramBreak(v8::Handle<v8::Object> executionState |
Vector<String> breakpointIds; |
if (!hitBreakpointNumbers.IsEmpty()) { |
breakpointIds.resize(hitBreakpointNumbers->Length()); |
- for (size_t i = 0; i < hitBreakpointNumbers->Length(); i++) |
- breakpointIds[i] = toCoreStringWithUndefinedOrNullCheck(hitBreakpointNumbers->Get(i)); |
+ for (size_t i = 0; i < hitBreakpointNumbers->Length(); i++) { |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithUndefinedOrNullCheck>, hitBreakpointNumber, hitBreakpointNumbers->Get(i)); |
+ breakpointIds[i] = hitBreakpointNumber; |
+ } |
} |
m_executionState.set(m_isolate, executionState); |
@@ -488,12 +500,15 @@ void ScriptDebugServer::handleV8DebugEvent(const v8::Debug::EventDetails& eventD |
void ScriptDebugServer::dispatchDidParseSource(ScriptDebugListener* listener, v8::Handle<v8::Object> object) |
{ |
- String sourceID = toCoreStringWithUndefinedOrNullCheck(object->Get(v8AtomicString(m_isolate, "id"))); |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithUndefinedOrNullCheck>, sourceID, object->Get(v8AtomicString(m_isolate, "id"))); |
pfeldman
2013/12/12 16:11:24
These are of known types: https://code.google.com/
|
ScriptDebugListener::Script script; |
- script.url = toCoreStringWithUndefinedOrNullCheck(object->Get(v8AtomicString(m_isolate, "name"))); |
- script.source = toCoreStringWithUndefinedOrNullCheck(object->Get(v8AtomicString(m_isolate, "source"))); |
- script.sourceMappingURL = toCoreStringWithUndefinedOrNullCheck(object->Get(v8AtomicString(m_isolate, "sourceMappingURL"))); |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithUndefinedOrNullCheck>, url, object->Get(v8AtomicString(m_isolate, "name"))); |
+ script.url = url; |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithUndefinedOrNullCheck>, source, object->Get(v8AtomicString(m_isolate, "source"))); |
+ script.source = source; |
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithUndefinedOrNullCheck>, sourceMappingURL, object->Get(v8AtomicString(m_isolate, "sourceMappingURL"))); |
+ script.sourceMappingURL = sourceMappingURL; |
pfeldman
2013/12/12 16:11:24
Hm. This seems NULL. Adding vsevik for this.
|
script.startLine = object->Get(v8AtomicString(m_isolate, "startLine"))->ToInteger()->Value(); |
script.startColumn = object->Get(v8AtomicString(m_isolate, "startColumn"))->ToInteger()->Value(); |
script.endLine = object->Get(v8AtomicString(m_isolate, "endLine"))->ToInteger()->Value(); |