Agreed. TCO or PTC specified only for strict mode functions, not for all non-sloppy functions.
Would be nice to extend this at least to bound functions resulting from binding a strict function, but too late to consider for ES6. In any case, all such TCO extensions can compatibly happen later. On Mon, Sep 29, 2014 at 1:44 PM, Allen Wirfs-Brock <[email protected]> wrote: > > On Sep 29, 2014, at 9:23 AM, Mark S. Miller wrote: > > > > > Although we would both like to see function.caller gone as well, we are > also both much more skeptical that this is possible. Let's assume that it > is not. The conclusion that follows is only that sloppy calls to sloppy > functions can't be TCOed away. That is in any case what we've been > assuming. That's why, IIRC (haven't checked lately), TCO is only specified > for calls from non-sloppy functions. > > Actually, TCO is only specified for calls from strict mode ECMAScript > functions. > > The only place the distinction between strict and non-sloppy is really > significant is WRT built-in functions. Standard built-ins are allowed to > be implemented either as strict ECMAScript functions or in some > implementation defined manner (ie, using some other programming language). > If the latter is the case, we don't really have any say over their > internal call semantics, etc. > > Allen -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

