On Sep 29, 2014, at 12:02 PM, Brendan Eich wrote:

> Allen Wirfs-Brock wrote:
>> No particular reason an implementation can't optimize through that if they 
>> want to.
> 
> The question is whether it should be normative. PTC is about observable 
> asymptotic space performance (I keep saying :-P).
> 
> /be


What should be normative?  You guys probably should probably review the actual 
spec. language and see if you have any issues with it.  All the tail call 
action takes place in the spec. on the caller side. See 
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-evaluatecall
 and 
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-preparefortailcall 

The resources requirements of a function are represented by its "execution 
context".  PrepareForTailCall says the the caller's "execution context" is 
discarded before invoking the callee's [[call]] internal method.  [[Call]] for 
bound functions does not create a new "execution context" so there is no 
associated specified resource consumption that needs to be optimized away.  At 
least as far as the spec. is concerned, bound functions (whether strict or 
sloppy) have no impact on TCO.

I can't imagine what you would want be to try to say about non-EMCAScript 
functions. Their internal "call" semantics is determined by the semantics of 
their implementation language. 

Allen


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to