description("This tests that custom properties on element.dataset persist GC."); function gc() { if (window.GCController) return GCController.collect(); for (var i = 0; i < 10000; i++) { var s = new String(""); } } var d = document.createElement("div"); var dataset = d.dataset; // Add a property to our prototype. It will be hidden by the corresponding data- attribute. dataset.__proto__.customProperty = 1; dataset.customProperty = 1; // Now set a property on ourselves. shouldBe("d.getAttribute('data-custom-property')", "'1'"); shouldBe("d.dataset.customProperty", "'1'"); dataset = null; gc(); // Test that the custom property persisted the GC. shouldBe("d.dataset.customProperty", "'1'");