<!--
onconnect = function(e) {
try {
  var port = e.ports[0]
  var source = new EventSource("http://this is invalid/")
  port.postMessage([false, 'no exception thrown'])
  source.close()
} catch(e) {
  port.postMessage([true, e.code])
}
}
/*-->
<!DOCTYPE html>
<html>
  <head>
    <title>shared worker - EventSource: constructor (invalid URL)</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <div id="log"></div>
    <script>
      var test = async_test()
      test.step(function() {
        var worker = new SharedWorker('#')
        worker.port.onmessage = function(e) {
          test.step(function() {
            assert_true(e.data[0], e.data[1])
            assert_equals(e.data[1], DOMException.SYNTAX_ERR, 'e.code')
          })
          test.done()
        }
      })
    </script>
  </body>
</html>
<!--*/ //-->