JavaScript:Home Page
JavaScript language and implementation plans go here. For background, see:
- "So you're new to SpiderMonkey" is a guide for new contributors to the JavaScript engine.
- The Mozilla JS language page.
- The ECMAScript (ES) language site.
- SpiderMonkey pages at the Mozilla Developer Network.
- JavaScript pages at the Mozilla Developer Network.
Hackers
Guidelines
Benchmarks
Tracked Projects
Projects here have a project plan with milestones, tasks, and owners.
- Generational Garbage Collection: General Garbage Collection project plan and milestone.
- OdinMonkey: OdinMonkey project plan and milestone.
- Property Element Storage: Property and Element Storage project plan and milestone.
- Debugging: Debugging JavaScript, in web content (both desktop and mobile) and in chrome (add-ons and Firefox itself)
- Stack Snapshots: Lightweight records of where errors occurred, where event handlers were registered, and so on.
- Heap Profiling: Integrated tools for tracking memory use, finding leaks, and so on.
Active Projects
- Exact Stack Rooting: Conservative rooting has a number of well known downsides.
- Type Inference: perform hybrid dynamic/static analysis of JavaScript code to provide better type/invariant information to the JIT compiler
- Baseline Compiler: New Baseline JIT to replace Interperter+JM.
- IonMonkey: upgrade current JIT compiler with classic SSA-based compiler techniques to allow better optimization of JIT code
- Expose ECMA 262 Regular Expression API to C/C++ clients.
- A new SpiderMonkey API for building and inspecting parse trees.
- Narcissus meta-circular JavaScript interpreter (source code).
- JS engine modularization: incremental long-term project to modularize JS engine source code.
- 2013 Projects: Projects for the year 2013
Previous Active Projects
- TraceMonkey, the addition of native-code compilation to SpiderMonkey
- JägerMonkey, a new baseline JIT compiler for SpiderMonkey
- Tamarin, the new virtual machine for ActionScript that's already in Flash.
- Context-thread the SpiderMonkey interpreter.
- Make mostly-dense arrays blazingly fast. Latest bug: type-specialized Arrays.
- Rhino documentation at MDC. Rhino is an implementation of JavaScript in Java.
Blue Sky
- JS3 Requirements, or what lies beyond JS2/ES4.
References
- "Garbage Collection: algorithms for automatic dynamic memory management", by Richard Jones, is a comprehensive reference book about different garbage collection algorithms.
- Also Richard Jones's webpage has a collection of references.
- Several conferences where most memory management papers go: ISMM, PLDI, OOPSLA, VEE.