JavaScript:ActionMonkey: Difference between revisions

Jump to navigation Jump to search
Line 50: Line 50:
Integrate SpiderMonkey more closely with MMgc.
Integrate SpiderMonkey more closely with MMgc.


* Make <code>MMgc::Mark()</code> call SpiderMonkey <code>trace()</code> methods.  The plan is to add a '''per-page type tag''' to MMgc; this takes over the job of the type bits in SpiderMonkey's <code>GCThingFlags</code>.
* Get rid of js_GetGCThingFlags.  (Ed maybe)
 
* Get rid of js_GetGCThingFlags.   
** 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 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.
** 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.
** The <code>GCF_MUTABLE</code> bit:  move into <code>JSString</code>.
** The <code>GCF_MUTABLE</code> bit:  move into <code>JSString</code>. (A patch against CVS trunk exists for this.)
** 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.
* 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.)
638

edits

Navigation menu