Ejecute este código en la consola en Safari (15.1) y otro navegador (por ejemplo, Brave/Chrome):
const a = {b: {c: 5}} Object.defineProperty(ab, 'self', {get () {return this}}) console.log(abself) // expected: {c: 5} console.log(a) // when expanding abself in inspector, expects the same, ie. {c: 5} Luego, expanda el último objeto, hasta que obtenga self: (...) , ahora, ¿expandirlo debería ser equivalente a ejecutar abself ? Está en Brave, pero obtengo a objeto en Safari.
Hipótesis: Safari devtools tiene un error en el que usa el objeto registrado, y no el padre de prop, como this .
¿O es esto UB y me he equivocado en algo?