2016-02

ECMAScript 2017 (ES8): the final feature set

[2016-02-02] dev, javascript, esnext, es2017

Update 2017-01-29: At the TC39 meeting in January 2017, the last feature of ECMAScript 2017, “Shared memory and atomics” advanced to stage 4. That means that its feature set is now complete, as listed below.

ES2016 feature: Array.prototype.includes

[2016-02-01] dev, javascript, esnext, es2016

Array.prototype.includes is an ECMAScript proposal by Domenic Denicola and Rick Waldron. It is at stage 4 (finished) and part of ECMAScript 2016.

ES proposal: async functions

[2016-02-01] dev, javascript, esnext, es proposal, async, promises

Async functions are an ECMAScript proposal by Brian Terlson. It is at stage 3 (candidate).

Before I can explain async functions, I need to explain how Promises and generators can be combined to perform asynchronous operations via synchronous-looking code.

ES2016 feature: exponentiation operator (**)

[2016-02-01] dev, javascript, esnext, es2016

The exponentiation operator (**) is an ECMAScript proposal by Rick Waldron. It is at stage 4 (finished) and part of ECMAScript 2016.

2016-01

The final feature set of ECMAScript 2016 (ES7)

[2016-01-30] dev, javascript, esnext, es2016

We always knew that ECMAScript 2016 (ES2016) would be a small release. It turns out that it will be very small. Read on for a list of its features and an explanation why that is not a problem.

ES.next News: a weekly email newsletter

[2016-01-20] dev, javascript, esnext news, media

Today, Johannes Weber and I are launching a new weekly email newsletter: ES.next News.

Enumify: better enums for JavaScript

[2016-01-15] dev, javascript, esnext, technique

In this blog post, I present enumify, a library for implementing enums in JavaScript. The approach it takes is inspired by Java’s enums.

ES6 classes have inner names

[2016-01-09] dev, javascript, esnext

This blog post explains that classes have lexical inner names, just like named function expressions.

Running locally installed npm executables

[2016-01-07] dev, javascript, nodejs

One nice npm feature is that you can install packages with executables locally. This blog post explains how to run locally installed executables.

Managing the private data of ES6 classes

[2016-01-04] dev, javascript, esnext

This blog post explains four approaches for managing private data for ES6 classes:

  1. Keeping private data in the environment of a class constructor
  2. Marking private properties via a naming convention (e.g. a prefixed underscore)
  3. Keeping private data in WeakMaps
  4. Using symbols as keys for private properties