void ValueReadBarrier(const Value &value) { JS_ASSERT(!CurrentThreadIsIonCompiling()); if (value.isObject()) JSObject::readBarrier(&value.toObject()); else if (value.isString()) JSString::readBarrier(value.toString()); else if (value.isSymbol()) JS::Symbol::readBarrier(value.toSymbol()); else JS_ASSERT(!value.isMarkable()); }
static inline bool OnHelperThread() { if (Helper == AllowedHelperThread::IonCompile || Helper == AllowedHelperThread::GCTaskOrIonCompile) { if (CurrentThreadIsIonCompiling()) return true; } if (Helper == AllowedHelperThread::GCTask || Helper == AllowedHelperThread::GCTaskOrIonCompile) { if (TlsContext.get()->performingGC || TlsContext.get()->runtime()->gc.onBackgroundThread()) return true; } return false; }