21 points
So there’s yet another level of quirkery to this bullshit then, it seems. 😆 Nice digging! 🤝
I also noticed that if you surround the curlies with parentheses, you get the same again:
> eval('{} + []')
0
> eval('({}) + []')
'[object Object]'
10 points
Yep, parentheses force {}
to be interpreted as an expression rather than a block — same reason why IIFEs have !function
instead of just function
.
1 point
*
3 points