{"id":13656954,"url":"https://github.com/doodlewind/mocha1995","last_synced_at":"2025-04-12T09:28:24.069Z","repository":{"id":46806800,"uuid":"316851241","full_name":"doodlewind/mocha1995","owner":"doodlewind","description":"☕️ The world's first JavaScript engine written in 1995 by Brendan Eich, now compiled back to JS and WASM!","archived":false,"fork":false,"pushed_at":"2024-10-12T10:03:35.000Z","size":621,"stargazers_count":315,"open_issues_count":1,"forks_count":25,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-03T10:09:44.745Z","etag":null,"topics":["javascript","js","js-engine","netscape","retro","wasm"],"latest_commit_sha":null,"homepage":"https://mocha1995.js.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doodlewind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-29T01:03:01.000Z","updated_at":"2025-03-31T13:18:21.000Z","dependencies_parsed_at":"2024-11-16T19:02:22.567Z","dependency_job_id":"f75e1c6e-9d40-4e1b-b84d-64548dfd4489","html_url":"https://github.com/doodlewind/mocha1995","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doodlewind%2Fmocha1995","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doodlewind%2Fmocha1995/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doodlewind%2Fmocha1995/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doodlewind%2Fmocha1995/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doodlewind","download_url":"https://codeload.github.com/doodlewind/mocha1995/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248545623,"owners_count":21122173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","js","js-engine","netscape","retro","wasm"],"created_at":"2024-08-02T05:00:34.887Z","updated_at":"2025-04-12T09:28:24.042Z","avatar_url":"https://github.com/doodlewind.png","language":"C","readme":"# Mocha 1995\nThe original Mocha JavaScript engine, ported from Netscape 3.0.2 browser.\n\n![mocha-wasm](./blog/mocha-wasm.png)\n\n## History\n\"Mocha\" was the code name of the first JavaScript engine, originally written by Brendan Eich in his 10-day May 1995 sprint. For all of 1995 and most of 1996, Eich was the the only Netscape developer working full-time on the JavaScript engine. Untill August 1996, the Mocha codebase still consisted primarily of code from the 10-day prototype.\n\nIn late 1996, Eich \"stayed home for two weeks to rewrite Mocha as the codebase that became known as SpiderMonkey\", the JavaScript engine later released as open-source and currently maintained by the Mozilla Foundation.\n\nHere is the source code of production version of Mocha, which ships as JavaScript 1.1. This version is released in August 1996 with Netscape 3.0. The release of JavaScript 1.1 marks the completion of the initial definition and development of JavaScript.\n\n## Live Playground\nBesides native binary, the ported Mocha engine can also be compiled to WASM and JavaScript:\n\n* [WASM Version](https://mocha1995.js.org)\n* [JavaScript Version](https://mocha1995.js.org#js)\n\n## Build\nFor WASM and JS build, please make sure [Emscripten](https://emscripten.org/docs/getting_started/downloads.html) is installed and activated (`emcc` command is available):\n\n``` sh\n$ source build.sh\n\n# build native\n$ compile_native\n\n# build WASM\n$ compile_wasm\n\n# build js\n$ compile_js\n```\n\nThe Web build generates `out/mocha_shell_js.html` and `out/mocha_shell_wasm.html` as entries. For the native build, there is a binary runtime available:\n\n``` sh\n$ out/mo_shell tests/ack.mocha\n```\n\n## Debugging\nThe `CMakeLists.txt` is added for single-step debugging on Linux with CLion.\n\n``` sh\n$ cd out\n$ cmake -H\"../\" -B\"./\" -DCMAKE_BUILD_TYPE=MinSizeRel\n$ make\n```\n\n## Resources\n* [Compiling World's First JavaScript Engine Back to JavaScript](./blog/about.md)\n* [Netscape 3.0.2 Source Tree](https://archive.org/details/netscape-communicator-3-0-2-source)\n* [JavaScript: The First 20 Years](https://doi.org/10.1145/3386327)\n* [JavaScript 二十年](https://cn.history.js.org/)\n\n## License\nLicense status of original Netscape source code is unknown yet. This port is intended for historic preservation and educational usage. Don't use in commerial projects!\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoodlewind%2Fmocha1995","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoodlewind%2Fmocha1995","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoodlewind%2Fmocha1995/lists"}