babel/doc/caveats.md
2014-11-19 21:10:40 +11:00

1.2 KiB

Caveats

Async/Generators

The regenerator runtime and an ES6 polyfill are required in order for generators to work.

Classes

Built-in classes such as Date, Array and DOM cannot be subclassed due to limitations in ES5 implementations.

If you're inheriting from a class then static properties are inherited from it via __proto__, this is widely supported but you may run into problems with much older browsers.

NOTE: __proto__ is not supported on IE <= 9 so static properties will not be inherited. A possible workaround is to use super();:

class Foo {
  static foo() {

  }
}

class Bar extends Foo {
  static foo() {
    super();
  }
}

For-of

A polyfill is required for for-of functionality that implements Symbol and adds prototype[Symbol.iterator] behaviour to built-ins. Using the polyfills specified in polyfill suffices.

Array destructuring / Spread

An ES6 polyfill is required for spread and array destructuring. More specifically a polyfill for Array.from.