Skip to content
ECMAScript 2015 (ECMA-262 6th Edition) compiler and runtime
Java JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Sync with latest drafts and update deps Apr 15, 2018
.gitignore Proper file permissions Feb 9, 2016
.travis.yml Sync with latest drafts and update deps Apr 15, 2018
LICENSE ES2018 updates Nov 27, 2017
NOTICE Proper file permissions Feb 9, 2016 Fix Markdown formatting (#22) Mar 6, 2018


ECMAScript compiler and runtime written in Java.

Build Status

Implementation Status

Implements ES2018 Draft 2018-10-25, ES2018 Intl Draft 2018-10-24, and some of the current proposals.

ECMAScript proposals below stage 3 are not enabled by default. To enable them use the --stage command line parameter.

Note: Support of stage 2 (or below) proposals is highly experimental (cf. TC39 Process), implementation incompatibilities are to be expected.

Build Instructions and Shell


Build Instructions

  • Clone this repository git clone && cd es6draft
  • Create the executable with mvn package


  • Start the shell using either ./bin/es6draft or .\bin\es6draft.bat on Windows®.
  • ./bin/es6draft --help prints the available options.

Test Suites

Test262 Test Suite

To start the Test262 test262 test runner select the test262 Maven profile and set the TEST262_PATH environment variable or use the -Dtest262.path parameter.

export TEST262_PATH = <test262 main directory>
mvn test -P test262

mvn test -P test262 -Dtest262.path=<test262 main directory>

The -Dtest262.include parameter can be used to select specific test cases:

mvn test -P test262 -Dtest262.include="test/built-ins/Array/prototype/**/*.js"

mvn test -P test262 -Dtest262.include="test/built-ins/{Boolean\,Number}/prototype/**/*.js"

The -Dtest262.exclude parameter allows to exclude test cases:

mvn test -P test262 -Dtest262.exclude="test/built-ins/**/*.js"

See here for the test262 default configuration.

External Test Suites

Additional test suites are available to run tests from ChakraCore, Mozilla, V8, and WebKit using the external Maven profile.

The following environment variables need to be set to run these tests:

  • CHAKRA_PATH: ChakraCore main directory
  • MOZILLA_PATH: Mozilla-Central main directory
  • V8_PATH: V8 main directory
  • WEBKIT_PATH: WebKit main directory

Alternatively, the -Dchakra.path=..., -Dmozilla.path=..., -Dv8.path=..., and -Dwebkit.path=... parameters can be used.

To skip an external test, use -D<name>.skip=true. For example to run only the Mozilla tests, use:

mvn test -P external -Dmozilla.path=<...> -Dchakra.skip=true -Dv8.skip=true -Dwebkit.skip=true

Built-in Test Suite

The built-in test suite is run when no other Maven profile was selected. In other words, it is run when the command mvn test is used.

You can’t perform that action at this time.