1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:38:10 +00:00

LibJS: Put exports before symbols in keys of module namespace object

This commit is contained in:
davidot 2022-08-31 20:31:02 +02:00 committed by Linus Groh
parent fb61e9274a
commit 3b56043612
3 changed files with 27 additions and 4 deletions

View file

@ -210,16 +210,19 @@ ThrowCompletionOr<bool> ModuleNamespaceObject::internal_delete(PropertyKey const
ThrowCompletionOr<MarkedVector<Value>> ModuleNamespaceObject::internal_own_property_keys() const
{
// 1. Let exports be O.[[Exports]].
// NOTE: We only add the exports after we know the size of symbolKeys
MarkedVector<Value> exports { vm().heap() };
// 2. Let symbolKeys be OrdinaryOwnPropertyKeys(O).
auto symbol_keys = MUST(Object::internal_own_property_keys());
// 3. Return the list-concatenation of exports and symbolKeys.
for (auto& export_name : m_exports) {
symbol_keys.append(js_string(vm(), export_name));
}
exports.ensure_capacity(m_exports.size() + symbol_keys.size());
for (auto const& export_name : m_exports)
exports.unchecked_append(js_string(vm(), export_name));
exports.extend(symbol_keys);
return symbol_keys;
return exports;
}
}