Maximally minimal stack trace standardization

Mark S. Miller erights at
Mon Sep 29 11:00:21 PDT 2014

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 <allen at>

> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list