#if ENABLE(WORKERS)
#include <v8.h>
+#include "ScriptValue.h"
#include "V8EventListenerList.h"
#include "V8Index.h"
#include <wtf/OwnPtr.h>
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*);
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 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();