Index: Source/bindings/v8/WorkerScriptController.cpp |
diff --git a/Source/bindings/v8/WorkerScriptController.cpp b/Source/bindings/v8/WorkerScriptController.cpp |
index c95df01b73cd2d2c6dbb01a15d2fbaf3c72ea0ee..51df385e6ca6b216c999c6b497bf98a499a781c7 100644 |
--- a/Source/bindings/v8/WorkerScriptController.cpp |
+++ b/Source/bindings/v8/WorkerScriptController.cpp |
@@ -167,7 +167,7 @@ ScriptValue WorkerScriptController::evaluate(const String& script, const String& |
state->lineNumber = message->GetLineNumber(); |
state->columnNumber = message->GetStartColumn(); |
state->sourceURL = toWebCoreString(message->GetScriptResourceName()); |
- if (m_workerGlobalScope->sanitizeScriptError(state->errorMessage, state->lineNumber, state->columnNumber, state->sourceURL)) |
+ if (m_workerGlobalScope->sanitizeScriptError(state->errorMessage, state->lineNumber, state->columnNumber, state->sourceURL, state->error)) |
state->exception = throwError(v8GeneralError, state->errorMessage.utf8().data(), m_isolate); |
else |
state->exception = ScriptValue(block.Exception()); |
@@ -190,10 +190,12 @@ void WorkerScriptController::evaluate(const ScriptSourceCode& sourceCode, Script |
WorkerGlobalScopeExecutionState state; |
evaluate(sourceCode.source(), sourceCode.url().string(), sourceCode.startPosition(), &state); |
if (state.hadException) { |
- if (exception) |
+ if (exception) { |
*exception = state.exception; |
- else |
- m_workerGlobalScope->reportException(state.errorMessage, state.lineNumber, state.columnNumber, state.sourceURL, 0); |
+ } else { |
+ RefPtr<ErrorEvent> event = ErrorEvent::create(state.errorMessage, state.sourceURL, state.lineNumber, state.columnNumber); |
+ m_workerGlobalScope->reportException(event, 0); |
+ } |
} |
} |