On Thu May 8 20:46:55 2025 +0000, Jacek Caban wrote:
This seems weird to have both this and `next_dispid`. Is the plan to replace it entirely? Otherwise, why not do the filling in `next_dispid(DISPID_STARTENUM)` instead? Also, I think you're missing some volatile objects, AFAIR some containers with indexed properties have mutable length. For sake of this commit, you could probably just check if the object has `next_dispid`. For a more precise distinction, we could have a flag in the object descriptor.
I was a bit stuck with the idea that `next_dispid` was for enumerations, even though I pass the bool at the end of the MR…
Anyway I've been trying to simplify this to use that and avoid `fill_props` on mshtml but there's some things I have to mention. You're right that there's other objects that are volatile (most of the indexed ones), but those are volatile in a different sense; their external props are volatile, but their fill is not, because they never fill those props (I mean, they aren't filled in this MR and shouldn't be, but even if theoretically they would be filled, it doesn't break if we don't flag them as such now, because we never fill them currently, so it wouldn't be a regression at all).
Later on I will add tests for them of course but the thing is their indexed props are "special" and use the overriding mechanism. They aren't returned by getOwnPropertyNames either and so shouldn't be filled. Anyway I'll keep them out of this MR since that will require way more changes…