MCPcopy Create free account
hub / github.com/Snapchat/Valdi / isJsModuleLoaded

Method isJsModuleLoaded

valdi/src/valdi/runtime/JavaScript/JavaScriptRuntime.cpp:2837–2866  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2835 unloaded = false;
2836 while (unloadNextUnusedModule(entry)) {
2837 unloaded = true;
2838 }
2839
2840 performGcNow(entry.jsContext);
2841 }
2842 }
2843
2844 completionGroup->leave();
2845 });
2846}
2847
2848void JavaScriptRuntime::unloadUnusedModules(DispatchFunction completion) {
2849 auto group = makeShared<AsyncGroup>();
2850
2851 unloadUnusedModules(group);
2852
2853 group->notify(std::move(completion));
2854}
2855
2856FlatSet<ResourceId> JavaScriptRuntime::getAllUsedModules() const {
2857 FlatSet<ResourceId> allUsedModules;
2858 for (const auto& context : _contextManager.getAllContexts()) {
2859 allUsedModules.insert(context->getPath().getResourceId());
2860 }
2861 for (const auto& it : _modules) {
2862 allUsedModules.insert(it.first);
2863 }
2864 return allUsedModules;
2865}
2866
2867bool JavaScriptRuntime::unloadNextUnusedModule(JavaScriptEntryParameters& entry) {
2868 auto allUsedModules = getAllUsedModules();
2869

Callers 1

TEST_PFunction · 0.80

Calls 7

jsValueToValueFunction · 0.85
callObjectPropertyMethod · 0.80
getMethod · 0.65
newStringUTF8Method · 0.45
toAbsolutePathMethod · 0.45
toBoolMethod · 0.45

Tested by 1

TEST_PFunction · 0.64