Reviewed by Maciej.
[WebKit-https.git] / LayoutTests / plugins / undefined-property-crash.html
1 <html>
2 <head>
3 <script>
4 function print(message) {
5     var paragraph = document.createElement("p");
6     paragraph.appendChild(document.createTextNode(message));
7     document.getElementById("console").appendChild(paragraph);
8 }
9
10 function test2()
11 {
12     return layoutTestController.doesNotExist;
13 }
14
15 function test()
16 {
17     if (window.layoutTestController)
18         layoutTestController.dumpAsText();
19     else
20         print("FAIL: window.layoutTestController does not exist");
21         
22     var crasher = test2();
23     delete layoutTestController;
24     
25     // create lots of objects to force a garbage collection
26     var i = 0;
27     var s;
28     while (i < 5000) {
29         i = i + 1.11;
30         s = s + " ";
31     }
32     
33     if (crasher) {} // force call to toBoolean
34     if (crasher == null) {} // force call to type() through call to equal
35     
36     if (window.layoutTestController)   
37         print("FAIL: unable to delete layoutTestController");
38     else
39         print("PASS: You didn't crash.");
40 }
41 </script>
42         
43 </head>
44 <body onload="test()">
45 <p>
46 This test checks for a regression against: rdar://problem/4176077 CrashTracer: 
47 6569 crashes in DashboardClient at com.apple.JavaScriptCore:
48 KJS::Bindings::ObjcFallbackObjectImp::type()
49 </p>
50 <p>
51 This test only works in DumpRenderTree, because it depends on having a plugin object 
52 that it can 'delete.'
53 </p>
54 <hr>
55 <div id="console"></div>
56 </body>
57 </html>