<!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_js(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_js(TypeError, function() {
    window.__proto__ = window;
  }, "Setting the prototype should throw");
}, "Setting the prototype of a window to itself via __proto__");

test(function() {
  assert_throws_js(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_js(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>
