I am Mathias Bynens. Ask me anything.
Ask Mathias Bynens about:
I’ll give you an example. V8 used to have a compilation pipeline called Crankshaft. For technical reasons, it didn’t do a great job of optimizing any code within
catch blocks. This implementation detail caused some well-meaning developers to avoid
catch altogether in their code “because otherwise it would be slow”, and instead work around the lack of proper error handling in complicated ways.
Last year we shipped a new pipeline with TurboFan, our new optimizing compiler.
catch can now be optimized in V8. All those hacky workarounds are now moot.
Share your programming knowledge and learn from the best developers on HashnodeGet started
By default, features that can be implemented in what the committee calls “userland code” don’t have a strong case to be included in the language. Exceptions can be made when implementing the feature natively would yield significant benefits compared to what’s possible in userland code:
- deep platform integration (e.g. Promises)
- performance or efficiency benefits in terms of load time, run time, or memory usage (e.g. RegExp Unicode property escapes,
- some features are impossible to implement in userland (e.g.
So far, this has always been discussed on a per-proposal basis. Bradley Farias and Daniel Ehrenberg are currently leading an effort to codify the TC39 committee’s goals on new proposals in general, which would help answer future-facing questions such as “should new library features be in built-in modules?”.
On January 1st, 2018, I embarked upon a spontaneous three-hour horse ride that changed everything. My white-maned friend’s name was Burro, and he took me on a wonderful tour through the beautiful Ibagué country fields. I had never ridden a horse before, and had such a good experience! It’s an afternoon I’ll never forget.
That night, I vowed to never fight Burro, or any other horse — especially not when they’re duck-sized.
I’m sorry, horse-sized duck. You’re going down.