title: Why does JSON.stringify return empty object notation "{}" for an object that seems to have properties?
body: <p>The following example shows that <code>JSON.stringify()</code> returns the string <code>"{}"</code> for SpeechSynthesisVoice objects: </p>
  
  <pre><code>var voiceObject = window.speechSynthesis.getVoices()[0];
  JSON.stringify(voiceObject); //returns "{}"?
  </code></pre>
  
  <p>Complete example: <a href="https://jsfiddle.net/LeoLux/adg4xy06/" rel="noreferrer">JSFiddle</a></p>
  
  <p>Why does it return <code>"{}"</code> and not something like <code>"{voiceURI: "Google Deutsch", name: "Google Deutsch", lang: "de-DE", localService: false, default: false}"</code>?</p>
  
  <p>Note that the above example does not work for chrome or iOS; it is targeted for Mozilla Firefox.</p>