top

Package otto is a JavaScript parser and interpreter written natively in Go.

http://godoc.org/github.com/robertkrimen/otto

import (
    "github.com/robertkrimen/otto"
)

Run something in the VM

vm := otto.New()
vm.Run(`
    abc = 2 + 2;
	console.log("The value of abc is " + abc); // 4
`)

Get a value out of the VM

value, err := vm.Get("abc")
	value, _ := value.ToInteger()
}

Set a number

vm.Set("def", 11)
vm.Run(`
	console.log("The value of def is " + def);
	// The value of def is 11
`)

Set a string

vm.Set("xyzzy", "Nothing happens.")
vm.Run(`
	console.log(xyzzy.length); // 16
`)

Get the value of an expression

value, _ = vm.Run("xyzzy.length")
{
	// value is an int64 with a value of 16
	value, _ := value.ToInteger()
}

An error happens

value, err = vm.Run("abcdefghijlmnopqrstuvwxyz.length")
if err != nil {
	// err = ReferenceError: abcdefghijlmnopqrstuvwxyz is not defined
	// If there is an error, then value.IsUndefined() is true
	...
}

Set a Go function

vm.Set("sayHello", func(call otto.FunctionCall) otto.Value {
    fmt.Printf("Hello, %s.\n", call.Argument(0).String())
    return otto.Value{}
})

Set a Go function that returns something useful

vm.Set("twoPlus", func(call otto.FunctionCall) otto.Value {
    right, _ := call.Argument(0).ToInteger()
    result, _ := vm.ToValue(2 + right)
    return result
})

Use the functions in JavaScript

result, _ = vm.Run(`
    sayHello("Xyzzy");      // Hello, Xyzzy.
    sayHello();             // Hello, undefined

    result = twoPlus(2.0); // 4
`)

Parser

A separate parser is available in the parser package if you're just interested in building an AST.

http://godoc.org/github.com/robertkrimen/otto/parser

Parse and return an AST

filename := "" // A filename is optional
src := `
    // Sample xyzzy example
    (function(){
        if (3.14159 > 0) {
            console.log("Hello, World.");
            return;
        }

        var xyzzy = NaN;
        console.log("Nothing happens.");
        return xyzzy;
    })();
`

// Parse some JavaScript, yielding a *ast.Program and/or an ErrorList
program, err := parser.ParseFile(nil, filename, src, 0)

otto

You can run (Go) JavaScript from the commandline with: http://github.com/robertkrimen/otto/tree/master/otto

$ go get -v github.com/robertkrimen/otto/otto

Run JavaScript by entering some source on stdin or by giving otto a filename:

$ otto example.js

underscore

Optionally include the JavaScript utility-belt library, underscore, with this import:

import (
	"github.com/robertkrimen/otto"
	_ "github.com/robertkrimen/otto/underscore"
)

// Now every otto runtime will come loaded with underscore

For more information: http://github.com/robertkrimen/otto/tree/master/underscore

Caveat Emptor

The following are some limitations with otto:

* "use strict" will parse, but does nothing.
* The regular expression engine (re2/regexp) is not fully compatible with the ECMA5 specification.
* Otto targets ES5. ES6 features (eg: Typed Arrays) are not supported.

Regular Expression Incompatibility

Go translates JavaScript-style regular expressions into something that is "regexp" compatible via `parser.TransformRegExp`. Unfortunately, RegExp requires backtracking for some patterns, and backtracking is not supported by the standard Go engine: https://code.google.com/p/re2/wiki/Syntax

Therefore, the following syntax is incompatible:

(?=)  // Lookahead (positive), currently a parsing error
(?!)  // Lookahead (backhead), currently a parsing error
\1    // Backreference (\1, \2, \3, ...), currently a parsing error

A brief discussion of these limitations: "Regexp (?!re)" https://groups.google.com/forum/?fromgroups=#%21topic/golang-nuts/7qgSDWPIh_E

More information about re2: https://code.google.com/p/re2/

In addition to the above, re2 (Go) has a different definition for \s: [\t\n\f\r ]. The JavaScript definition, on the other hand, also includes \v, Unicode "Separator, Space", etc.

Halting Problem

If you want to stop long running executions (like third-party code), you can use the interrupt channel to do this:

package main

import (
    "errors"
    "fmt"
    "os"
    "time"

    "github.com/robertkrimen/otto"
)

var halt = errors.New("Stahp")

func main() {
    runUnsafe(`var abc = [];`)
    runUnsafe(`
    while (true) {
        // Loop forever
    }`)
}

func runUnsafe(unsafe string) {
    start := time.Now()
    defer func() {
        duration := time.Since(start)
        if caught := recover(); caught != nil {
            if caught == halt {
                fmt.Fprintf(os.Stderr, "Some code took to long! Stopping after: %v\n", duration)
                return
            }
            panic(caught) // Something else happened, repanic!
        }
        fmt.Fprintf(os.Stderr, "Ran code successfully: %v\n", duration)
    }()

    vm := otto.New()
    vm.Interrupt = make(chan func(), 1) // The buffer prevents blocking

    go func() {
        time.Sleep(2 * time.Second) // Stop after two seconds
        vm.Interrupt <- func() {
            panic(halt)
        }
    }()

    vm.Run(unsafe) // Here be dragons (risky code)
}

