()
| 10 | setup({explicit_done: true}); |
| 11 | |
| 12 | function createRealm() { |
| 13 | let iframe = document.createElement('iframe'); |
| 14 | const scriptEndTag = '<' + '/script>'; |
| 15 | iframe.srcdoc = `<!doctype html> |
| 16 | <script> |
| 17 | onmessage = event => { |
| 18 | if (event.source !== window.parent) { |
| 19 | throw new Error('unexpected message with source ' + event.source); |
| 20 | } |
| 21 | eval(event.data); |
| 22 | }; |
| 23 | ${scriptEndTag}`; |
| 24 | iframe.style.display = 'none'; |
| 25 | document.body.appendChild(iframe); |
| 26 | let realmPromiseResolve; |
| 27 | const realmPromise = new Promise(resolve => { |
| 28 | realmPromiseResolve = resolve; |
| 29 | }); |
| 30 | iframe.onload = () => { |
| 31 | realmPromiseResolve(iframe.contentWindow); |
| 32 | }; |
| 33 | return realmPromise; |
| 34 | } |
| 35 | |
| 36 | async function createRealms() { |
| 37 | // All realms are visible on the global object so they can access each other. |
no test coverage detected