Bug 1877792 - Part 12: Add JS::IsCyclicModule r=spidermonkey-reviewers,jonco

Differential Revision: https://phabricator.services.mozilla.com/D218559
This commit is contained in:
Jonatan Klemets
2024-09-03 08:10:52 +00:00
parent 5bb3af7ad5
commit 89a5da9d3c
2 changed files with 9 additions and 0 deletions

View File

@@ -214,6 +214,11 @@ extern JS_PUBLIC_API void ClearModulePrivate(JSObject* module);
*/ */
extern JS_PUBLIC_API Value GetModulePrivate(JSObject* module); extern JS_PUBLIC_API Value GetModulePrivate(JSObject* module);
/**
* Checks if the given module is a cyclic module.
*/
extern JS_PUBLIC_API bool IsCyclicModule(JSObject* module);
/* /*
* Perform the ModuleLink operation on the given source text module record. * Perform the ModuleLink operation on the given source text module record.
* *

View File

@@ -214,6 +214,10 @@ JS_PUBLIC_API JS::Value JS::GetModulePrivate(JSObject* module) {
return module->as<ModuleObject>().scriptSourceObject()->getPrivate(); return module->as<ModuleObject>().scriptSourceObject()->getPrivate();
} }
JS_PUBLIC_API bool JS::IsCyclicModule(JSObject* module) {
return module->as<ModuleObject>().hasCyclicModuleFields();
}
JS_PUBLIC_API bool JS::ModuleLink(JSContext* cx, Handle<JSObject*> moduleArg) { JS_PUBLIC_API bool JS::ModuleLink(JSContext* cx, Handle<JSObject*> moduleArg) {
AssertHeapIsIdle(); AssertHeapIsIdle();
CHECK_THREAD(cx); CHECK_THREAD(cx);