| OLD | NEW |
| (Empty) |
| 1 #library('NativeGCTest'); | |
| 2 #import('../../lib/unittest/unittest.dart'); | |
| 3 #import('../../lib/unittest/html_config.dart'); | |
| 4 #import('dart:html'); | |
| 5 | |
| 6 main() { | |
| 7 useHtmlConfiguration(); | |
| 8 | |
| 9 test('EventListener', () { | |
| 10 final int N = 1000000; | |
| 11 final int M = 1000; | |
| 12 | |
| 13 var div; | |
| 14 for (int i = 0; i < M; ++i) { | |
| 15 // This memory should be freed when the listener below is | |
| 16 // collected. | |
| 17 List l = new List(N); | |
| 18 | |
| 19 // Record the iteration number. | |
| 20 l[N - 1] = i; | |
| 21 | |
| 22 div = new Element.tag('div'); | |
| 23 div.on['test'].add((_) { | |
| 24 // Only the final iteration's listener should be invoked. | |
| 25 // Note: the reference to l keeps the entire list alive. | |
| 26 Expect.equals(M - 1, l[N - 1]); | |
| 27 }, false); | |
| 28 } | |
| 29 | |
| 30 final event = new Event('test'); | |
| 31 div.on['test'].dispatch(event); | |
| 32 }); | |
| 33 } | |
| OLD | NEW |