V8 exception lost

R=jacobr@google.com
TBR=alanknight@google.com, jacobr@gogle.com

Review URL: https://codereview.chromium.org/1692753003 .

git-svn-id: https://src.chromium.org/blink/branches/dart/2454_1@202777 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/Source/bindings/core/dart/DartJsInterop.cpp b/Source/bindings/core/dart/DartJsInterop.cpp
index 80bda03..7478ca2 100644
--- a/Source/bindings/core/dart/DartJsInterop.cpp
+++ b/Source/bindings/core/dart/DartJsInterop.cpp
@@ -984,7 +984,8 @@
             v8::Local<v8::Value> result;
             if (!V8ScriptRunner::callFunction(value.As<v8::Function>(),
                 DartUtilities::scriptExecutionContext(), receiver->localV8Object(), v8Args.size(), v8Args.data(), v8::Isolate::GetCurrent()).ToLocal(&ret)) {
-                exception = Dart_NewStringFromCString("V8 Exception");
+                if (!scopes.handleJsException(&exception))
+                    exception = Dart_NewStringFromCString("V8 Exception");
                 goto fail;
             }
         } else {