title: Does valueOf always override toString in javascript?
body: <p>Is there any expression where by an object's toString method is <strong>implicitly</strong> called overriding its valueOf method? </p>
  
  <p>In the examples below, valueOf is always called implicitly (overriding toString).</p>
  
  <pre><code>"4" + {
      toString: function () {
          return "4";
      },
      valueOf: function () {
          return 6;
      }
  };    // =&gt; "46", was expecting "44"
  
  4 + {
      toString: function () {
          return "6";
      },
      valueOf: function () {
          return 4;
      }
  };    // =&gt; 8
  
  4 + {
      toString: function () {
          return 6;
      },
      valueOf: function() {
          return "4";
      }
  };    // =&gt; "44"
  </code></pre>
  
  <p>i.e.:</p>
  
  <p>Can we write an expression where by toString is implicitly called over valueOf (i.e without explicitly calling toString)?</p>