{"id":15789392,"url":"https://github.com/danielgtaylor/es6test","last_synced_at":"2025-09-17T23:12:47.329Z","repository":{"id":33451034,"uuid":"37096428","full_name":"danielgtaylor/es6test","owner":"danielgtaylor","description":"ES6 native development test project","archived":false,"fork":false,"pushed_at":"2015-06-08T22:30:34.000Z","size":100,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-05T22:01:26.620Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielgtaylor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-08T22:30:21.000Z","updated_at":"2015-06-08T22:30:35.000Z","dependencies_parsed_at":"2022-09-08T11:50:21.626Z","dependency_job_id":null,"html_url":"https://github.com/danielgtaylor/es6test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Fes6test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Fes6test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Fes6test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgtaylor%2Fes6test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielgtaylor","download_url":"https://codeload.github.com/danielgtaylor/es6test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246516135,"owners_count":20790179,"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-10-04T22:01:13.626Z","updated_at":"2025-09-17T23:12:42.296Z","avatar_url":"https://github.com/danielgtaylor.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ES6 Native Support Tests\n\nThe goal of this repository is to track native support for ES6. Currently,\nthis requires a recent release of [iojs](https://iojs.org/).\n\n## Why Native?\n\nProjects like [Babel](http://babeljs.io/) support quite a lot of ES6 features,\nbut they tend to be slow and require an extra transpiling step. A typical\ndeveloper workflow includes linting, transpiling code, transpiling tests,\nrunning tests, etc. All of this takes valuable time and can slow you down, as\nwell as cause serious frustration trying to fix bugs.\n\nIf instead you build against a specific subset of ES6 using the latest iojs,\nthen you can get the performance of normal javascript with some enhanced\nfeatures like classes. As iojs and Node merge and new releases come out, you\ncan start using more features that are currently unsupported (e.g. default\nparameters), allowing you to slowly transition to ES6 without frustrating\ndevelopers.\n\n### Speed comparison\n\nUsing this tiny project as an example to highlight startup time cost, here\nare some initial results run on a 2015 Macbook Pro:\n\nCommand              | Cached     | Time\n-------------------- | ---------- | ----\n`npm test`           | Cold start | 0.650s\n`npm test`           | Cached     | 0.580s\n`npm run test-babel` | Cold start | 2.5s\n`npm run test-babel` | Cached     | 1.3s\n\n### Releases\n\nObviously, if you wish to support more than the latest bleeding edge release\nyou will still need to rely on a transpiler. The beauty of this approach is\nthat you can develop on the bleeding edge, but transpile and test as a\nprecondition of release. This gives you the best of both worlds, and any code\npushes you do to GitHub can be run through all supported versions after\ntranspiling on a CI host. You can still get high confidence in your code\nwithout constantly waiting.\n\n## Supported Features\n\nThis is a list of the features that are currently supported and can be used\nnatively:\n\n- The `let` and `const` keywords\n- Classes including `extends` and `super`\n- Arrow functions (**without** `this` pass-through)\n- String templates\n\nAdditionally:\n\n- Tests are native. They run fast and report the correct line numbers.\n- Code coverage is native. It reports the correct line numbers and original\n  source.\n\n## Important Missing Features\n\nThese will be supported as V8 adds support. Hopefully soon!\n\n- No support for modules (`import`, `export`)\n- No support for destructuring `{foo, bar} = myobj;`\n- No default parameters `function foo(value=1)`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgtaylor%2Fes6test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielgtaylor%2Fes6test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgtaylor%2Fes6test/lists"}