JavaScript:Home Page: Difference between revisions
Jump to navigation
Jump to search
m (→Active Projects: Updated Narcissus link) |
(Narcissus is no longer active) |
||
Line 42: | Line 42: | ||
*[[JavaScript:SpiderMonkey:RegExp API|Expose ECMA 262 Regular Expression API]] to C/C++ clients. | *[[JavaScript:SpiderMonkey:RegExp API|Expose ECMA 262 Regular Expression API]] to C/C++ clients. | ||
*A [[JavaScript:SpiderMonkey:Parser API|new SpiderMonkey API]] for building and inspecting parse trees. | *A [[JavaScript:SpiderMonkey:Parser API|new SpiderMonkey API]] for building and inspecting parse trees. | ||
*[[JS engine modularization]]: incremental long-term project to modularize JS engine source code. | *[[JS engine modularization]]: incremental long-term project to modularize JS engine source code. | ||
*[[Javascript:SpiderMonkey:2013Projects|2013 Projects]]: Projects for the year 2013 | *[[Javascript:SpiderMonkey:2013Projects|2013 Projects]]: Projects for the year 2013 | ||
== | == Completed Projects == | ||
*Narcissus meta-circular JavaScript interpreter ([https://github.com/mozilla/narcissus source code]). | |||
*[[JavaScript:TraceMonkey|TraceMonkey]], the addition of native-code compilation to SpiderMonkey | *[[JavaScript:TraceMonkey|TraceMonkey]], the addition of native-code compilation to SpiderMonkey | ||
*[[JaegerMonkey|JägerMonkey]], a new baseline JIT compiler for SpiderMonkey | *[[JaegerMonkey|JägerMonkey]], a new baseline JIT compiler for SpiderMonkey |
Revision as of 22:49, 27 August 2013
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.
- JS engine modularization: incremental long-term project to modularize JS engine source code.
- 2013 Projects: Projects for the year 2013
Completed Projects
- Narcissus meta-circular JavaScript interpreter (source code).
- 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.