void StringObject::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode) { StringObject* thisObject = jsCast<StringObject*>(object); if (propertyNames.includeStringProperties()) { int size = thisObject->internalValue()->length(); for (int i = 0; i < size; ++i) propertyNames.add(Identifier::from(exec, i)); } if (mode.includeDontEnumProperties()) propertyNames.add(exec->propertyNames().length); return JSObject::getOwnPropertyNames(thisObject, exec, propertyNames, mode); }
void JSModuleEnvironment::getOwnNonIndexPropertyNames(JSObject* cell, ExecState* exec, PropertyNameArray& propertyNamesArray, EnumerationMode mode) { JSModuleEnvironment* thisObject = jsCast<JSModuleEnvironment*>(cell); if (propertyNamesArray.includeStringProperties()) { for (const auto& pair : thisObject->moduleRecord()->importEntries()) { const JSModuleRecord::ImportEntry& importEntry = pair.value; if (!importEntry.isNamespace(exec->vm())) propertyNamesArray.add(importEntry.localName); } } return Base::getOwnNonIndexPropertyNames(thisObject, exec, propertyNamesArray, mode); }