title: Why does JSON.stringify on TypeError return an empty object
body: <p>I'm using node 4.2, and I'm catching an error and using JSON.stringify on it. For most objects, this works fine. But when a [TypeError: callback is not a function] is thrown, it returns an empty object. if I console.log it directly, it works fine.</p>
  
  <p>Mozilla's page says:</p>
  
  <blockquote>
    <p>Boolean, Number, and String objects are converted to the corresponding primitive values during stringification, in accord with the traditional conversion semantics.</p>
  </blockquote>
  
  <pre><code>try {
      ...
  } catch (err) {
      console.log('error: ' + JSON.stringify(err)) // outputs {}
  }
  </code></pre>