Parece que de Object.getOwnPropertyNames vs Object.keys , que la principal diferencia entre Object.keys() y Object.getOwnPropertyNames() es que el primero solo devuelve algunas de las propiedades, aquellas que son enumerables. Así que me pregunto por algo como un objeto Error , por qué se decide que las propiedades no son enumerables. Por ejemplo:
try { let field="XYZ"; field.abc; } catch (error) { console.log('111', Object.getOwnPropertyNames(error)); console.log('222', Object.keys(error)); }¿Por qué, por ejemplo, el objeto Error no hace enumerables esas propiedades? ¿Cuándo se suele hacer enumerable una propiedad?