···11+# ocaml-quickjs
22+33+**Status: STUB PROJECT - Pure OCaml Port Needed**
44+55+## Overview
66+77+Pure OCaml implementation of QuickJS JavaScript engine.
88+99+## Vendored C Reference
1010+1111+- `vendor/git/quickjs-c/` - QuickJS C implementation from https://github.com/bellard/quickjs
1212+1313+## Goal
1414+1515+Create a **pure OCaml port** of QuickJS to enable:
1616+- JavaScript execution in OCaml without C dependencies
1717+- Better integration with OCaml's runtime and GC
1818+- Portability to all OCaml targets (including js_of_ocaml, wasm)
1919+2020+## TODO
2121+2222+- [ ] Study the QuickJS C implementation architecture
2323+- [ ] Design OCaml data structures for JS values
2424+- [ ] Implement lexer/parser for JavaScript
2525+- [ ] Implement bytecode compiler
2626+- [ ] Implement bytecode interpreter
2727+- [ ] Implement built-in objects (Object, Array, String, etc.)
2828+- [ ] Implement ES6+ features (classes, modules, async/await)
2929+- [ ] Write comprehensive test suite
3030+- [ ] Benchmark against C implementation
3131+3232+## Notes
3333+3434+QuickJS is a small and embeddable JavaScript engine by Fabrice Bellard.
3535+It supports the ES2020 specification including modules, async generators, and proxies.
3636+A pure OCaml port would be valuable for:
3737+- Sandboxed JavaScript execution in OCaml applications
3838+- Static analysis and tooling for JavaScript
3939+- Cross-platform JavaScript support where C bindings are problematic
4040+4141+## References
4242+4343+- QuickJS website: https://bellard.org/quickjs/
4444+- ES2020 specification: https://tc39.es/ecma262/