It is transpiled from C to Go, meaning 90+% of the effort is mechanized.
Ad performance. In some micro benchmarks the Go version is ~4x slower: https://gitlab.com/cznic/libquickjs/-/blob/675ee343753c42341...
However, it's already ~25% faster, in a different benchmark, than another Go JS VM written from scratch: https://pkg.go.dev/modernc.org/quickjs@v0.14.0#hdr-Performan...
I am currently looking around if it can be improved more and there are some ideas to try out.