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;
}
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) {
MOZ_ASSERT(status >= ModuleStatus::Unlinked &&
status <= ModuleStatus::Evaluated_Error);

View file

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