Where is setTimeout/setInterval?

These timing functions are not actually part of the ECMA-262 specification. Typically, they belong to the `windows` object (in the browser). It would not be difficult to provide something like these via Go, but you probably want to wrap otto in an event loop in that case.

For an example of how this could be done in Go with otto, see natto:

http://github.com/robertkrimen/natto

Here is some more discussion of the issue:

* http://book.mixu.net/node/ch2.html

* http://en.wikipedia.org/wiki/Reentrancy_%28computing%29

* http://aaroncrane.co.uk/2009/02/perl_safe_signals/

Imported by 600 package(s)

  1. fknsrs.biz/p/ottoext/fetch
  2. fknsrs.biz/p/ottoext/loop
  3. fknsrs.biz/p/ottoext/loop/looptask
  4. fknsrs.biz/p/ottoext/promise
  5. fknsrs.biz/p/ottoext/repl
  6. fknsrs.biz/p/ottoext/timers
  7. fknsrs.biz/p/ottoext/types
  8. github.com/101loops/go-reactjs
  9. github.com/89hmdys/otto/otto
  10. github.com/89hmdys/otto/repl
  11. github.com/89hmdys/otto/test
  12. github.com/BenLubar/cbgb
  13. github.com/BenLubar/suudsu
  14. github.com/BiggerNoise/otto/otto
  15. github.com/BiggerNoise/otto/test
  16. github.com/BlackEspresso/ServeJS
  17. github.com/BlackEspresso/ServeJS/plugins/cache
  18. github.com/BlackEspresso/ServeJS/plugins/crypto
  19. github.com/BlackEspresso/ServeJS/plugins/dns
  20. github.com/BlackEspresso/ServeJS/plugins/events
  21. github.com/BlackEspresso/ServeJS/plugins/file
  22. github.com/BlackEspresso/ServeJS/plugins/filewatch
  23. github.com/BlackEspresso/ServeJS/plugins/goquery
  24. github.com/BlackEspresso/ServeJS/plugins/htmlcheck
  25. github.com/BlackEspresso/ServeJS/plugins/http
  26. github.com/BlackEspresso/ServeJS/plugins/httpMappings
  27. github.com/BlackEspresso/ServeJS/plugins/httplistener
  28. github.com/BlackEspresso/ServeJS/plugins/mail
  29. github.com/BlackEspresso/ServeJS/plugins/modules
  30. github.com/BlackEspresso/ServeJS/plugins/mongodb
  31. github.com/BlackEspresso/ServeJS/plugins/settings
  32. github.com/BlackEspresso/ServeJS/plugins/stats
  33. github.com/BlackEspresso/ServeJS/plugins/tasks
  34. github.com/BlackEspresso/ServeJS/plugins/templating
  35. github.com/BlackEspresso/ServeJS/plugins/time
  36. github.com/BlackEspresso/ServeJS/plugins/websocket
  37. github.com/Cepave/open-falcon-backend/modules/query/gin_http/computeFunc
  38. github.com/Cepave/open-falcon-backend/modules/query/gin_http/grafana
  39. github.com/Cepave/query/gin_http/computeFunc
  40. github.com/Comcast/eel/eel/jtl
  41. github.com/Comcast/rulio/core
  42. github.com/DimShadoWWW/otto/otto
  43. github.com/DimShadoWWW/otto/test
  44. github.com/DisposaBoy/otto/otto
  45. github.com/Earthdollar/go-earthdollar/common/natspec
  46. github.com/Earthdollar/go-earthdollar/jsre
  47. github.com/Earthdollar/go-earthdollar/rpc
  48. github.com/Felamande/god/lib/jsvm
  49. github.com/Felamande/god/modules/go
  50. github.com/Felamande/god/modules/god
  51. github.com/Felamande/god/modules/hotkey
  52. github.com/Felamande/god/modules/localstorage
  53. github.com/Felamande/god/modules/log
  54. github.com/Felamande/god/modules/math
  55. github.com/Felamande/god/modules/os
  56. github.com/Felamande/god/modules/path
  57. github.com/Felamande/otto/otto
  58. github.com/Felamande/otto/repl
  59. github.com/Felamande/otto/test
  60. github.com/Forsevin/Not3D/n3
  61. github.com/Joushou/otto/otto
  62. github.com/Joushou/otto/test
  63. github.com/KamiQuasi/cayley/query/gremlin
  64. github.com/Kavec/cayley/query/gremlin
  65. github.com/Komosa/smartbank
  66. github.com/LiranCohen/quarid-go/vm/js
  67. github.com/My-Sign/freegeoip
  68. github.com/NetEase/airinput
  69. github.com/NetSys/quilt/quiltctl/command
  70. github.com/NetSys/quilt/stitch
  71. github.com/Nimblic/otto/otto
  72. github.com/Nimblic/otto/test
  73. github.com/PolyFloyd/otto/otto
  74. github.com/PolyFloyd/otto/test
  75. github.com/SKatiyar/cayley/query/gremlin
  76. github.com/SchumacherFM/ht/ht
  77. github.com/StickmanVentures/creative-app-engine/notnode
  78. github.com/TheThingsNetwork/ttn/core/adapters/fields
  79. github.com/TheThingsNetwork/ttn/core/handler/functions
  80. github.com/Vaultpls/Gwitch-JS
  81. github.com/Winslett/transporter/pkg/adaptor
  82. github.com/XuHaoJun/dao
  83. github.com/XuHaoJun/emission-otto
  84. github.com/Zenithar/aktarus/plugins
  85. github.com/Zenithar/aktarus/utils
  86. github.com/ZuMingDai/pholcus/app/spider
  87. github.com/abcum/orbit
  88. github.com/abeconnelly/glfd
  89. github.com/abeconnelly/l7g-p7e-untap
  90. github.com/abeconnelly/l7g-v5t-clinvar
  91. github.com/abeconnelly/lci
  92. github.com/adrianuswarmenhoven/otto/otto
  93. github.com/aganno2/otto/otto
  94. github.com/aganno2/otto/test
  95. github.com/agupta666/cayley/query/gremlin
  96. github.com/aichaos/rivescript-go/lang/javascript
  97. github.com/alaska/freegeoip
  98. github.com/alexozer/gopherjs-bind/jsbind
  99. github.com/alpe/cayley/query/gremlin
  100. github.com/alphazero/go-ethereum/console
  101. github.com/alphazero/go-ethereum/internal/jsre
  102. github.com/andrebq/webview/fileserver
  103. github.com/andrew-d/cayley/query/gremlin
  104. github.com/andrewwebber/walrus
  105. github.com/andrewzeneski/otto/otto
  106. github.com/artemkaint/docker-powerdns-dock
  107. github.com/arunjit/cayley/query/gremlin
  108. github.com/ashaniray/mailhook
  109. github.com/astockwell/otto/otto
  110. github.com/astockwell/otto/repl
  111. github.com/astockwell/otto/test
  112. github.com/aubm/postmanerator/postman
  113. github.com/azylman/cayley/query/gremlin
  114. github.com/badfortrains/Fergulator/nes
  115. github.com/barakmich/cayley/query/gremlin
  116. github.com/bas-vk/go-ethereum/console
  117. github.com/bas-vk/otto/otto
  118. github.com/bas-vk/otto/repl
  119. github.com/bas-vk/otto/test
  120. github.com/beauhoyt/cayley/query/gremlin
  121. github.com/benhinchley/mooove
  122. github.com/bennyscetbun/otto/otto
  123. github.com/bennyscetbun/otto/repl
  124. github.com/bennyscetbun/otto/test
  125. github.com/bh5-go/otto/otto
  126. github.com/bh5-go/otto/test
  127. github.com/biggernoise/otto/otto
  128. github.com/biggernoise/otto/test
  129. github.com/blackgold/Fergulator/nes
  130. github.com/blockc/go-ethereum/console
  131. github.com/blockc/go-ethereum/internal/jsre
  132. github.com/bmatsuo/cayley/query/gremlin
  133. github.com/bmconklin/cayley/query/gremlin
  134. github.com/boomshroom/otto/otto
  135. github.com/boomshroom/otto/test
  136. github.com/boutros/cayley/query/gremlin
  137. github.com/bradberger/go-ethereum/jsre
  138. github.com/bradberger/go-ethereum/rpc
  139. github.com/brandonblack/go-ethereum/console
  140. github.com/brandonblack/go-ethereum/internal/jsre
  141. github.com/brandonvfx/go-plugins/ottojs
  142. github.com/brsyuksel/conquest/conquest
  143. github.com/brw31415/go-ethereum/cmd/geth
  144. github.com/brw31415/go-ethereum/jsre
  145. github.com/brw31415/go-ethereum/rpc
  146. github.com/bryanl/bandcamp-go
  147. github.com/byorty/cayley/query/gremlin
  148. github.com/caltechlibrary/aspace
  149. github.com/caltechlibrary/cait
  150. github.com/caltechlibrary/epgo
  151. github.com/caltechlibrary/ostdlib
  152. github.com/cayleygraph/cayley/query/gremlin
  153. github.com/chuanyi/otto/otto
  154. github.com/chucklqsun/ptlogin
  155. github.com/chyeh/open-falcon-backend/modules/query/gin_http/computeFunc
  156. github.com/chyeh/open-falcon-backend/modules/query/gin_http/grafana
  157. github.com/ckeyer/go-ethereum/console
  158. github.com/ckeyer/go-ethereum/internal/jsre
  159. github.com/clone1018/gilgamesh/loader
  160. github.com/cloudwalkio/cayley/query/gremlin
  161. github.com/cloudwan/gohan/extension/framework/runner
  162. github.com/cloudwan/gohan/extension/otto
  163. github.com/codepope/transporter/pkg/adaptor
  164. github.com/compose-ex/transporter-contrib/pkg/adaptor
  165. github.com/compose/transporter/cmd/transporter
  166. github.com/compose/transporter/pkg/adaptor/transformer
  167. github.com/conseweb/go-ethereum/jsre
  168. github.com/conseweb/go-ethereum/rpc
  169. github.com/corebob/SampleConverter
  170. github.com/couchbase/sg-bucket
  171. github.com/couchbase/sync_gateway/channels
  172. github.com/couchbase/sync_gateway/db
  173. github.com/couchbaselabs/cbgb
  174. github.com/couchbaselabs/sync_gateway/channels
  175. github.com/couchbaselabs/sync_gateway/db
  176. github.com/crolek/godust
  177. github.com/crosbymichael/skydock
  178. github.com/cvillecsteele/mithras/modules/autoscaling
  179. github.com/cvillecsteele/mithras/modules/beanstalk
  180. github.com/cvillecsteele/mithras/modules/cli
  181. github.com/cvillecsteele/mithras/modules/core
  182. github.com/cvillecsteele/mithras/modules/daemon
  183. github.com/cvillecsteele/mithras/modules/elasticache
  184. github.com/cvillecsteele/mithras/modules/elb
  185. github.com/cvillecsteele/mithras/modules/exec
  186. github.com/cvillecsteele/mithras/modules/filepath
  187. github.com/cvillecsteele/mithras/modules/fs
  188. github.com/cvillecsteele/mithras/modules/iam
  189. github.com/cvillecsteele/mithras/modules/instance
  190. github.com/cvillecsteele/mithras/modules/keypairs
  191. github.com/cvillecsteele/mithras/modules/log
  192. github.com/cvillecsteele/mithras/modules/network
  193. github.com/cvillecsteele/mithras/modules/os
  194. github.com/cvillecsteele/mithras/modules/peek
  195. github.com/cvillecsteele/mithras/modules/process
  196. github.com/cvillecsteele/mithras/modules/rand
  197. github.com/cvillecsteele/mithras/modules/rds
  198. github.com/cvillecsteele/mithras/modules/readline
  199. github.com/cvillecsteele/mithras/modules/region
  200. github.com/cvillecsteele/mithras/modules/remote
  201. github.com/cvillecsteele/mithras/modules/require
  202. github.com/cvillecsteele/mithras/modules/route53
  203. github.com/cvillecsteele/mithras/modules/routetables
  204. github.com/cvillecsteele/mithras/modules/s3
  205. github.com/cvillecsteele/mithras/modules/script
  206. github.com/cvillecsteele/mithras/modules/secgroup
  207. github.com/cvillecsteele/mithras/modules/sns
  208. github.com/cvillecsteele/mithras/modules/sqs
  209. github.com/cvillecsteele/mithras/modules/subnet
  210. github.com/cvillecsteele/mithras/modules/tag
  211. github.com/cvillecsteele/mithras/modules/user
  212. github.com/cvillecsteele/mithras/modules/vpc
  213. github.com/cvillecsteele/mithras/modules/web
  214. github.com/cvillecsteele/mithras/modules/workers
  215. github.com/cxfksword/mocku/controllers
  216. github.com/daemonl/go_gsd/dynamic
  217. github.com/dancannon/gofetch/sandbox/js
  218. github.com/dancannon/otto/otto
  219. github.com/darkliquid/leader1/plugins
  220. github.com/darkliquid/leader1/utils
  221. github.com/darkliquid/otto/otto
  222. github.com/darkliquid/otto/repl
  223. github.com/darkliquid/otto/test
  224. github.com/dc0d/isottope
  225. github.com/dc0d/isottope/examples
  226. github.com/ddliu/motto
  227. github.com/ddliu/motto/underscore
  228. github.com/ddliu/nodego
  229. github.com/decebal/go-ethereum/jsre
  230. github.com/decebal/go-ethereum/rpc
  231. github.com/deepglint/streamtools/st/library
  232. github.com/dennwc/cayley/query/gremlin
  233. github.com/deoxxa/ottoext/fetch
  234. github.com/deoxxa/ottoext/loop
  235. github.com/deoxxa/ottoext/process
  236. github.com/deoxxa/ottoext/promise
  237. github.com/deoxxa/ottoext/repl
  238. github.com/deoxxa/ottoext/timers
  239. github.com/deoxxa/talks/go-and-javascript
  240. github.com/didip/jazz
  241. github.com/didip/jazz/examples
  242. github.com/didip/jazz/jsutil
  243. github.com/didip/konfig/engine
  244. github.com/diegobernardes/go-reactjs
  245. github.com/dmitris/otto/otto
  246. github.com/dmitris/otto/test
  247. github.com/dominicphillips/go-ethereum/jsre
  248. github.com/dominicphillips/go-ethereum/rpc
  249. github.com/doubledutch/otto/otto
  250. github.com/doubledutch/otto/test
  251. github.com/dtylman/otto/otto
  252. github.com/dtylman/otto/test
  253. github.com/dylanPang/pholcus/app/spider
  254. github.com/ebuchman/coltrane
  255. github.com/elct9620/go-plurk-robot/robot
  256. github.com/eliquious/otto/otto
  257. github.com/eliquious/otto/test
  258. github.com/elos-retired/space
  259. github.com/elos/interactive
  260. github.com/elos/space
  261. github.com/emicklei/melrose/cli
  262. github.com/emicklei/otto/otto
  263. github.com/emicklei/otto/test
  264. github.com/erikstmartin/cayley/src/gremlin
  265. github.com/escoz/basecouch
  266. github.com/ethereum/go-ethereum/console
  267. github.com/ethereum/go-ethereum/internal/ethapi
  268. github.com/ethereum/go-ethereum/internal/jsre
  269. github.com/ethereumproject/go-ethereum/console
  270. github.com/ethereumproject/go-ethereum/internal/jsre
  271. github.com/etherninja/go-ethereum/jsre
  272. github.com/etherninja/go-ethereum/rpc
  273. github.com/euforic/otto/otto
  274. github.com/euforic/otto/test
  275. github.com/fabioberger/go-ethereum/console
  276. github.com/fabioberger/go-ethereum/internal/jsre
  277. github.com/farazdagi/go-ethereum/jsre
  278. github.com/fbornhofen/otto/otto
  279. github.com/fernandosanchezjr/otto/otto
  280. github.com/fernandosanchezjr/otto/repl
  281. github.com/fernandosanchezjr/otto/test
  282. github.com/fgrehm/devstep-cli/devstep
  283. github.com/fulldump/otto/otto
  284. github.com/fulldump/otto/repl
  285. github.com/fulldump/otto/test
  286. github.com/fwessels/golanglambda
  287. github.com/georgyo/freegeoip
  288. github.com/gernest/ottox
  289. github.com/gernest/wuxia/gen
  290. github.com/ghostnetwrk/ghostnet/common/natspec
  291. github.com/ghostnetwrk/ghostnet/jsre
  292. github.com/ghostnetwrk/ghostnet/rpc
  293. github.com/go-nut/otto/otto
  294. github.com/go-webdb/webdb
  295. github.com/golang-cjr/xep/jsexecutor
  296. github.com/google/cayley/query/gremlin
  297. github.com/gophergala2016/mailhook
  298. github.com/gophergala2016/scattr
  299. github.com/gxb5443/cayley/query/gremlin
  300. github.com/gysan/pholcus/app/spider
  301. github.com/hattya/aster
  302. github.com/hazbo/otto/otto
  303. github.com/hdonnay/cloudctl
  304. github.com/henkman/exquisitecode
  305. github.com/henrylee2cn/otto/otto
  306. github.com/henrylee2cn/otto/test
  307. github.com/henrylee2cn/pholcus/app/spider
  308. github.com/henryscala/sipq/scenario
  309. github.com/heridev/gophergala_repositories/kasperbrett
  310. github.com/hidu/api-front/proxy
  311. github.com/hidu/api-man/proxy
  312. github.com/hidu/pproxy/serve
  313. github.com/hongjinqiu/gometa/script
  314. github.com/iandioch/betelgeuse
  315. github.com/ilove789110/go-ethereum/console
  316. github.com/ilove789110/go-ethereum/internal/jsre
  317. github.com/imc-trading/crywolf/consumer/kafka
  318. github.com/immesys/bw2bc/console
  319. github.com/immesys/bw2bc/internal/jsre
  320. github.com/iopipe/turtle-shell
  321. github.com/ironbay/troy
  322. github.com/j6n/Not3D/n3
  323. github.com/j6n/noye/core/lib
  324. github.com/j6n/noye/core/script
  325. github.com/jackwakefield/gopac
  326. github.com/jamescun/leftpad
  327. github.com/janne/janitor
  328. github.com/jcmdev0/otto/otto
  329. github.com/jcmdev0/otto/test
  330. github.com/jcw/jeebus/gadgets/javascript
  331. github.com/jeffallen/go-ethereum/jsre
  332. github.com/jeffallen/go-ethereum/rpc
  333. github.com/jelinden/go-isomorphic-react
  334. github.com/jianhuihi/pholcus/app/spider
  335. github.com/jimenezrick/go-ethereum/jsre
  336. github.com/jimenezrick/go-ethereum/rpc
  337. github.com/jonas747/fortia-server/core
  338. github.com/joushou/otto/otto
  339. github.com/joushou/otto/test
  340. github.com/jsccast/cayley/query/gremlin
  341. github.com/jsccast/tinygraph
  342. github.com/jsccast/tinygraph/tinygraph
  343. github.com/jumbucks/go-jumbucksee/console
  344. github.com/jumbucks/go-jumbucksee/internal/jsre
  345. github.com/karalabe/go-ethereum/console
  346. github.com/karalabe/go-ethereum/internal/ethapi
  347. github.com/karalabe/go-ethereum/internal/jsre
  348. github.com/karalabe/go-ethereum/jsre
  349. github.com/kayon/otto/otto
  350. github.com/kayon/otto/test
  351. github.com/kazhuravlev/otto/otto
  352. github.com/kazhuravlev/otto/repl
  353. github.com/kazhuravlev/otto/test
  354. github.com/kenshaw/cayley/query/gremlin
  355. github.com/khanht-nguyen/Newton
  356. github.com/kildevaeld/motto
  357. github.com/kildevaeld/motto/modules
  358. github.com/kildevaeld/motto/motto
  359. github.com/kildevaeld/motto/underscore
  360. github.com/kildevaeld/scaffolt/vm/javascript
  361. github.com/komosa/smartbank
  362. github.com/koofr/autoproxy
  363. github.com/kpmy/xep/jsexecutor
  364. github.com/kreshikhin/otto/otto
  365. github.com/kreshikhin/otto/test
  366. github.com/kris-runzer/cayley/query/gremlin
  367. github.com/kurrik/tmxscripter/tmxscripter
  368. github.com/laprice/cayley/query/gremlin
  369. github.com/lavab/worker/runner
  370. github.com/lazytiger/otto/otto
  371. github.com/lenaten/cayley-1/query/gremlin
  372. github.com/leonardyp/pproxy/serve
  373. github.com/lgutschmidt/Flashy/storage
  374. github.com/libliflin/otto/otto
  375. github.com/linkeddata/computationservice
  376. github.com/linlexing/dbgo
  377. github.com/linlexing/dbgo/grade
  378. github.com/linlexing/dbgo/oftenfun
  379. github.com/linlexing/otto/otto
  380. github.com/linlexing/otto/test
  381. github.com/liujianping/otto/otto
  382. github.com/lqshixinlei/cayley/query/gremlin
  383. github.com/lukut/Flashy/storage
  384. github.com/lytics/cayley/query/gremlin
  385. github.com/makerbot/freegeoip
  386. github.com/martint17r/encodingjs
  387. github.com/matiasinsaurralde/bench/otto
  388. github.com/matryer/pangaea
  389. github.com/mattbasta/Legend-of-Adventure/entities
  390. github.com/mcoffin/mcoffinbot
  391. github.com/meteorhacks/go-shell/demo/hello
  392. github.com/meteorhacks/go-shell/gosh
  393. github.com/miaolz123/samaritan/trader
  394. github.com/migueltorreslopez/go-ethereum/console
  395. github.com/mikesimons/pacyak/pacsandbox
  396. github.com/miku/cayley/query/gremlin
  397. github.com/miku/ottily/cmd/ottily
  398. github.com/millken/go/proxy-tester
  399. github.com/miolini/jsonf/jsonflib
  400. github.com/montanaflynn/freegeoip
  401. github.com/mrap/go-reactjs
  402. github.com/msama/cayley/query/gremlin
  403. github.com/mschoch/otto/otto
  404. github.com/mschoch/tuq/planner
  405. github.com/msornay/go-ethereum/jsre
  406. github.com/msornay/go-ethereum/rpc
  407. github.com/multiplay/otto/otto
  408. github.com/multiplay/otto/test
  409. github.com/my-sign/freegeoip
  410. github.com/nablaone/golang-sandbox/07-javascript-interpreter
  411. github.com/nagydani/go-ethereum/console
  412. github.com/nagydani/go-ethereum/internal/jsre
  413. github.com/navy1125/otto/otto
  414. github.com/navy1125/otto/test
  415. github.com/netease/airinput
  416. github.com/niltonkummer/otto/otto
  417. github.com/nimblic/otto/otto
  418. github.com/nimblic/otto/test
  419. github.com/nlordell/utub
  420. github.com/noypi/election2016/comelec
  421. github.com/npolar/ghostdoc
  422. github.com/nytlabs/streamtools/st/library
  423. github.com/obscuren/go-ethereum/console
  424. github.com/obscuren/go-ethereum/internal/ethapi
  425. github.com/obscuren/go-ethereum/internal/jsre
  426. github.com/obscuren/hyperledger/jsre
  427. github.com/obscuren/otto/otto
  428. github.com/obscuren/otto/test
  429. github.com/ocdogan/otto/otto
  430. github.com/ocdogan/otto/repl
  431. github.com/ocdogan/otto/test
  432. github.com/onlyafly/wendigo
  433. github.com/onlyafly/wendigo/ottoexample
  434. github.com/orangesdk/skydock
  435. github.com/owulveryck/go-ethereum/console
  436. github.com/owulveryck/go-ethereum/internal/jsre
  437. github.com/pagecr/go-ethereum/jsre
  438. github.com/pagecr/go-ethereum/rpc
  439. github.com/paked/go-textconstants
  440. github.com/paked/otto/otto
  441. github.com/paked/otto/test
  442. github.com/panjjo/event
  443. github.com/panjjo/event/event
  444. github.com/panjjo/event/utils
  445. github.com/papplampe/exquisitecode
  446. github.com/pcasaretto/go-ethereum/common/natspec
  447. github.com/pcasaretto/go-ethereum/jsre
  448. github.com/pcasaretto/go-ethereum/rpc
  449. github.com/penlooktmp/cayley/query/gremlin
  450. github.com/peterhellberg/ssh-chat-bot/robots
  451. github.com/pikkpoiss/tmxscripter/tmxscripter
  452. github.com/pikkpoiss/twodee
  453. github.com/pointlander/cas
  454. github.com/polyfloyd/otto/otto
  455. github.com/polyfloyd/otto/test
  456. github.com/polyverse-security/js-route
  457. github.com/postman0/xep/jsexecutor
  458. github.com/pquerna/vulcan/control/js
  459. github.com/progrium/go-scripting/ottojs
  460. github.com/prsolucoes/goci/models/domain
  461. github.com/rahulxkrishna/cayley/query/gremlin
  462. github.com/rbin/cbgb
  463. github.com/resourced/resourced/queryparser
  464. github.com/rht/go-ethereum/jsre
  465. github.com/rickduggan/freegeoip
  466. github.com/robertkrimen/natto
  467. github.com/robertkrimen/otto/otto
  468. github.com/robertkrimen/otto/repl
  469. github.com/robertkrimen/otto/test
  470. github.com/robertmeta/cayley/query/gremlin
  471. github.com/robmerrell/gmboy/system
  472. github.com/robmerrell/gmboy/system/cpu
  473. github.com/robmerrell/gmboy/system/debugger
  474. github.com/robmerrell/gmboy/system/mmu
  475. github.com/rolldever/go-json5
  476. github.com/rsdoiel/aspace
  477. github.com/rsdoiel/gospace
  478. github.com/rsdoiel/ws
  479. github.com/rsdoiel/xlsx2json/cmds/xlsx2json
  480. github.com/rvolosatovs/ttn/core/handler/functions
  481. github.com/rwynn/monstache
  482. github.com/safenetlabs/tyk
  483. github.com/sammy007/go-cfscrape
  484. github.com/samuelhug/otto/otto
  485. github.com/samuelhug/otto/repl
  486. github.com/samuelhug/otto/test
  487. github.com/satanson/go-ethereum/console
  488. github.com/satanson/go-ethereum/internal/jsre
  489. github.com/scalabl3/cbgb
  490. github.com/scbizu/pholcus/app/spider
  491. github.com/scottcagno/cbgb
  492. github.com/scottferg/Fergulator/nes
  493. github.com/sdgoij/otto/otto
  494. github.com/sdgoij/otto/test
  495. github.com/se77en/go-reactjs
  496. github.com/sesteel/otto/otto
  497. github.com/sesteel/otto/test
  498. github.com/sfreiberg/otto/otto
  499. github.com/sfreiberg/shepherd
  500. github.com/shaovie/freegeoip
  501. github.com/shawnfeng/gotest/tst_otto
  502. github.com/shiftcurrency/go-ethereum/jsre
  503. github.com/shiftcurrency/shift/cmd/utils
  504. github.com/shiftcurrency/shift/jsre
  505. github.com/sibukixxx/cayley/query/gremlin
  506. github.com/silas/keyfu
  507. github.com/simongui/fastlane/services
  508. github.com/sinni800/nitori-go
  509. github.com/sjhitchner/nexus/interfaces/filter
  510. github.com/smoogle/pp/src/pp/draw
  511. github.com/spartacusX/otto/otto
  512. github.com/spikeekips/kasi
  513. github.com/sreejithr/Goutube
  514. github.com/sryanyuan/excavator
  515. github.com/status-im/status-go/geth
  516. github.com/status-im/status-go/jail
  517. github.com/steveyen/cbgb
  518. github.com/steveyen/walrus
  519. github.com/stickmanventures/creative-app-engine/notnode
  520. github.com/stoplightio/otto/otto
  521. github.com/stoplightio/otto/repl
  522. github.com/stoplightio/otto/test
  523. github.com/stratospark/go-ethereum/jsre
  524. github.com/stratospark/go-ethereum/rpc
  525. github.com/stretchr/ottox
  526. github.com/stretchr/pangaea
  527. github.com/sundy-li/sem_spider_baidu/service
  528. github.com/tanema/grouter/json_map
  529. github.com/tiaotiao/applets/playground
  530. github.com/tiaotiao/doohickeys/playground
  531. github.com/tleyden/cbgb
  532. github.com/trusch/susi/jsengine
  533. github.com/tsuru/tsuru-autoscale/alarm
  534. github.com/tswindell/go-ethereum/jsre
  535. github.com/tswindell/go-ethereum/rpc
  536. github.com/tudyzhou/otto/otto
  537. github.com/tudyzhou/otto/test
  538. github.com/twitchyliquid64/go-bump
  539. github.com/tyler-sommer/squircy/squircy
  540. github.com/tyler-sommer/squircy2/squircy/script
  541. github.com/uget/cnlv2
  542. github.com/v0l/gobot
  543. github.com/vaultpls/Gwitch-JS
  544. github.com/vdobler/ht/ht
  545. github.com/velocity-toolkit/otto/otto
  546. github.com/vijayee/Contract
  547. github.com/vijayee/Contract/builtin
  548. github.com/vijayee/IPVM
  549. github.com/vijayee/calculator/server
  550. github.com/vijayee/otto/otto
  551. github.com/vijayee/otto/test
  552. github.com/vladoatanasov/sync_gateway/channels
  553. github.com/vladoatanasov/sync_gateway/db
  554. github.com/voltron42/cubano
  555. github.com/voltron42/cubano/standalone
  556. github.com/voltron42/testable/otto/adt
  557. github.com/voltron42/testable/otto/impl
  558. github.com/vvelikodny/go-ethereum/jsre
  559. github.com/vvelikodny/go-ethereum/rpc
  560. github.com/vys/cbgb
  561. github.com/wdsgyj/Fergulator/nes
  562. github.com/wenkesj/go-server
  563. github.com/whatisgravity/go-ethereum/console
  564. github.com/whatisgravity/go-ethereum/internal/jsre
  565. github.com/wid/go-ethereum/jsre
  566. github.com/wid/go-ethereum/rpc
  567. github.com/wighawag/go-ethereum/jsre
  568. github.com/wighawag/go-ethereum/rpc
  569. github.com/williambailey/pacproxy
  570. github.com/wolfgarnet/otto/otto
  571. github.com/wolfgarnet/otto/repl
  572. github.com/wolfgarnet/otto/test
  573. github.com/writescript/writescript
  574. github.com/wudikua/cayley/query/gremlin
  575. github.com/wuub/feckless-octo-giggle
  576. github.com/xiezhenye/otto/otto
  577. github.com/xiezhenye/otto/repl
  578. github.com/xiezhenye/otto/test
  579. github.com/xtaci/otto/otto
  580. github.com/xuhaojun/dao
  581. github.com/xuhaojun/emission-otto
  582. github.com/yaslama/freegeoip
  583. github.com/yep/go-ethereum/console
  584. github.com/yep/go-ethereum/internal/jsre
  585. github.com/yobert/pkunk/vm
  586. github.com/yookoala/goreact
  587. github.com/yosisa/fluxion/plugin/filter-js
  588. github.com/yourheropaul/otto/otto
  589. github.com/yourheropaul/otto/repl
  590. github.com/yourheropaul/otto/test
  591. github.com/zenithar/aktarus/plugins
  592. github.com/zenithar/aktarus/utils
  593. github.com/zond/otto/otto
  594. github.com/zubairhamed/ttn/core/adapters/fields
  595. github.com/zupa-hu/otto/otto
  596. github.com/zupa-hu/otto/test
  597. gopkg.in/robertkrimen/otto.v0/otto
  598. gopkg.in/robertkrimen/otto.v0/repl
  599. gopkg.in/robertkrimen/otto.v0/test
  600. gopkg.in/webdb.v0

