<br><br><div class="gmail_quote">On Tue, Oct 2, 2012 at 11:01 AM, Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.com</a>></span> wrote:<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><div class="h5"><br><div><div>On Oct 2, 2012, at 10:18 AM, Kevin Smith wrote:</div><br><blockquote type="cite"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

private @FooBrand;<br>
class Foo {<br>
   constructor() {<br>
        /* establish the internal Fooness of the instance */<br>
        this.@FooBrand = true;<br>
   }<br>
}<br>
Foo.isFoo = function (obj) {return !!obj.@FooBrand};<br></blockquote><div><br></div><div>Using this strategy, will isFoo not fail, if the specified object came from a different global context (frame)?</div><div><br></div>

<div>Kevin</div><div><br></div></div>
</blockquote></div><br></div></div><div>Indeed it would, but why shouldn't it?  Foo in another  frame is a different class.  If you need to do cross-frame brand, that seems like an additional requirement would require additional mechanism.</div>
<div><br></div><div>Wouldn't a WeakMap branding scheme has similar issues. You would need to share via some means a common WeakMap among constructors in different frames.  Just like to make symbol based branding work for this requirement you would have to share a private symbol between frames.</div>
<span class="HOEnZb"><font color="#888888"><div><br></div></font></span></div></blockquote><div>For classes, I agree it should fail cross frame -- they are different classes. But what about builtins? Note that ES5 [[Class]] is a cross-frame brand for builtins. And Array.isArray is an ad-hoc one-off cross-frame brand check.</div>
<div><br></div><div><br></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"><span class="HOEnZb"><font color="#888888"><div>
</div><div>Allen</div><div><br></div><div><br></div></font></span></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>    Cheers,<br>    --MarkM<br>