Hi Allen,<div><br></div><div>Great to see a first draft of the Proxy spec. I'll study this revision more closely over the coming week.</div><div><br></div><div>Some initial comments below:</div><div><br><div class="gmail_quote">

2012/11/23 Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><div><br></div><div><div><span style="white-space:pre-wrap">    </span>• MOP changes: Added [[GetInheritance]]/[[SetInheritance]] as internal methods for accessing [[Prototype]] internal prototype chain.</div>
</div></div></blockquote><div>
<br></div><div>I would rename these to [[GetProto]]/[[SetProto]] (or [[GetPrototype]] as David suggests).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><div><div> Added [[[IsExtensible]]/[[PreventExtensions]].</div></div></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><div><div>Replaced [[Get]]/[[Put]] with [[GetP]]/[[SetP]]. At some point we may be able to rename these as [[Get]]/[[Set]].</div></div></div></blockquote><div><br></div><div>+1 for [[Get]]/[[Set]]. The P suffix was indeed to distinguish this operation from ES5.1 [[Get]].</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div> Eliminated [[GetProperty]], [[CanPut]], [[HasProperty]], [[DefaultValue]]. </div>

</div></div></blockquote><div><br></div><div>Great!</div><div><br></div><div>However, with [[HasProperty]] removed, I assume the "in"-operator no longer triggers the "has" trap when it encounters a proxy, instead doing the proto-chain-walk itself and calling "hasOwn" on each level. This is OK, although it introduces an inconsistency with the other proto-chain-walking algorithms, which stop when encountering a proxy, letting the proxy take over from that point (this is the case for the "get", "set" and "enumerate" traps).</div>
<div><br></div><div>Cheers,</div><div>Tom</div></div></div>