ECMAScript compiler and runtime written in Java.
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.
- Download and install JDK 8 or later
- Download and install Apache Maven 3 or later
- Set-up the
JAVA_HOME
environment variable to point to the JDK installation directory
- Clone this repository
git clone https://github.com/anba/es6draft.git && 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.
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
or:
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.
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 directoryMOZILLA_PATH
: Mozilla-Central main directoryV8_PATH
: V8 main directoryWEBKIT_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
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.