JSWorkerGlobalScopeBase.h [plain text]
#ifndef JSWorkerGlobalScopeBase_h
#define JSWorkerGlobalScopeBase_h
#include "JSDOMGlobalObject.h"
namespace WebCore {
class JSDedicatedWorkerGlobalScope;
class JSWorkerGlobalScope;
class WorkerGlobalScope;
class JSWorkerGlobalScopeBase : public JSDOMGlobalObject {
typedef JSDOMGlobalObject Base;
public:
static void destroy(JSC::JSCell*);
DECLARE_INFO;
WorkerGlobalScope& impl() const { return *m_impl; }
ScriptExecutionContext* scriptExecutionContext() const;
static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
{
return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::GlobalObjectType, StructureFlags), info());
}
static const JSC::GlobalObjectMethodTable s_globalObjectMethodTable;
static bool allowsAccessFrom(const JSC::JSGlobalObject*, JSC::ExecState*);
static bool supportsProfiling(const JSC::JSGlobalObject*);
static bool supportsRichSourceInfo(const JSC::JSGlobalObject*);
static bool shouldInterruptScript(const JSC::JSGlobalObject*);
static bool shouldInterruptScriptBeforeTimeout(const JSC::JSGlobalObject*);
static JSC::RuntimeFlags javaScriptRuntimeFlags(const JSC::JSGlobalObject*);
static void queueTaskToEventLoop(const JSC::JSGlobalObject*, PassRefPtr<JSC::Microtask>);
protected:
JSWorkerGlobalScopeBase(JSC::VM&, JSC::Structure*, PassRefPtr<WorkerGlobalScope>);
void finishCreation(JSC::VM&);
private:
RefPtr<WorkerGlobalScope> m_impl;
};
JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, WorkerGlobalScope*);
JSC::JSValue toJS(JSC::ExecState*, WorkerGlobalScope*);
JSDedicatedWorkerGlobalScope* toJSDedicatedWorkerGlobalScope(JSC::JSValue);
JSWorkerGlobalScope* toJSWorkerGlobalScope(JSC::JSValue);
}
#endif // JSWorkerGlobalScopeBase_h