diff options
author | 2022-10-06 00:47:03 -0700 | |
---|---|---|
committer | 2022-10-06 00:47:03 -0700 | |
commit | 2c762f47c9c8ece73ce6d430e7814cac9e031bab (patch) | |
tree | 55145a5536201b26c51e347bbc78b86668182085 /src/bun.js/bindings/ZigGlobalObject.cpp | |
parent | 3246efa5809c3bd031e1d08863e4b06beedd318e (diff) | |
download | bun-2c762f47c9c8ece73ce6d430e7814cac9e031bab.tar.gz bun-2c762f47c9c8ece73ce6d430e7814cac9e031bab.tar.zst bun-2c762f47c9c8ece73ce6d430e7814cac9e031bab.zip |
Add simple Hot Module Reloading to bun's runtime
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r-- | src/bun.js/bindings/ZigGlobalObject.cpp | 18 |
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) |