Short question - code {}+{} V8 result: "[object Object][object Object]" Safari, Firefox, Edge: NaN Which one is correct? My read of section 12.8.3.1 (tc39.github.io/ecma262/#sec-addition-operator-plus-runtime-semantics-evaluation), is that V8 is getting this right. ToPrimitive on {} will, by default, return “[object Object]” — We first call Object.prototype.valueOf(), which returns this (see 19.1.