https://twitter.com/rauschma/status/458949152953860096 and http://speakingjs.com/es5/ch09.html#plus_operator got me thinking...
var a = new String('a');
var b = new String('a');
a['toString'] = function() { return 1 };
a + b; // 'aa'
and...
var a = new String('a');
var b = new String('a');
a['valueOf'] = function() { return 1 };
a + b; // '1a'