<https://bugs.webkit.org/show_bug.cgi?id=23049> [jsfunfuzz] With blocks do not correc...
[WebKit-https.git] / LayoutTests / fast / js / resources / with-scope-gc.js
1 description(
2 'Tests to make sure that dynamic scope objects are correctly protected from GC.  To pass we need to not crash.'
3 );
4
5 function gc()
6 {
7     if (this.GCController)
8         GCController.collect();
9     else
10         for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
11             ({});
12 }
13
14 (function() {
15     try {
16         // Immediate value for scope
17         with(1) { gc(); a; }
18     } catch(e) {
19     }
20 })();
21
22 (function() {
23     try {
24         // Real object for scope
25         var local;
26         with (local = {}) {
27             z=null;
28             {}; {}; [1,2,3,4*{}]; // Clobber any temporaries the scope may exist in
29             gc(); 
30             b;
31         }
32     } catch (e) {
33     }
34 })();
35
36 (function() {
37     try {
38         // Test catch blocks for the heck of it
39         try {
40             throw 1;
41         } catch(e) {
42             gc();
43             b;
44         }
45     } catch (e) {
46     }
47 })();
48
49 var successfullyParsed = true;