On Aug 12, 2014, at 7:52 PM, Garrett Smith wrote: > On 8/12/14, Allen Wirfs-Brock <al...@wirfs-brock.com> wrote: >> >> On Aug 12, 2014, at 2:17 PM, Garrett Smith wrote: >> >>> On 8/12/14, Allen Wirfs-Brock <al...@wirfs-brock.com> wrote: > > [...] > >>> | Function.prototype.toString >>> | ... >>> | >>> | The toString function is not generic; it throws a >>> | TypeError exception if its this value does not have >>> | a [[Call]] internal method. Therefore, it cannot be >>> | transferred to other kinds of objects for use as a method. >> >> This is a spec, bug. should probably be expressed as does not have a >> [[Code]] internal slot. >> > > What is the [[Code]] for host methods like addEventListener? And what > is the expected result of addEventListener.toString()? > > Spec for Function.prototype.toString has never reflected reality for > host methods.
Tweaking spec. text as we go. The guard is actually going to be: either has a [[Code]] internal slot or is a Built-in function object (see http://people.mozilla.org/~jorendorff/es6-draft.html#sec-built-in-function-objects ). Which is pretty much just a way of saying a function whose implementation details F.p.toString understands. As long as addEventListener is implemented as a built-in function (whatever that means for the implementation) then f.p.toString should be able to deal with it. Allen
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss