Shift FAQ


How will future ECMAScript versions be supported?

A new version of the Shift specification will be released shortly after the release of the next ECMAScript document. Shift ASTs that conform to earlier versions of the Shift specification may not conform to the most recent version of the Shift specification.

Is the Shift AST available in non-ECMAScript environments?

Nothing about the Shift AST specification requires implementations to be written in ECMAScript. The ECMAScript and Java implementations of many tools based on the Shift AST specification are maintained by Shape Security, with occasional contributions from the community. Shift-based tools have been created for Haskell and Go.

How should I contribute to the Shift projects?

To contribute to one of the ECMAScript implementations, please follow these steps.

  • Open a Github issue with a description of your desired change. If one exists already, leave a message stating that you are working on it with the date you expect it to be complete.
  • Fork the repo, and clone the forked repo.
  • Install dependencies with npm install.
  • Build and test in your environment with npm run build && npm test.
  • Create a feature branch. Make your changes. Add tests.
  • Build and test in your environment with npm run build && npm test.
  • Make a commit that includes the text "fixes #XX" where XX is the Github issue.
  • Open a Pull Request on Github.