<!doctype html>
<meta charset=utf-8>
<title>Objects whose prototype is an HTMLCollection</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
test(function() {
  var obj = Object.create(document.getElementsByTagName("script"));
  assert_throws_js(TypeError, function() {
    obj.length;
  });
}, "HTMLCollection as a prototype should not allow getting .length on the base object")

test(function() {
  var element = document.createElement("p");
  element.id = "named";
  document.body.appendChild(element);
  this.add_cleanup(function() { element.remove() });

  var collection = document.getElementsByTagName("p");
  assert_equals(collection.named, element);
  var object = Object.create(collection);
  assert_equals(object.named, element);
  object.named = "foo";
  assert_equals(object.named, "foo");
  assert_equals(collection.named, element);
}, "HTMLCollection as a prototype and setting own properties")
</script>
