This tests that the property added on window.customElements persist after a lot of memory allocation

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS The property was present - the JS wrapper of customElements was not collected
PASS successfullyParsed is true

TEST COMPLETE

