Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
quickjs
quickjs.ml is a set of OCaml bindings to some libraries from QuickJS a small and embeddable JavaScript engine, where implements the ES2020 specification including modules, asynchronous generators, proxies and BigInt.
This project exposes two libraries:
quickjs.c: Low-level OCaml bindings to QuickJS C functions (libregexp, libunicode, js_dtoa, js_atod, and cutils)
quickjs: A high-level API that mirrors JavaScript's built-in objects and methods. Modules include RegExp, String, Number, and Global.
Motivation
The purpose of this project is to provide the same behaviour as the JavaScript engines from browsers (SpiderMonkey, JavaScriptCore, ChakraCore, v8) into native OCaml. So code that runs in the browser (via Melange) can be run in native with the same results.
TC39/test262 Compatibility
We are translating TC39/test262 tests into OCaml to ensure full compatibility with the ECMAScript specification. This allows us to verify that our implementations behave exactly as expected by the JavaScript standard, guaranteeing consistent behaviour between browser engines and native OCaml.