The reason is because "disable-jit" calls JSC::ExecutableAllocator::setJITEnabled(), which should be done before calling JSC::Options::initialize(). The processing of "enable-captive-portal-mode" in XPCServiceInitializer does itself call JSC::ExecutableAllocator::setJITEnabled() before calling JSC::Options::initialize(). Hence, if we process "disable-jit" case afterwards, it will have no effect because JSC::Options::initialize() has already been called. In practice, this doesn't matter because both the "disable-jit" and "enable-captive-portal-mode" cases disables the JIT. However, just so the code doesn't erroneously suggest that it's ok to call JSC::ExecutableAllocator::setJITEnabled() after calling JSC::Options::initialize(), let's fix the order.
<rdar://problem/101664549>
Correction: this is not needed. JSC::ExecutableAllocator::setJITEnabled() needs to be called before JSC::initialized() is called, not before JSC::Options::initialize() is called. So, there's no issue here.