diff options
Diffstat (limited to 'src/javascript/jsc/bindings/BunClientData.h')
-rw-r--r-- | src/javascript/jsc/bindings/BunClientData.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/javascript/jsc/bindings/BunClientData.h b/src/javascript/jsc/bindings/BunClientData.h new file mode 100644 index 000000000..cd506365f --- /dev/null +++ b/src/javascript/jsc/bindings/BunClientData.h @@ -0,0 +1,41 @@ +#pragma once + +#include "BunBuiltinNames.h" +#include "root.h" +#include <JavaScriptCore/BuiltinUtils.h> +#include <wtf/HashSet.h> +#include <wtf/RefPtr.h> + +namespace Bun { +using namespace JSC; + +class JSVMClientData : public JSC::VM::ClientData { + WTF_MAKE_NONCOPYABLE(JSVMClientData); + WTF_MAKE_FAST_ALLOCATED; + + public: + explicit JSVMClientData(JSC::VM &); + + virtual ~JSVMClientData(); + + static void create(JSC::VM *); + + BunBuiltinNames &builtinNames() { return m_builtinNames; } + + // Vector<JSC::IsoSubspace *> &outputConstraintSpaces() { return m_outputConstraintSpaces; } + + // template <typename Func> void forEachOutputConstraintSpace(const Func &func) { + // for (auto *space : m_outputConstraintSpaces) func(*space); + // } + + private: + BunBuiltinNames m_builtinNames; + + // Vector<JSC::IsoSubspace *> m_outputConstraintSpaces; +}; + +static JSVMClientData *clientData(JSC::VM &vm) { + return static_cast<Bun::JSVMClientData *>(vm.clientData); +} + +} // namespace Bun |