From 891df4d8131f31ae7537d138c5ae1e57c31cfe64 Mon Sep 17 00:00:00 2001 From: "jianli@chromium.org" Date: Thu, 25 Jun 2009 21:54:04 +0000 Subject: [PATCH] 2009-06-25 Jian Li Reviewed by Dimitri Glazkov. Bug 26701: Implement the missing code for "FIXME: Need to return an exception" in WorkerScriptController::evaluate for v8 bindings. https://bugs.webkit.org/show_bug.cgi?id=26701 * bindings/v8/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@45198 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- WebCore/ChangeLog | 11 +++++++++++ WebCore/bindings/v8/WorkerScriptController.cpp | 12 +++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog index 164a668..5c5cc9d 100644 --- a/WebCore/ChangeLog +++ b/WebCore/ChangeLog @@ -1,3 +1,14 @@ +2009-06-25 Jian Li + + Reviewed by Dimitri Glazkov. + + Bug 26701: Implement the missing code for "FIXME: Need to return an + exception" in WorkerScriptController::evaluate for v8 bindings. + https://bugs.webkit.org/show_bug.cgi?id=26701 + + * bindings/v8/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::evaluate): + 2009-06-25 Nate Chapin Reviewed by Dimitri Glazkov. diff --git a/WebCore/bindings/v8/WorkerScriptController.cpp b/WebCore/bindings/v8/WorkerScriptController.cpp index b3ede11..d418184 100644 --- a/WebCore/bindings/v8/WorkerScriptController.cpp +++ b/WebCore/bindings/v8/WorkerScriptController.cpp @@ -72,10 +72,16 @@ ScriptValue WorkerScriptController::evaluate(const ScriptSourceCode& sourceCode) return ScriptValue(); } -ScriptValue WorkerScriptController::evaluate(const ScriptSourceCode& sourceCode, ScriptValue* /* exception */) +ScriptValue WorkerScriptController::evaluate(const ScriptSourceCode& sourceCode, ScriptValue* exception) { - // FIXME: Need to return an exception. - return evaluate(sourceCode); + v8::TryCatch exceptionCatcher; + ScriptValue result = evaluate(sourceCode); + if (exceptionCatcher.HasCaught()) { + *exception = ScriptValue(exceptionCatcher.Exception()); + throwError(exceptionCatcher.Exception()); + return ScriptValue(); + } else + return result; } void WorkerScriptController::forbidExecution() -- 1.8.3.1