void MarkValueRoot(JSTracer *trc, Value *v, const char *name) { JS_ROOT_MARKING_ASSERT(trc); JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, v); }
void MarkArraySlots(JSTracer *trc, size_t len, HeapSlot *vec, const char *name) { for (size_t i = 0; i < len; ++i) { JS_SET_TRACING_INDEX(trc, name, i); MarkValueInternal(trc, vec[i].unsafeGet()); } }
void MarkValueRange(JSTracer *trc, size_t len, EncapsulatedValue *vec, const char *name) { for (size_t i = 0; i < len; ++i) { JS_SET_TRACING_INDEX(trc, name, i); MarkValueInternal(trc, vec[i].unsafeGet()); } }
void MarkObjectSlots(JSTracer *trc, JSObject *obj, uint32_t start, uint32_t nslots) { JS_ASSERT(obj->isNative()); for (uint32_t i = start; i < (start + nslots); ++i) { JS_SET_TRACING_DETAILS(trc, js_PrintObjectSlotName, obj, i); MarkValueInternal(trc, obj->nativeGetSlotRef(i).unsafeGet()); } }
void MarkValueRootRange(JSTracer *trc, size_t len, Value *vec, const char *name) { JS_ROOT_MARKING_ASSERT(trc); for (size_t i = 0; i < len; ++i) { JS_SET_TRACING_INDEX(trc, name, i); MarkValueInternal(trc, &vec[i]); } }
void MarkValueUnbarriered(JSTracer *trc, Value *v, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, v); }
void MarkSlot(JSTracer *trc, HeapSlot *s, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, s->unsafeGet()); }
void MarkValue(JSTracer *trc, HeapValue *v, const char *name) { JS_SET_TRACING_NAME(trc, name); MarkValueInternal(trc, v->unsafeGet()); }