Fast enumeration may be slower here due to the explicit dictionary lookup. Since this is such a critical code path, I'd like to keep using block-based enumeration and just track erroneous returns with a `__block` variable.