{"id":13803557,"url":"https://github.com/thlorenz/es6ify","last_synced_at":"2025-04-12T15:38:28.106Z","repository":{"id":7573246,"uuid":"8927771","full_name":"thlorenz/es6ify","owner":"thlorenz","description":"browserify \u003e=v2 transform to compile JavaScript.next (ES6) to JavaScript.current (ES5) on the fly.","archived":false,"fork":false,"pushed_at":"2017-06-12T01:47:33.000Z","size":1945,"stargazers_count":593,"open_issues_count":15,"forks_count":31,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-03T16:12:28.657Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://thlorenz.github.com/es6ify/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thlorenz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-21T11:59:03.000Z","updated_at":"2025-03-04T10:48:35.000Z","dependencies_parsed_at":"2022-08-06T20:15:09.013Z","dependency_job_id":null,"html_url":"https://github.com/thlorenz/es6ify","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thlorenz%2Fes6ify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thlorenz%2Fes6ify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thlorenz%2Fes6ify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thlorenz%2Fes6ify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thlorenz","download_url":"https://codeload.github.com/thlorenz/es6ify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248590597,"owners_count":21129857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T01:00:35.335Z","updated_at":"2025-04-12T15:38:28.077Z","avatar_url":"https://github.com/thlorenz.png","language":"JavaScript","readme":"# es6ify [![build status](https://secure.travis-ci.org/thlorenz/es6ify.png?branch=master)](http://travis-ci.org/thlorenz/es6ify)\n\n[![NPM](https://nodei.co/npm/es6ify.png?downloads=true\u0026stars=true)](https://nodei.co/npm/es6ify/)\n\n[browserify](https://github.com/substack/node-browserify) `\u003e=v2` transform to compile JavaScript.next (ES6) to\nJavaScript.current (ES5) on the fly.\n\n```js\nbrowserify({ debug: true })\n  .add(es6ify.runtime)\n  .transform(es6ify)\n  .require(require.resolve('./src/main.js'), { entry: true })\n  .bundle()\n  .pipe(fs.createWriteStream(bundlePath));\n```\n\nFind the full version of this example [here](https://github.com/thlorenz/es6ify/blob/master/example/build.js).\n\n## Installation\n\n    npm install es6ify\n\n## What You Get\n\n![screenshot](https://github.com/thlorenz/es6ify/raw/master/assets/screenshot.png)\n\n[Try it live](http://thlorenz.github.com/es6ify/)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**  *generated with [DocToc](http://doctoc.herokuapp.com/)*\n\n- [Enabling sourcemaps and related posts](#enabling-sourcemaps-and-related-posts)\n- [API](#api)\n- [Examples](#examples)\n\t- [es6ify.configure(filePattern : Regex)](#es6ifyconfigurefilepattern--regex)\n\t- [es6ify.traceurOverrides](#es6ifytraceuroverrides)\n- [Caching](#caching)\n- [Source Maps](#source-maps)\n- [Supported ES6 features](#supported-es6-features)\n\t- [arrowFunctions](#arrowfunctions)\n\t- [classes](#classes)\n\t- [defaultParameters](#defaultparameters)\n\t- [destructuring](#destructuring)\n\t- [forOf](#forof)\n\t- [propertyMethods](#propertymethods)\n\t- [propertyNameShorthand](#propertynameshorthand)\n\t- [templateLiterals](#templateliterals)\n\t- [restParameters](#restparameters)\n\t- [spread](#spread)\n\t- [generators](#generators)\n\t- [modules](#modules)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Enabling sourcemaps and related posts\n\n- In Chrome or Firefox: enabled by default\n- In IE: works in IE11 onward by default\n- [browserify-sourcemaps](http://thlorenz.com/blog/browserify-sourcemaps)\n- [html5 rocks sourcemaps post](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/)\n\n## API\n\n\u003c!-- START docme generated API please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN docme TO UPDATE --\u003e\n\n\u003cdiv\u003e\n\u003cdiv class=\"jsdoc-githubify\"\u003e\n\u003csection\u003e\n\u003carticle\u003e\n\u003cdiv class=\"container-overview\"\u003e\n\u003cdl class=\"details\"\u003e\n\u003c/dl\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"e6ify::runtime\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003ee6ify::runtime\u003cspan class=\"type-signature\"\u003e\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eThe traceur runtime exposed here so it can be included in the bundle via:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ebrowserify.add(es6ify.runtime)\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe runtime is quite large and not needed for all ES6 features and therefore not added to the bundle by default.\nSee \u003ca href=\"https://github.com/google/traceur-compiler/issues/1007#issuecomment-42837067\"\u003ethis comment\u003c/a\u003e for details.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js#L122\"\u003elineno 122\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"es6ify::traceurOverrides\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003ees6ify::traceurOverrides\u003cspan class=\"type-signature\"\u003e\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eAllows to override traceur compiler defaults.\u003c/p\u003e\n\u003cp\u003eIn order to support async functions (\u003ccode\u003easync\u003c/code\u003e/\u003ccode\u003eawait\u003c/code\u003e) do:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ees6ify.traceurOverrides = { asyncFunctions: true }\u003c/code\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js#L139\"\u003elineno 139\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003cdl\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"es6ify\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003ees6ify\u003cspan class=\"signature\"\u003e()\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {function}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eThe es6ify transform to be used with browserify.\u003c/p\u003e\n\u003ch4\u003eExample\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003ebrowserify().transform(es6ify)\u003c/code\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js#L99\"\u003elineno 99\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003efunction that returns a \u003ccode\u003eTransformStream\u003c/code\u003e when called with a \u003ccode\u003efile\u003c/code\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003efunction\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"es6ify::compileFile\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003ees6ify::compileFile\u003cspan class=\"signature\"\u003e(file, src)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {string}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eCompile function, exposed to be used from other libraries, not needed when using es6ify as a transform.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003efile\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003estring\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003ename of the file that is being compiled to ES5\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003esrc\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003estring\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003esource of the file being compiled to ES5\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js#L20\"\u003elineno 20\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003ecompiled source\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003estring\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/dd\u003e\n\u003cdt\u003e\n\u003ch4 class=\"name\" id=\"es6ify::configure\"\u003e\u003cspan class=\"type-signature\"\u003e\u003c/span\u003ees6ify::configure\u003cspan class=\"signature\"\u003e(\u003cspan class=\"optional\"\u003efilePattern\u003c/span\u003e)\u003c/span\u003e\u003cspan class=\"type-signature\"\u003e \u0026rarr; {function}\u003c/span\u003e\u003c/h4\u003e\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eConfigurable es6ify transform function that allows specifying the \u003ccode\u003efilePattern\u003c/code\u003e of files to be compiled.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch5\u003eParameters:\u003c/h5\u003e\n\u003ctable class=\"params\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eName\u003c/th\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth class=\"last\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"name\"\u003e\u003ccode\u003efilePattern\u003c/code\u003e\u003c/td\u003e\n\u003ctd class=\"type\"\u003e\n\u003cspan class=\"param-type\"\u003estring\u003c/span\u003e\n\u003c/td\u003e\n\u003ctd class=\"attributes\"\u003e\n\u0026lt;optional\u003e\u003cbr\u003e\n\u003c/td\u003e\n\u003ctd class=\"description last\"\u003e\u003cp\u003e(default: `/.js$/) pattern of files that will be es6ified\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdl class=\"details\"\u003e\n\u003cdt class=\"tag-source\"\u003eSource:\u003c/dt\u003e\n\u003cdd class=\"tag-source\"\u003e\u003cul class=\"dummy\"\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js\"\u003eindex.js\u003c/a\u003e\n\u003cspan\u003e, \u003c/span\u003e\n\u003ca href=\"https://github.com/thlorenz/es6ify/blob/master/index.js#L112\"\u003elineno 112\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003ch5\u003eReturns:\u003c/h5\u003e\n\u003cdiv class=\"param-desc\"\u003e\n\u003cp\u003efunction that returns a \u003ccode\u003eTransformStream\u003c/code\u003e when called with a \u003ccode\u003efile\u003c/code\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdl\u003e\n\u003cdt\u003e\nType\n\u003c/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"param-type\"\u003efunction\u003c/span\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c/article\u003e\n\u003c/section\u003e\n\u003c/div\u003e\n\n*generated with [docme](https://github.com/thlorenz/docme)*\n\u003c/div\u003e\n\u003c!-- END docme generated API please keep comment here to allow auto update --\u003e\n\n## Examples\n\n### es6ify.configure(filePattern : Regex)\n\nThe default file pattern includes all JavaScript files, but you may override it in order to only transform files coming\nfrom a certain directory, with a specific file name and/or extension, etc.\n\nBy configuring the regex to exclude ES5 files, you can optimize the performance of the transform. However transforming\nES5 JavaScript will work since it is a subset of ES6.\n\n```js\nbrowserify({ debug: true })\n  .add(require('es6ify').runtime)\n   // compile all .js files except the ones coming from node_modules\n  .transform(require('es6ify').configure(/^(?!.*node_modules)+.+\\.js$/))\n  .require(require.resolve('./src/main.js'), { entry: true })\n  .bundle()\n  .pipe(fs.createWriteStream(bundlePath));\n```\n\n### es6ify.traceurOverrides\n\nSome features supported by traceur are still experimental: either nonstandard, proposed but not yet standardized, or\njust too slow to use for most code. Therefore Traceur disables them by default. They can be enabled by overriding these\noptions.\n\nFor instance to support the async functions (`async`/`await`) feature you'd do the following.\n\n```js\nvar es6ify = require('es6ify');\nes6ify.traceurOverrides = { asyncFunctions: true };\nbrowserify({ debug: true })\n  .add(es6ify.runtime)\n  .require(require.resolve('./src/main.js'), { entry: true })\n  .bundle()\n  .pipe(fs.createWriteStream(bundlePath));\n```\n\n## Caching\n\nWhen es6ify is run on a development server to help generate the browserify bundle on the fly, it makes sense to only\nrecompile ES6 files that changed. Therefore es6ify caches previously compiled files and just pulls them from there if no\nchanges were made to the file.\n\n## Source Maps\n\nes6ify instructs the traceur transpiler to generate source maps. It then inlines all original sources and adds the\nresulting source map `base64` encoded to the bottom of the transformed content. This allows debugging the original ES6\nsource when using the `debug` flag with browserify.\n\nIf the `debug` flag is not set, these source maps will be removed by browserify and thus will not be contained inside\nyour production bundle.\n\n## Supported ES6 features\n\n### arrowFunctions\n\n```js\nvar log = msg =\u003e console.log(msg);\n```\n\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/features/arrow-functions.js)\n\n### classes\n\n```js\nclass Character {\n  constructor(x, y, name) {\n    this.x = x;\n    this.y = y;\n  }\n  attack(character) {\n    console.log('attacking', character);\n  }\n}\n\nclass Monster extends Character {\n  constructor(x, y, name) {\n    super(x, y);\n    this.name = name;\n    this.health_ = 100;\n  }\n\n  attack(character) {\n    super.attack(character);\n  }\n\n  get isAlive() { return this.health \u003e 0; }\n  get health() { return this.health_; }\n  set health(value) {\n    if (value \u003c 0) throw new Error('Health must be non-negative.');\n    this.health_ = value;\n  }\n}\n```\n\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/make-monster.js)\n\n### defaultParameters\n\n```js\nfunction logDeveloper(name, codes = 'JavaScript', livesIn = 'USA') {\n  console.log('name: %s, codes: %s, lives in: %s', name, codes, livesIn);\n};\n```\n\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/features/default-parameters.js)\n\n### destructuring\n\n```js\nvar [a, [b], c, d] = ['hello', [', ', 'junk'], ['world']];\nconsole.log(a + b + c); // hello, world\n```\n\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/features/destructuring.js)\n\n### forOf\n\n```js\nfor (let element of [1, 2, 3]) {\n  console.log('element:', element);\n}\n```\n\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/features/iterators.js)\n\n### propertyMethods\n\n```js\nvar object = {\n  prop: 42,\n  // No need for function\n  method() {\n    return this.prop;\n  }\n};\n```\n\n### propertyNameShorthand\n\n```js\nvar foo = 'foo';\nvar bar = 'bar';\nvar obj = { foo, bar };\n```\n\n### templateLiterals\n\n```js\nvar x = 5, y = 10;\nconsole.log(`${x} + ${y} = ${ x + y}`)\n// 5 + 10 = 15\n```\n\n### restParameters\n\n```js\nfunction printList(listname, ...items) {\n  console.log('list %s has the following items', listname);\n  items.forEach(function (item) { console.log(item); });\n};\n```\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/features/rest-parameters.js)\n\n\n### spread\n\n```js\nfunction add(x, y) {\n  console.log('%d + %d = %d', x, y, x + y);\n}\nvar numbers = [5, 10]\nadd(...numbers);\n// 5 + 10 = 15\n};\n```\n\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/features/spread-operator.js)\n\n### generators\n\n```js\n// A binary tree class.\nfunction Tree(left, label, right) {\n  this.left = left;\n  this.label = label;\n  this.right = right;\n}\n\n// A recursive generator that iterates the Tree labels in-order.\nfunction* inorder(t) {\n  if (t) {\n    yield* inorder(t.left);\n    yield t.label;\n    yield* inorder(t.right);\n  }\n}\n\n// Make a tree\nfunction make(array) {\n  // Leaf node:\n  if (array.length == 1) return new Tree(null, array[0], null);\n  return new Tree(make(array[0]), array[1], make(array[2]));\n}\n\n\nlet tree = make([[['a'], 'b', ['c']], 'd', [['e'], 'f', ['g']]]);\nconsole.log('generating tree labels in order:');\n\n// Iterate over it\nfor (let node of inorder(tree)) {\n  console.log(node); // a, b, c, d, ...\n}\n```\n\n[full example](https://github.com/thlorenz/es6ify/blob/master/example/src/features/generators.js)\n\n### block scoping\n\n```js\n{\n  let tmp = 5;\n}\nconsole.log(typeof tmp === 'undefined'); // true\n```\n\n### modules\n\nImports and exports are converted to `commonjs` style `require` and `module.exports` statements to seamlessly integrate\nwith browserify.\n","funding_links":[],"categories":["Transpilers"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthlorenz%2Fes6ify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthlorenz%2Fes6ify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthlorenz%2Fes6ify/lists"}