OrdinaryToPrimitive calls a method and inspects its return value. What happens if that method returns a non-null object?
const o = {
valueOf() { return {}; }, // returns an object
toString() { return 'fallback'; }
};
const r = o + ''; // r === ?