[Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointereven...
[WebKit-https.git] / LayoutTests / webgl / max-active-contexts-gc.html
1 <script>
2 function forceGC() {
3     try {
4         for (var ndx = 0; ndx < 99000; ndx++)
5             var numbers = new Float64Array(50 * 1024);
6     } catch (e) { }
7 }
8
9 function addContext() {
10     contexts.push(document.createElement("canvas").getContext("webgl"));
11 }
12
13 if (window.testRunner) {
14     testRunner.waitUntilDone();
15     testRunner.dumpAsText();
16 }
17
18 var maxNumberOfActiveContexts = 16;
19 var contextsToKeep = 8;
20 var contexts = [];
21
22 // Create the max number of active WebGL contexts.
23 while (contexts.length < maxNumberOfActiveContexts)
24     addContext();
25
26 // Now remove some of those contexts from this array so they may be garbage collected.
27 while (contexts.length > contextsToKeep)
28     contexts.shift();
29
30 setTimeout(function() {
31     if (window.GCController)
32         GCController.collect();
33     else
34         forceGC();
35
36     // Add contexts until we get to the limit then add one more. This should only
37     // produce a single warning that an older context will be lost.
38     setTimeout(function() {
39         while (contexts.length < maxNumberOfActiveContexts + 1)
40             addContext();
41
42         if (window.testRunner)
43             testRunner.notifyDone();
44     });
45 });
46
47 </script>