<div id="reply-content"><br></div>
     
    <p style="color: #A0A0A8;">On Wednesday, November 21, 2012 at 3:40 AM, Brendan Eich wrote:</p>
    <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
        <div id="quoted-message-content"><div><div>Tab Atkins Jr. wrote:</div><blockquote type="cite"><div><blockquote type="cite"><div><div>let o = { items: function() {} };</div><blockquote type="cite"><div><div><br></div><div> would pass that test.</div></div></blockquote></div></blockquote><div><br></div><div>I'm not sure how else you're supposed to detect iterables.</div></div></blockquote><div><br></div><div>It's not 'items', btw. The iterator-getter/maker is named 'iterator' in </div><div>SpiderMonkey currently, and last I heard would be @iterator (well-known </div><div>public symbol) in ES6.</div><div><br></div><div>As with most duck typing, you're right and I think Rick is picking on a </div><div>non-issue:</div></div></div></blockquote><div>I wish that were true, but I share that from user code I've encountered in the  jQuery bug tracker history. Devs make objects that have a "length" property and don't understand why their object gets array treatment when passer to library code (less common these days and arguably a mistake in the duck-typing itself) or an object with a numeric nodeType property that gets mistaken for a DOM node. </div><div><br></div><div>...Most of this stuff is<span style="font-size: 15px; background-color: rgba(255, 255, 255, 0);"> </span>facepalm inducing :(</div><div><br></div><div> </div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;"><div id="quoted-message-content"><div><div> there's no point worrying about the halting problem. Just </div><div>call the quack function and let the chips fall where they may ;-).</div><div><br></div><div>/be</div></div></div>
         
         
         
         
    </blockquote>
     
    <div>
        <br>
    </div>