On 1/21/08, Igor Bukanov <[EMAIL PROTECTED]> wrote:
>
> let f2;
>
> function f(a)
> {
> f2 = function() { return a; }
> goto return g();
> }
>
> function g() {f2 = null; ... }
>
> Here in f "return g()" is in tail position yet the frame of f can not
> be eliminated completely since it is referenced through a global
> variable.
I don't understand your claim. You're saying that the "frame of f"
is "referenced through a global variable"? Clearly, f2 is the global
variable, you're referring to. f2 may be bound to a function value
that closes over a, which is part of f's activation frame -- or, more
specifically, part of f's closure environment. But how would this
prevent the call to g from being a tail call? Are you assuming that a
must be on the stack?
_______________________________________________
Es4-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es4-discuss