2009-07-24 Jian Li <jianli@chromium.org>
[WebKit-https.git] / WebCore / bindings / v8 / WorkerContextExecutionProxy.h
index 1265086..387e4c6 100644 (file)
@@ -35,6 +35,7 @@
 #if ENABLE(WORKERS)
 
 #include <v8.h>
 #if ENABLE(WORKERS)
 
 #include <v8.h>
+#include "ScriptValue.h"
 #include "V8EventListenerList.h"
 #include "V8Index.h"
 #include <wtf/OwnPtr.h>
 #include "V8EventListenerList.h"
 #include "V8Index.h"
 #include <wtf/OwnPtr.h>
@@ -48,6 +49,16 @@ namespace WebCore {
     class V8WorkerContextEventListener;
     class WorkerContext;
 
     class V8WorkerContextEventListener;
     class WorkerContext;
 
+    struct WorkerContextExecutionState {
+        WorkerContextExecutionState() : hadException(false), lineNumber(0) { }
+
+        bool hadException;
+        ScriptValue exception;
+        String errorMessage;
+        int lineNumber;
+        String sourceURL;
+    };
+
     class WorkerContextExecutionProxy {
     public:
         WorkerContextExecutionProxy(WorkerContext*);
     class WorkerContextExecutionProxy {
     public:
         WorkerContextExecutionProxy(WorkerContext*);
@@ -73,7 +84,7 @@ namespace WebCore {
         void trackEvent(Event*);
 
         // Evaluate a script file in the current execution environment.
         void trackEvent(Event*);
 
         // Evaluate a script file in the current execution environment.
-        v8::Local<v8::Value> evaluate(const String& script, const String& fileName, int baseLine);
+        ScriptValue evaluate(const String& script, const String& fileName, int baseLine, WorkerContextExecutionState*);
 
         // Returns WorkerContext object.
         WorkerContext* workerContext() { return m_workerContext; }
 
         // Returns WorkerContext object.
         WorkerContext* workerContext() { return m_workerContext; }