Index: LayoutTests/netinfo/gc-unused-listeners.html |
diff --git a/LayoutTests/netinfo/gc-unused-listeners.html b/LayoutTests/netinfo/gc-unused-listeners.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..85ce3d14faa8803a2a9ea6ecc43a222a4c2514be |
--- /dev/null |
+++ b/LayoutTests/netinfo/gc-unused-listeners.html |
@@ -0,0 +1,33 @@ |
+<!DOCTYPE html> |
+<head> |
+<script src="../resources/js-test.js"></script> |
+<script src="resources/netinfo_common.js"></script> |
+</head> |
+<body> |
+<script> |
+ |
+description('Tests that unused listeners are collected.'); |
+ |
+shouldBe('typeof window.internals.observeGC', '"function"', |
+'this test requires window.internals'); |
+ |
+var callback = function(e) { |
+ testFailed("Should not get here."); |
+}; |
+ |
+// Add a listener. |
+var callbackObserver = internals.observeGC(callback); |
+connection.addEventListener('typechange', callback); |
+gc(); |
+shouldBeFalse('callbackObserver.wasCollected'); |
+ |
+// Remove the listener and its callback reference. |
+connection.removeEventListener('typechange', callback); |
+callback = null; |
+gc(); |
+shouldBeTrue('callbackObserver.wasCollected'); |
+finishJSTest(); |
+ |
+</script> |
+</body> |
+</html> |