JSDollarVMPrototype.h [plain text]
#ifndef JSDollarVMPrototype_h
#define JSDollarVMPrototype_h
#include "JSObject.h"
namespace JSC {
class Heap;
class JSDollarVMPrototype : public JSNonFinalObject {
public:
typedef JSNonFinalObject Base;
DECLARE_INFO;
static JSDollarVMPrototype* create(VM& vm, JSGlobalObject* globalObject, Structure* structure)
{
JSDollarVMPrototype* prototype = new (NotNull, allocateCell<JSDollarVMPrototype>(vm.heap)) JSDollarVMPrototype(vm, structure);
prototype->finishCreation(vm, globalObject);
return prototype;
}
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
}
JS_EXPORT_PRIVATE static bool currentThreadOwnsJSLock(ExecState*);
JS_EXPORT_PRIVATE static void gc(ExecState*);
JS_EXPORT_PRIVATE static void edenGC(ExecState*);
JS_EXPORT_PRIVATE static bool isInHeap(Heap*, void*);
JS_EXPORT_PRIVATE static bool isInObjectSpace(Heap*, void*);
JS_EXPORT_PRIVATE static bool isInStorageSpace(Heap*, void*);
JS_EXPORT_PRIVATE static bool isValidCell(Heap*, JSCell*);
JS_EXPORT_PRIVATE static bool isValidCodeBlock(ExecState*, CodeBlock*);
JS_EXPORT_PRIVATE static CodeBlock* codeBlockForFrame(CallFrame* topCallFrame, unsigned frameNumber);
JS_EXPORT_PRIVATE static void printCallFrame(CallFrame*);
JS_EXPORT_PRIVATE static void printStack(CallFrame* topCallFrame);
JS_EXPORT_PRIVATE static void printValue(JSValue);
private:
JSDollarVMPrototype(VM& vm, Structure* structure)
: Base(vm, structure)
{
}
void finishCreation(VM&, JSGlobalObject*);
void addFunction(VM&, JSGlobalObject*, const char* name, NativeFunction, unsigned arguments);
};
}
#endif // JSDollarVMPrototype_h