aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ZigGlobalObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r--src/bun.js/bindings/ZigGlobalObject.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp
index 5b716ef79..f9ee0117a 100644
--- a/src/bun.js/bindings/ZigGlobalObject.cpp
+++ b/src/bun.js/bindings/ZigGlobalObject.cpp
@@ -2738,6 +2738,24 @@ DEFINE_VISIT_CHILDREN(GlobalObject);
// DEFINE_VISIT_CHILDREN(Zig::GlobalObject);
+void GlobalObject::reload()
+{
+ JSModuleLoader* moduleLoader = this->moduleLoader();
+ JSC::JSMap* registry = jsCast<JSC::JSMap*>(moduleLoader->get(
+ this,
+ Identifier::fromString(this->vm(), "registry"_s)));
+
+ registry->clear(this->vm());
+ this->requireMap()->clear(this->vm());
+ this->vm().heap.collectSync();
+}
+
+extern "C" void JSC__JSGlobalObject__reload(JSC__JSGlobalObject* arg0)
+{
+ Zig::GlobalObject* globalObject = reinterpret_cast<Zig::GlobalObject*>(arg0);
+ globalObject->reload();
+}
+
JSC::Identifier GlobalObject::moduleLoaderResolve(JSGlobalObject* globalObject,
JSModuleLoader* loader, JSValue key,
JSValue referrer, JSValue origin)