diff options
Diffstat (limited to 'src/javascript/jsc/bindings/Process.h')
-rw-r--r-- | src/javascript/jsc/bindings/Process.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/javascript/jsc/bindings/Process.h b/src/javascript/jsc/bindings/Process.h new file mode 100644 index 000000000..7e025bc3a --- /dev/null +++ b/src/javascript/jsc/bindings/Process.h @@ -0,0 +1,39 @@ +#pragma once + +#include "BunBuiltinNames.h" +#include "BunClientData.h" +#include "root.h" + +namespace Zig { + +class Process : public JSC::JSNonFinalObject { + using Base = JSC::JSNonFinalObject; + + public: + Process(JSC::VM &vm, JSC::Structure *structure) : Base(vm, structure) {} + + DECLARE_INFO; + + static constexpr unsigned StructureFlags = Base::StructureFlags; + + template <typename CellType, JSC::SubspaceAccess> + static JSC::CompleteSubspace *subspaceFor(JSC::VM &vm) { + return &vm.cellSpace; + } + + static JSC::Structure *createStructure(JSC::VM &vm, JSC::JSGlobalObject *globalObject, + JSC::JSValue prototype) { + return JSC::Structure::create(vm, globalObject, prototype, + JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); + } + + static Process *create(JSC::VM &vm, JSC::Structure *structure) { + Process *accessor = new (NotNull, JSC::allocateCell<Process>(vm.heap)) Process(vm, structure); + accessor->finishCreation(vm); + return accessor; + } + + void finishCreation(JSC::VM &vm); +}; + +} // namespace Zig
\ No newline at end of file |