mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 21:31:04 +00:00
f480e9ecdf
The patch makes the following proxy changes: * The number of slots in ProxyValueArray is now dynamic and depends on the number of reserved slots we get from the Class. * "Extra slots" was renamed to "Reserved slots" to make this clearer. * All proxy Classes now have 2 reserved slots, but it should be easy to change that for proxy Classes that need more than 2 slots. * Proxies now store a pointer to these slots and this means GetReservedSlot and SetReservedSlot can be used on proxies as well. We no longer need GetReservedOrProxyPrivateSlot and SetReservedOrProxyPrivateSlot. And some changes to make DOM Proxies work with this: * We now store the C++ object in the first reserved slot (DOM_OBJECT_SLOT) instead of in the proxy's private slot. This is pretty nice because it matches what we do for non-proxy DOM objects. * We now store the expando in the proxy's private slot so I removed GetDOMProxyExpandoSlot and changed the IC code to get the expando from the private slot instead. |
||
---|---|---|
.. | ||
AccessCheck.cpp | ||
AccessCheck.h | ||
AddonWrapper.cpp | ||
AddonWrapper.h | ||
ChromeObjectWrapper.cpp | ||
ChromeObjectWrapper.h | ||
FilteringWrapper.cpp | ||
FilteringWrapper.h | ||
moz.build | ||
WaiveXrayWrapper.cpp | ||
WaiveXrayWrapper.h | ||
WrapperFactory.cpp | ||
WrapperFactory.h | ||
XrayWrapper.cpp | ||
XrayWrapper.h |