2009-07-24 Jian Li <jianli@chromium.org>
[WebKit-https.git] / WebCore / bindings / v8 / WorkerContextExecutionProxy.h
index dad191c..387e4c6 100644 (file)
@@ -35,6 +35,7 @@
 #if ENABLE(WORKERS)
 
 #include <v8.h>
+#include "ScriptValue.h"
 #include "V8EventListenerList.h"
 #include "V8Index.h"
 #include <wtf/OwnPtr.h>
@@ -48,12 +49,22 @@ namespace WebCore {
     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*);
         ~WorkerContextExecutionProxy();
 
-        // FIXME: following function sshould have camelCased names once V8 code-generating script is migrated.
+        // FIXME: following function should have camelCased names once V8 code-generating script is migrated.
         v8::Local<v8::Context> GetContext() { return v8::Local<v8::Context>::New(m_context); }
         v8::Local<v8::Function> GetConstructor(V8ClassIndex::V8WrapperType);
         void RemoveEventListener(V8EventListener*);
@@ -73,7 +84,7 @@ namespace WebCore {
         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; }
@@ -81,10 +92,6 @@ namespace WebCore {
         // Returns WorkerContextExecutionProxy object of the currently executing context. 0 will be returned if the current executing context is not the worker context.
         static WorkerContextExecutionProxy* retrieve();
 
-        // Enables HTML5 worker support.
-        static bool isWebWorkersEnabled();
-        static void setIsWebWorkersEnabled(bool);
-
     private:
         void initV8IfNeeded();
         void initContextIfNeeded();