Go语言开发的JavaScript解释器:otto

jopen 11年前

这是一个采用原生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      ...  }

项目主页:http://www.open-open.com/lib/view/home/1350010424369