{"repo":"dop251/goja","free":true,"listed":false,"github":"https://github.com/dop251/goja","clone":"git clone https://github.com/dop251/goja.git","description":"ECMAScript/JavaScript engine in pure Go","language":"Go","stars":7053,"topics":["javascript","golang"],"license":"MIT","category":"dev-tools","readme_excerpt":"goja ==== ECMAScript 5.1(+) implementation in Go. Goja is an implementation of ECMAScript 5.1 in pure Go with emphasis on standard compliance and performance. This project was largely inspired by otto. The minimum required Go version is 1.25. Features -------- Full ECMAScript 5.1 support (including regex and strict mode). Passes nearly all tc39 tests for the features implemented so far. The goal is to pass all of them. See .tc39 test262 checkout.sh for the latest working commit id. Capable of running Babel, Typescript compiler and pretty much anything written in ES5. Sourcemaps. Most of ES6 functionality, still work in progress, see https://github.com/dop251/goja/milestone/1?closed=1 Known incompatibilities and caveats ----------------------------------- JSON JSON.parse() uses the standard Go library which operates in UTF-8. Therefore, it cannot correctly parse broken UTF-16 surrogate pairs, for example: Date Conversion from calendar date to epoch timestamp uses the standard Go library which uses int , rather than float as per ECMAScript specification. This means if you pass arguments that overflow int to the Date() constructor or if there is an integer overflow, the result will be incorrect, for example: FAQ --- How fast is it? Although it's faster than many scripting language implementations in Go I have seen (for example it's 6-7 times faster than otto on average) it is not a replacement for V8 or SpiderMonkey or any other general-purpose JavaScript engine. You can find so","default_branch":null,"files":null,"tree":[],"storefront":"/r/dop251","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dop251/goja/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}