| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>Test the name property of shared workers mixing constructor options and constructor strings</title> | |
| <link rel="help" href="https://html.spec.whatwg.org/multipage/#concept-workerglobalscope-name"> | |
| <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-sharedworker"> | |
| <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-sharedworkerglobalscope-name"> | |
| <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| "use strict"; | |
| setup({ single_test: true }); | |
| const name = "my name"; | |
| const worker1 = new SharedWorker("support/shared-name.js", { name }); | |
| worker1.port.onmessage = receiveMessage; | |
| const worker2 = new SharedWorker("support/shared-name.js", { name }); | |
| worker2.port.onmessage = receiveMessage; | |
| const worker3 = new SharedWorker("support/shared-name.js", name); | |
| worker3.port.onmessage = receiveMessage; | |
| let nextCounterExpected = 1; | |
| function receiveMessage(e) { | |
| const { counter, name: receivedName } = e.data; | |
| assert_equals(receivedName, name); | |
| assert_equals(counter, nextCounterExpected); | |
| ++nextCounterExpected; | |
| if (nextCounterExpected === 4) { | |
| done(); | |
| } | |
| } | |
| </script> |