{}.length lanza en Chrome (y otros navegadores), mientras que devuelve undefined en Node.
Sé que algo como Object.keys({}).length es la forma correcta de obtener la cantidad de entradas en un objeto, pero tengo más curiosidad por entender por qué la API del navegador y la API del nodo son inconsistentes aquí.
¿Quizás esto tiene algo que ver con cómo se realiza el análisis? Tanto Chrome como Node utilizan el motor V8. Mi suposición era que el analizador de este motor es consistente entre entornos, pero tal vez no lo sea.
Me pregunto si es intencionado y tiene algo que ver con la compatibilidad con versiones anteriores, o si no es intencionado y podría corregirse en el futuro.