let z = {};
let y = {__proto__:z};
z.__proto__ = y;
y.a
running this crashes dash with a stack overflow because it gets stuck in a recursive "loop" trying to look up property 'a' in its parent __proto__ object if it can't find it
Other JS engines have guards against that. V8 throws Cyclic __proto__ value