Bug 1873610 - Part 1: Add ModuleObject::filename(). r=jonco

Differential Revision: https://phabricator.services.mozilla.com/D204862
This commit is contained in:
Yoshi Cheng-Hao Huang 2024-03-18 14:04:14 +00:00
parent d37cbf723c
commit ba055daed8
2 changed files with 12 additions and 0 deletions

View file

@ -1109,6 +1109,17 @@ JSScript* ModuleObject::script() const {
return ptr; return ptr;
} }
const char* ModuleObject::filename() const {
// The ScriptSlot will be cleared once the module is evaluated, so we try to
// get the filename from cyclicModuleFields().
// TODO: Bug 1885483: Provide filename for JSON modules
if (!hasCyclicModuleFields()) {
return "(JSON module)";
}
return cyclicModuleFields()->scriptSourceObject->source()->filename();
}
static inline void AssertValidModuleStatus(ModuleStatus status) { static inline void AssertValidModuleStatus(ModuleStatus status) {
MOZ_ASSERT(status >= ModuleStatus::Unlinked && MOZ_ASSERT(status >= ModuleStatus::Unlinked &&
status <= ModuleStatus::Evaluated_Error); status <= ModuleStatus::Evaluated_Error);

View file

@ -360,6 +360,7 @@ class ModuleObject : public NativeObject {
JSScript* maybeScript() const; JSScript* maybeScript() const;
JSScript* script() const; JSScript* script() const;
const char* filename() const;
ModuleEnvironmentObject& initialEnvironment() const; ModuleEnvironmentObject& initialEnvironment() const;
ModuleEnvironmentObject* environment() const; ModuleEnvironmentObject* environment() const;
ModuleNamespaceObject* namespace_(); ModuleNamespaceObject* namespace_();