Not sure if we have a test (or how to test it?)
I didn't talk about testing it, but your observations confirm my suspicious. Now imagine that we have `pobj` like that, with async properties not guarantying dispid stability, which initially has `async1` prop. Now consider this: ``` function f() {} f.prototype = pobj; var o = new f(); x = o.async1; // some other code; meantime async1 disappears, async2 appears and then a new async1 appears with a different dispid x = o.async1; // problem: now prototype ref points to wrong property and simple name dispid or name validation will not be enough ```
I expect the above to be a problem if you base prototypes on something like this MR, so I'm curious what you did about it.
The test I asked was about something different, to show how `IDispatchEx should behave. That requires prototypes to test: ``` div = document.getElementById("divid"); Object.prototype.x = 1; // verify that div IDispatchEx can query x Element.prototype.y = 2; // verify that div IDispatchEx can query y detele Object.prototype.x; // ... ```
Do you have a test like that?
The other concerns, like forwarding calls to jscript, DISPIDs, and so on, I don't see how they're relevant to this MR? I prefer doing it a bit at a time instead of all at once.
The test above may be a bit of corner case, but more generally forwarding calls to jscript is by no means a corner case, it affects a pretty core part of the design and this MR is a part of its implementation. I'm not very interested in corner cases at this point, but I'm interested in making sure we don't end up with ad-hoc design mess (like the code in Proton).