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.
JAVA_HOME
environment variable to point to the JDK installation directorygit clone https://github.com/anba/es6draft.git && cd es6draft
mvn package
./bin/es6draft
or .\bin\es6draft.bat
on Windows®../bin/es6draft --help
prints the available options.To start the 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 directoryAlternatively, 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.