Go语言开发的JavaScript解释器:otto
jopen
12年前
这是一个采用原生Go语言开发的JavaScript分析器和解释器。
// Create a new runtime Otto := otto.New() Otto.Run(` abc = 2 + 2 console.log("The value of abc is " + abc) // The value of abc is 4 `) value, err := Otto.Get("abc") { // value is an int64 with a value of 4 value, _ := value.ToInteger() } Otto.Set("def", 11) Otto.Run(` console.log("The value of def is " + def) // The value of def is 11 `) Otto.Set("xyzzy", "Nothing happens.") Otto.Run(` console.log(xyzzy.length) // 16 `) value, _ = Otto.Run("xyzzy.length") { // value is an int64 with a value of 16 value, _ := value.ToInteger() } value, err = Otto.Run("abcdefghijlmnopqrstuvwxyz.length") if err != nil { // err = ReferenceError: abcdefghijlmnopqrstuvwxyz is not defined // If there is an error, then value.IsUndefined() is true ... }