JavaScript:ActionMonkey: Difference between revisions

Line 48: Line 48:
== Stage 1 ==
== Stage 1 ==


Integrate SpiderMonkey more closely with MMgc.
Integrate SpiderMonkey and Mozilla DOM more closely with MMgc. See the ActionMonkey Stage 1 tracking bug, {{bug|393023}}.  (Under "Depends on", you can see a list of bugs slated for stage 1.)


* Get rid of js_GetGCThingFlags. (Ed maybe)
Stage 1 work includes:
** The type bits: move to an MMgc page-level type tag.  (Note:  The cycle collector sneakily uses these, in <tt>nsXPConnect.cpp</tt>; it will be changed.)
 
** The <code>GCF_LOCK</code> bit: mainly replaced by allowing MMgc to scan <code>rt-&gt;gcLocksHash</code>.  There is also a string optimization that uses this bit.  It's yet to be determined what to do about that.
* {{bug|392883}} - Get rid of js_GetGCThingFlags.
** The <code>GCF_MUTABLE</code> bit:  move into <code>JSString</code>.  (A patch against CVS trunk exists for this.)
** The type bits: use the C++ vtable, maybe.  (Note:  The cycle collector sneakily uses these, in <tt>nsXPConnect.cpp</tt>; it will be changed.)
** The <code>GCF_LOCK</code> bit: already gone in actionmonkey branch, mainly replaced by allowing MMgc to scan <code>rt-&gt;gcLocksHash</code>.
** The <code>GCF_MUTABLE</code> bit:  move into <code>JSString</code>.  Already done in CVS trunk.
** The <code>GCF_SYSTEM</code> bit:  To be determined.
** The <code>GCF_SYSTEM</code> bit:  To be determined.


* Drop weak roots, newborns, and local root scopes (if they're not already gone in stage 0).  These will be replaced by MMgc's conservative stack scanning. (Ed has a patch for this already.)
* {{bug|388622}} and {{bug|391676}} - Drop weak roots, newborns, and local root scopes (if they're not already gone in stage 0).  These will be replaced by MMgc's conservative stack scanning.
 
* {{bug|393034}} - Start allocating Mozilla DOM objects using MMgc.
638

edits