| <!DOCTYPE html> |
| <html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| 'use strict'; |
| |
| let expected = ['immutable', 'immutable', 'immutable', 'immutable', 'immutable']; |
| |
| promise_test(t => |
| navigator.serviceWorker.register('resources/immutable-prototype-serviceworker.js', {scope: './resources/'}) |
| .then(registration => { |
| let worker = registration.installing || registration.waiting || registration.active; |
| let channel = new MessageChannel() |
| worker.postMessage(channel.port2, [channel.port2]); |
| let resolve; |
| let promise = new Promise(r => resolve = r); |
| channel.port1.onmessage = resolve; |
| return promise.then(result => assert_array_equals(expected, result.data)); |
| }), |
| 'worker prototype chain should be immutable'); |
| </script> |
| </html> |