| <!DOCTYPE html> |
| <div id="container"> |
| <template> |
| <x-custom></x-custom> |
| </template> |
| </div> |
| <script src="../../../resources/gc.js"></script> |
| <script src="../../../resources/js-test.js"></script> |
| <script> |
| description('Custom element wrappers in templates should be retained'); |
| |
| jsTestIsAsync = true; |
| |
| document.querySelector('template').content.ownerDocument.registerElement('x-custom', { |
| prototype: { |
| createdCallback: function() { |
| this.expando = 'present'; |
| } |
| } |
| }); |
| |
| var template, customElement; |
| |
| debug("Testing major GC..."); |
| asyncGC(function() { |
| template = document.querySelector('template'); |
| customElement = template.content.querySelector('x-custom'); |
| shouldBeEqualToString('customElement.expando', 'present'); |
| |
| container.innerHTML = container.innerHTML; |
| |
| debug("Testing minor GC..."); |
| asyncMinorGC(function() { |
| template = document.querySelector('template'); |
| customElement = template.content.querySelector('x-custom'); |
| shouldBeEqualToString('customElement.expando', 'present'); |
| finishJSTest(); |
| }); |
| }); |
| |
| |
| </script> |