Tail call optimization in ECMAScript 6

ECMAScript 6 offers tail call optimization, where you can make some function calls without growing the call stack. This blog post explains how that works and what benefits it brings.


WebAssembly: a binary format for the web


WebAssembly (short: wasm) is a new binary format for the web, created by Google, Microsoft, Mozilla and others. It will be used for performance critical code and to compile languages other than JavaScript (especially C/C++) to the web platform. It can be seen as a next step for asm.js [3].


Announcing “Exploring ES6”

I’m glad to announce that the first version of my book “Exploring ES6” is finally finished! It was much more work than I anticipated – the PDF has over 460 pages! I’m really happy with how it turned out.

The complete contents of the book are available online, for free. The ebook version (PDF, EPUB, MOBI) costs about $30 (depending on the VAT in your country, you can pay more to support my work).

Exploring ES6 is a living book: you can buy it now and will receive free updates until it is completely done. That may take a while, possibly until 2016. Once the book is done, there will also be a print version. New material will often be published on 2ality, before it is added to the book.

For all further information on ”Exploring ES6”, please consult its website.


New number and Math features in ES6

This blog post describes the new number and Math features of ECMAScript 6.


Deploying ECMAScript 6

This blog post describes the options you have for deploying ECMAScript 6 in current JavaScript environments. It is selective w.r.t. the amount of tools it covers. If you want a comprehensive list of tools, I suggest you look at Addy Osmani’s “ECMAScript 6 Tools”.

Consult the blog post “Using ECMAScript 6 today” for an overview of ES6 features.


Using transpiled ES6 on Node.js

This blog post explains how to use ES6 on Node.js by transpiling it to ES5 via Babel.

A previous blog post showed how to dynamically transpile ES6 at runtime (also via Babel). That is more convenient and should work for most projects, but occasionally you may want a simpler and faster setup for your runtime environment.


Writing client-side ES6 with webpack

webpack is a client-side module builder and module loader. This blog post shows you how to write ECMAScript 6 code with it.

The code shown here is on GitHub, in the project webpack-es6-demo.