/* NB: An error object's private must be set through this function. */ static void SetExnPrivate(RawObject exnObject, JSExnPrivate *priv) { JS_ASSERT(!exnObject->getPrivate()); JS_ASSERT(exnObject->isError()); if (JSErrorReport *report = priv->errorReport) { if (JSPrincipals *prin = report->originPrincipals) JS_HoldPrincipals(prin); } exnObject->setPrivate(priv); }
static void regexp_trace(JSTracer *trc, RawObject obj) { /* * We have to check both conditions, since: * 1. During TraceRuntime, isHeapBusy() is true * 2. When a write barrier executes, IS_GC_MARKING_TRACER is true. */ if (trc->runtime->isHeapBusy() && IS_GC_MARKING_TRACER(trc)) obj->setPrivate(NULL); }