<!DOCTYPE html>
<meta charset=utf-8>
<title>Test for [[SetPrototypeOf]] with Windows</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
  assert_throws(new TypeError, function() {
    Object.setPrototypeOf(window, window);
  }, "Setting the prototype should throw");
}, "Setting the prototype of a window to itself via setPrototypeOf");

test(function() {
  assert_throws(new TypeError, function() {
    window.__proto__ = window;
  }, "Setting the prototype should throw");
}, "Setting the prototype of a window to itself via __proto__");

test(function() {
  assert_throws(new TypeError, function() {
    Object.setPrototypeOf(window, Object.create(window));
  }, "Setting the prototype should throw");
}, "Setting the prototype of a window to something that has the window on " +
   "its proto chain via setPrototypeOf");

test(function() {
  assert_throws(new TypeError, function() {
    window.__proto__ = Object.create(window);
  }, "Setting the prototype should throw");
}, "Setting the prototype of a window to something that has the window on " +
   "its proto chain via __proto__");
</script>