Imported only in test by 19 package(s)

  1. github.com/adriamb/goct
  2. github.com/altipla-consulting/soy
  3. github.com/altipla-consulting/soy/soyjs
  4. github.com/amassanet/goct
  5. github.com/amassanet/golang-ct
  6. github.com/flynn/json5
  7. github.com/hochhaus/soy
  8. github.com/hochhaus/soy/soyjs
  9. github.com/libgo/soy
  10. github.com/libgo/soy/soyjs
  11. github.com/orktes/nodebas/interpreter
  12. github.com/robfig/soy
  13. github.com/robfig/soy/soyjs
  14. github.com/serulian/compiler/generator/es5
  15. github.com/shiaho/otto-package/numbers
  16. github.com/slvmnd/soy
  17. github.com/slvmnd/soy/soyjs
  18. github.com/stevegutz/soy
  19. github.com/stevegutz/soy/soyjs

Imports 6 package(s)

  1. github.com/robertkrimen/otto/token
  2. github.com/robertkrimen/otto/file
  3. github.com/robertkrimen/otto/registry
  4. github.com/robertkrimen/otto/ast
  5. github.com/robertkrimen/otto/dbg
  6. github.com/robertkrimen/otto/parser

Test imports 1 package(s)

  1. github.com/robertkrimen/otto/underscore