<!DOCTYPE html>
<meta charset="utf-8">
<title>[[SetPrototypeOf]] on a WindowProxy object should not allow changing its value: cross-origin, but same-origin-domain</title>
<link rel="help" href="http://html.spec.whatwg.org/multipage/#windowproxy-setprototypeof">
<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/test-setting-immutable-prototype.js"></script>

<iframe src="//{{hosts[alt][]}}:{{ports[http][1]}}/common/domain-setter.sub.html"></iframe>

<script>
"use strict";
document.domain = "{{host}}";
setup({ explicit_done: true });

window.onload = () => {
  const target = frames[0];
  const origProto = Object.getPrototypeOf(target);

  test(() => {
    assert_not_equals(origProto, null);
  }, "Same-origin-domain prerequisite check: the original prototype is accessible");

  testSettingImmutablePrototype("Same-origin-domain", target, origProto, { isSameOriginDomain: true });

  done();
};
</script>
