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>
|