6to5 is a transpiler that transforms ECMAScript 6 code into completely backward-compatible ECMAScript 5 code, with support for ES6's most notable features, including arrow notation, classes, template strings, the "let" and "const" assignment, and constructs.
Much of 6to5's competition comes from other transpilers like Google's Traceur, but setting 6to5 apart, according to project lead Sebastian McKenzie, is the philosophy behind the project: minimal dependencies on polyfills or runtimes, readable output, and a high degree of compatibility with existing build systems and environments like Node.js.
Most of ES6's syntactical advances, like those mentioned above, are supported natively by 6to5. Support for inline Unicode literals and modules are available (with many common module formats like Common.js supported), but are disabled by default. Some features require a polyfill, an include that provides more complete emulation of an ES6 environment, but you can also elect to include only the needed components. However, a very small number of features, like proxies or tail calls, are not supported at all in 6to5.
According to McKenzie, 6to5 was inspired by his burgeoning curiosity in parsers and was created in part to help him understand the topic. "[6to5] was never intended to be this big project from the get-go," McKenzie admitted in an email conversation. "One of my friends who has a good following on GitHub actually starred it, and I woke up one day to a bunch of issues and hundreds of stars because some people started using it." Some of the people who've since come on board, he stated, include Ember core developer Stefan Penner.
Support for many individual ES6 features is trickling into the various browsers. Firefox, for instance, appears to be adding them more aggressively than Chrome, and in Chrome's case an experimental-features flag must be enabled to take advantage of those functions. It isn't clear when full ES6 support is slated to arrive; in the meantime plenty of space for third parties, like 6to5, can help smooth the transition.