static void PushMarkStack(GCMarker *gcmarker, JSFunction *thing) { JS_COMPARTMENT_ASSERT(gcmarker->runtime, thing); if (thing->markIfUnmarked(gcmarker->getMarkColor())) gcmarker->pushObject(thing); }
static void PushMarkStack(GCMarker *gcmarker, types::TypeObject *thing) { JS_COMPARTMENT_ASSERT(gcmarker->runtime, thing); if (thing->markIfUnmarked(gcmarker->getMarkColor())) gcmarker->pushType(thing); }
void PushMarkStack(GCMarker *gcmarker, ion::IonCode *thing) { JS_COMPARTMENT_ASSERT(gcmarker->runtime, thing); if (thing->markIfUnmarked(gcmarker->getMarkColor())) gcmarker->pushIonCode(thing); }
static void PushMarkStack(GCMarker *gcmarker, BaseShape *thing) { JS_COMPARTMENT_ASSERT(gcmarker->runtime, thing); /* We mark base shapes directly rather than pushing on the stack. */ if (thing->markIfUnmarked(gcmarker->getMarkColor())) ScanBaseShape(gcmarker, thing); }
static void PushMarkStack(GCMarker *gcmarker, JSScript *thing) { JS_COMPARTMENT_ASSERT(gcmarker->runtime, thing); /* * We mark scripts directly rather than pushing on the stack as they can * refer to other scripts only indirectly (like via nested functions) and * we cannot get to deep recursion. */ if (thing->markIfUnmarked(gcmarker->getMarkColor())) MarkChildren(gcmarker, thing); }