2016-12-29 JavaScript features in modern browsers 2016

The browser platform is progressing. Below is a list of recent platform features, either available the major modern browsers, or which we might see soon.

Ready in modern browsers(Edge 14, Firefox 50, Chrome 55, Safari 10) now:

  • WebGL
  • Arrow functions x => x*x
  • Template strings
  • Web Audio API
  • Promises
  • Classes
  • let+const
  • rest-parameters
  • proxies
  • GPS, device orientation
  • indexeddb
  • speech synthesis
  • file api
  • crypto-random / basic ciphers (vary between platforms)
  • maps, sets, …
  • for..of and generators
  • destructuring
  • fullscreen(not iOS)
  • error-stack (safari missing)

Hopefully getting ready soon:

  • P2P data transfer (WebRTC Peer Connections) – works in Chrome and Firefox, will be available in next version of IE. Missing in Safari, but cordova plugin exists for iOS app deployment.
  • WebAssembly – behind flag in Firefox/Chrome, – under development in the rest.
  • WebVR (available in firefox+chrome, and next edge)
  • getUserMedia – Missing in Safari, but cordova plugin exists for iOS app deployment.
  • async/await – available in Chrome, coming in Firefox 52, behind flag in Edge, not in Safari yet, but can be emulated via babel.
  • fetch will come in next version of safari (ready in the others)
  • ServiceWorkers – partial support in Firefox/Chrome, behind flag in next version of Edge, not in Safari yet.
  • Pointer events (Behind flag in Firefox, Safari still missing)
  • timings (safari missing)
  • vibrations (safari+edge missing)
  • gamepad (safari missing, should come in next version)
  • WebGL 2.0 (opengles3) behind flag in Firefox/Chrome, and next version of Safari. Not in edge yet.
  • media recorder api (only chrome and firefox at the moment)
  • simd (coming in firefox/edge, intent-to-build in chrome, cordova-plugin for android apps)
  • speech recognition (in chrome, behind flag in firefox)

Hopefully getting ready (but unfortunately not that soon):

  • weak references
  • tail call optimizations
  • 64 bit integers
  • advanced webassembly features (GC, threading, …)