blob: 4ce82f635c7291102ac494e61691a59b707d82d2 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test.js"></script>
<script>
description('This tests that the property added on window.customElements persist after a lot of memory allocation');
for (let i = 0; i < 10; i++) {
// Using iframe makes this test more reliable.
const iframe = document.createElement('iframe');
document.body.appendChild(iframe);
iframe.contentWindow.eval(`
window.customElements.someProperty = 'storedValue';
const a = [];
if (window.GCController)
GCController.collect();
else {
for (let i = 0; i < 1000000; i++)
a.push({});
}
top.check(window.customElements.someProperty);`);
iframe.remove();
}
function check(value) {
if (value == 'storedValue')
testPassed('The property was present - the JS wrapper of customElements was not collected');
else
testFailed('The property was not present - the JS wrapper of customElements was erroneously collected');
}
</script>
</body>
</html>