Bug 1885602 - Part 5: Implement navigating to the SUMO help topic from the menu heade...
[gecko.git] / dom / bindings / test / test_proxy_missing_prop.html
blobcdb68517227e30f52fae905b0b9bb04c2d0685fe
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=1863543
5 -->
6 <head>
7 <meta charset="utf-8">
8 <title>Test for Bug 1863543</title>
9 <script src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
11 </head>
12 <body>
13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1863543">Mozilla Bug 1863543</a>
14 <p id="display"></p>
15 <pre id="test">
16 <script>
17 // Test for JIT IC guards for missing properties on the HTMLDocument DOM proxy.
18 function testMissingProps() {
19 var doc = document;
20 var docProto = Object.getPrototypeOf(doc);
22 for (var i = 0; i < 30; i++) {
23 if (i === 15) {
24 // Add shadowing expando property.
25 doc.unusedPropName1 = 12;
27 if (i === 20) {
28 // Add prototype property.
29 docProto.unusedPropName2 = 34;
31 if (i == 25) {
32 // Add shadowing element.
33 var el = document.createElement("object");
34 el.id = "unusedPropName3";
35 document.body.appendChild(el);
37 var v1 = doc.unusedPropName1;
38 var v2 = doc.unusedPropName2;
39 var v3 = doc.unusedPropName3;
40 is(v1, i >= 15 ? 12 : undefined);
41 is(v2, i >= 20 ? 34 : undefined);
42 is(v3, i >= 25 ? el : undefined);
45 testMissingProps();
46 </script>
47 </pre>
48 </body>
49 </html>