<html><body>

<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=8131">bug 8131</a>:
Some properties and methods of window and document objects cannot be converted to a string.</p>
<p>Should say SUCCESS:</p>

<script>

if (window.testRunner)
        testRunner.dumpAsText();

try {
  var currProperty;
  try {
    for (var prop in window) {
      currProperty = prop;
      window[prop] + "";
    }

  } catch (ex) {
    document.write('FAILURE (window.' + currProperty + '):' + ex.description);
    throw ex;
  }

  try {
    for (var prop in document) {
      currProperty = prop;
      document[prop] + "";
    }

  } catch (ex) {
    document.write('FAILURE (document.' + currProperty + '):' + ex.description);
    throw ex;
  }

  document.write('SUCCESS');

} catch (ex) {
}

</script>

</body></html>
