Inspector::RemoteInspector::receivedSetupMessage() falls through ASSERT_NOT_REACHED(). Since there are many other early returns in this method, it seems like there should be an early return after ASSERT_NOT_REACHED() as well. void RemoteInspector::receivedSetupMessage(NSDictionary *userInfo) { [...] if (is<RemoteInspectionTarget>(target)) { bool isAutomaticInspection = m_automaticInspectionCandidateTargetIdentifier == target->targetIdentifier(); if (!connectionToTarget->setup(isAutomaticInspection, automaticallyPause)) { connectionToTarget->close(); return; } m_targetConnectionMap.set(targetIdentifier, WTFMove(connectionToTarget)); } else if (is<RemoteAutomationTarget>(target)) { if (!connectionToTarget->setup()) { connectionToTarget->close(); return; } m_targetConnectionMap.set(targetIdentifier, WTFMove(connectionToTarget)); } else ASSERT_NOT_REACHED(); updateHasActiveDebugSession(); } See Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorCocoa.mm.
<rdar://problem/87260301>