Gojis is an implementation of ECMAScript 2018 (ES 9). It basically is a JavaScript VM, just like Goja or Otto. The documentation can be found here.
Goja and Otto are both stuck at implementing most features of ES 5.1. This implementation aims to support ES 9, and, after that maybe even ES 10 (not released as of 2019-06-27) and later.
The Gojis VM can be run as a standalone, or you can embed it into your Go application by using the API. Go get it with
go get -u github.com/gojisvm/gojis
and start using it with
// FIXME: design an API, this is just a draft how it COULD look like
vm := gojis.NewVM()
proc := vm.EvaluateFiles("./*.js")
<-proc.Done()
For more documentation, please have a look at the API documentation.
The primary goal of this project is to have fun coding, as I love to code, but thinking about system designs and architectures is difficult. The ECMAScript language specification (which can be found in /docs
), takes care of most of these things already, so a contributor can really focus on implementation and optimization.
Another goal I am trying to achieve is, to provide the Go community with a JavaScript VM that supports at least ES 6 features. Goja and Otto are both stuck at implementing ES 5.1, but this implementation does exactly that.
There is a milestone to keep track of the implementation progress of ES 9.