WebCore:
[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 objCController.doesNotExist;
13 }
14
15 function test()
16 {
17     if (!window.objCController) {
18         print("FAIL: window.objCController does not exist");
19         return;
20     }
21
22     if (window.layoutTestController)
23         layoutTestController.dumpAsText();
24
25     var crasher = test2();
26     delete objCController;
27     
28     // create lots of objects to force a garbage collection
29     var i = 0;
30     var s;
31     while (i < 5000) {
32         i = i + 1.11;
33         s = s + " ";
34     }
35     
36     if (crasher) {} // force call to toBoolean
37     if (crasher == null) {} // force call to type() through call to equal
38     
39     if (window.objCController)
40         print("FAIL: unable to delete objCController");
41     else
42         print("PASS: You didn't crash.");
43 }
44 </script>
45 </head>
46 <body onload="test()">
47 <p>
48 This test checks for a regression against: rdar://problem/4176077 CrashTracer: 
49 6569 crashes in DashboardClient at com.apple.JavaScriptCore:
50 KJS::Bindings::ObjcFallbackObjectImp::type()
51 </p>
52 <p>
53 This test only works in DumpRenderTree, because it depends on having a plugin object 
54 that it can 'delete.'
55 </p>
56 <hr>
57 <div id="console"></div>
58 </body>
59 </html>