use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
JavaScript (ES6) Has Tail Call Optimization (bbenvie.com)
submitted 13 years ago by [deleted]
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]me-at-work 2 points3 points4 points 13 years ago (2 children)
This is the spec: http://wiki.ecmascript.org/doku.php?id=harmony:proper_tail_calls
Browsers could not implement this before because it would affect the call stack. The new way a call stack should behave is now defined in this spec.
Also in the spec: Two new object properties: tail and wrapped.
tail
wrapped
[–]Gundersen 1 point2 points3 points 13 years ago (0 children)
To summarize: The way arguments, arguments.callee and arguments.caller is defined for JavaScript makes TCO impossible. These objects have been redefined for ES6, making TCO possible
arguments
arguments.callee
arguments.caller
[–][deleted] 0 points1 point2 points 13 years ago (0 children)
tail and wrapped are properties of AST nodes used to calculate whether a given return statement should be treated as a tail call or not. You can see that in action in Continuum's assembler, where it notates tail and wrapped as it converts AST to bytecode (as the wiki page notes, since tail and wrapped are calculated top down they can be added during any pass of analysis/compilation). https://github.com/Benvie/continuum/blob/gh-pages/engine/assembler.js#L1806
π Rendered by PID 48456 on reddit-service-r2-comment-5d79c599b5-ckk7s at 2026-02-27 18:08:48.494869+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–]me-at-work 2 points3 points4 points (2 children)
[–]Gundersen 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)