On Sun, Feb 19, 2012 at 12:12 PM, Mark S. Miller <[email protected]> wrote: > On Sun, Feb 19, 2012 at 12:33 AM, Brendan Eich <[email protected]> wrote: > [...] >> >> Why the global object? Because for many VMs, each global has its own heap >> or sub-heap ("compartment"), and all references outside that heap are to >> local proxies that copy from, or in the case of immutable data, reference >> the remote heap. > > [...] > > Is this true for same origin iframes? I have always assumed that mixing > heaps between same origin iframes results in unmediated direct > object-to-object access. If these are already mediated, what was the issue > that drove us to that?
In V8, same origin contexts (or really, any contexts that might communicate in any way) live in the same heap. Originally, that meant anything running in the same process was in the same heap, but with isolates, there can be more heaps in the same process. You can still determine the origin of an object, to do any necessary security checks, but references to "foreign" objects are always plain pointers into the same heap. If I have understood the description correctly, I believe Opera merge heaps from different frames if they start communicating, effectively putting them in the same heap. <http://my.opera.com/core/blog/2009/12/22/carakan-revisited> /L _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

