void JSCompartment::updateDebuggerObservesFlag(unsigned flag) { MOZ_ASSERT(isDebuggee()); MOZ_ASSERT(flag == DebuggerObservesAllExecution || flag == DebuggerObservesCoverage || flag == DebuggerObservesAsmJS); GlobalObject* global = zone()->runtimeFromMainThread()->gc.isForegroundSweeping() ? unsafeUnbarrieredMaybeGlobal() : maybeGlobal(); const GlobalObject::DebuggerVector* v = global->getDebuggers(); for (auto p = v->begin(); p != v->end(); p++) { Debugger* dbg = *p; if (flag == DebuggerObservesAllExecution ? dbg->observesAllExecution() : flag == DebuggerObservesCoverage ? dbg->observesCoverage() : dbg->observesAsmJS()) { debugModeBits |= flag; return; } } debugModeBits &= ~flag; }
void JSCompartment::updateDebuggerObservesFlag(unsigned flag) { MOZ_ASSERT(isDebuggee()); MOZ_ASSERT(flag == DebuggerObservesAllExecution || flag == DebuggerObservesAsmJS); const GlobalObject::DebuggerVector *v = maybeGlobal()->getDebuggers(); for (Debugger * const *p = v->begin(); p != v->end(); p++) { Debugger *dbg = *p; if (flag == DebuggerObservesAllExecution ? dbg->observesAllExecution() : dbg->observesAsmJS()) { debugModeBits |= flag; return; } } debugModeBits &= ~flag; }