summaryrefslogtreecommitdiffstats
path: root/dom/base/test/test_custom_element_reflector.html
blob: aa7bba3efe584c7758945b034cc34fd4bff5433b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!doctype html>
<title>Custom Elements don't lose their reflectors</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<!-- First tests upgrading with an existing reflector, second without -->
<custom-element></custom-element>
<custom-element></custom-element>
<script>
  (function() {
    // Ensure we create a reflector for the first element before-hand.
    let firstElement = document.querySelector("custom-element");
  }());

  customElements.define("custom-element", class MyCustomElement extends HTMLElement {
    myFunction() {
      // Do nothing
    }
  });

  ok(!!document.querySelector("custom-element").myFunction, "Has the right prototype before GC");;
  ok(!!document.querySelectorAll("custom-element")[1].myFunction, "Has the right prototype before GC");;

  SpecialPowers.forceCC();
  SpecialPowers.forceGC();

  ok(!!document.querySelector("custom-element").myFunction, "Has the right prototype after GC");;
  ok(!!document.querySelectorAll("custom-element")[1].myFunction, "Has the right prototype before GC");;
</script>