Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

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