<!doctype html>
<title>StaticRange IDL tests</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<script>
  "use strict";

  promise_test(async () => {
    const staticrange = await fetch("/interfaces/staticrange.idl").then(r => r.text());
    const dom = await fetch("/interfaces/dom.idl").then(r => r.text());
    const idl_array = new IdlArray();
    idl_array.add_idls(staticrange);
    idl_array.add_dependency_idls(dom);
    idl_array.add_objects({
      StaticRange: [
        'new StaticRange({ start: document.body, end: document.body })'
      ],
    });
    idl_array.test();
  }, "staticrange IDL");
</script>

