V8 Release 6.3(v8project.blogspot.com)
v8project.blogspot.com
V8 Release 6.3
https://v8project.blogspot.com/2017/10/v8-release-63.html
12 comments
In recent chrome Dev summit it was mentioned "The last missing part of ES6 all browser vendors agree was a bad idea"
I think they are not shipping that anymore.
I think they are not shipping that anymore.
Here is the link https://youtu.be/1-g1rvkORQ8?t=19m11s
Why is it a bad idea?
I hadn't heard that. How disappointing and a step backward for the world's most ubiquitous programming language. All very subjective, of course.
I guess Safari on desktop isn't considered a mainstream browser vendor anymore? Or do they regret implementing it also?
The appeal of the explicit syntax makes sense, but the argument that proper tail calls are hard to identify/create seems silly to me. Devs have any number of ways to create memory leaks which have even harder to diagnose problems than the stack overflow of an improper tail call. The stack without tail calls overflows quite quickly unlike memory leaks which only a minority of users can experience on certain code.
I guess Safari on desktop isn't considered a mainstream browser vendor anymore? Or do they regret implementing it also?
The appeal of the explicit syntax makes sense, but the argument that proper tail calls are hard to identify/create seems silly to me. Devs have any number of ways to create memory leaks which have even harder to diagnose problems than the stack overflow of an improper tail call. The stack without tail calls overflows quite quickly unlike memory leaks which only a minority of users can experience on certain code.
Given the example that one side of || is a tail call, it seems quite easy to accidentally have overflows that only occur on specific data and call time environments for situations like writing a bad binary heap traversal function. Without tail calls, any traversal to some depth either does or doesn't trigger a stack overflow.
But I find the need for step debugging to catch and unroll a virtual equivalent to tail calls a better argument given that this is for a sandbox for adversarial code with strong incentives to obscure bad behavior.
But I find the need for step debugging to catch and unroll a virtual equivalent to tail calls a better argument given that this is for a sandbox for adversarial code with strong incentives to obscure bad behavior.
It is already trivial to break up logic and destroy the stack using async, if for some reason we are to believe that the call stack is somehow a way for us to somehow figure out we are being attacked. (Also, is it really surprising that the right-hand side of a returned || expression is a tail call? That seems extremely obvious :/. Regardless, the "syntactic tail call" proposal seems like it fixes that issue.)
Features like async now have a few debugging options that can help users identify origin and report malicious redirects, pop-unders etc that try to obfuscate history and here comes a potential replacement.. So worrying about debugging first isn't such a bad idea.
It's extremely obvious to think about tail calls when you know you are supposed to be thinking about tail calls. The life cycle of JS Code doesn't usually make anything obvious to people who inject the last edge conditions in a function.
It's extremely obvious to think about tail calls when you know you are supposed to be thinking about tail calls. The life cycle of JS Code doesn't usually make anything obvious to people who inject the last edge conditions in a function.
Would be nice to have https://bugs.chromium.org/p/v8/issues/detail?id=5866 resolved so embedding/extending V8 would be a lot easier.
This is the release many of us have been waiting for!
The performance enhancements will lead to better embedding and extending V8. Chrome should probably implement proper tail calls. More now that even safari has this feature implemented.
Great job and thanks you very much !
The performance enhancements will lead to better embedding and extending V8. Chrome should probably implement proper tail calls. More now that even safari has this feature implemented.
Great job and thanks you very much !
Excited to see function parsing performance enhancements[1] and more ES stage 3 features being implemented!
[1] https://docs.google.com/document/d/1TqpdGeLmURL2gc18s6PwNeyZ...
[1] https://docs.google.com/document/d/1TqpdGeLmURL2gc18s6PwNeyZ...
someday v8 Release v8.0 :D
Proper tail calls is the last ES6 feature not implemented by Chrome. Can anyone shed more light on the backstory for the hold up? I've read the challenges with debugging without a stack, but Safari's implementation of tail calls seems pretty sound and was shipped about a year ago.
The last V8 blog post on the topic is almost 18 months old:
https://v8project.blogspot.com/2016/04/es6-es7-and-beyond.ht...
The TC39 topic they site hasn't been touched in two years:
https://github.com/tc39/proposal-ptc-syntax