<!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>