Highly experiemental, I'm not even sure these work currently. Original author is Robery Johnstone, and his mercurial repository can be found at https://bitbucket.org/rj/golang-javascriptcore/. I have updated the bindings to work with the latest changes to the reflect API, bits of it manually. The entire test suite minus one function (finally!) passes.
Update (2013/10/16): The test suite does not work at all, but it compiles again with go 1.0. Feel free to hack away at this if you think it might be useful :).
Update (2013/12/26): Thanks to @sqs, the test suite now passes. This library should still be considered "experimental", but should work.
go get github.com/crazy2be/gojs
package main
import (
"github.com/crazy2be/gojs"
"fmt"
)
func main() {
ctx := gojs.NewContext()
defer ctx.Release()
ret, err := ctx.EvaluateScript("['hello', 'world'].join(' ')", nil, ".", 0)
if err != nil {
fmt.Println("Script had an error :(", ctx.ToStringOrDie(err))
return
}
if ret == nil {
fmt.Println("Nothing returned...")
return
}
retstr := ctx.ToStringOrDie(ret)
fmt.Println(retstr)
}
(for anyone interested)
- Get the test suite to pass ;)
- Move as many functions as possible off of context. We should be able to make a nicely broken-down API where the conceptual weight is lower. For example, all of the functions that take
obj *Object
as the first parameter should really just be functions on*Object
directly. - ???
- PROFIT! (i.e. make something cool).
There's not much documentation, because the original had no documentation. If I find a use for this beyond curiousity, I might add that as I go. Current documentation generated by godoc is available at http://godoc.org/github.com/crazy2be/gojs.