|
1 <!doctype html> |
|
2 <meta charset=utf-8> |
|
3 <title>[LenientThis]</title> |
|
4 <script src=/resources/testharness.js></script> |
|
5 <script src=/resources/testharnessreport.js></script> |
|
6 <div id=log></div> |
|
7 <script> |
|
8 function noop1() { } |
|
9 function noop2() { } |
|
10 |
|
11 test(function() { |
|
12 var desc = Object.getOwnPropertyDescriptor(Document.prototype, "onreadystatechange"); |
|
13 |
|
14 document.onreadystatechange = noop1; |
|
15 assert_equals(document.onreadystatechange, noop1, "document.onreadystatechange == noop1"); |
|
16 assert_equals(desc.get.call({ }), undefined, "document.onreadystatechange getter.call({}) == undefined"); |
|
17 }, "invoking Document.onreadystatechange's getter with an invalid this object returns undefined"); |
|
18 |
|
19 test(function() { |
|
20 var desc = Object.getOwnPropertyDescriptor(Document.prototype, "onreadystatechange"); |
|
21 |
|
22 document.onreadystatechange = noop1; |
|
23 assert_equals(document.onreadystatechange, noop1, "document.onreadystatechange == noop1"); |
|
24 assert_equals(desc.set.call({ }, noop2), undefined, "document.onreadystatechange setter.call({}) == undefined"); |
|
25 assert_equals(document.onreadystatechange, noop1, "document.onreadystatechange == noop1 (still)"); |
|
26 }, "invoking Document.onreadystatechange's setter with an invalid this object does nothing and returns undefined"); |
|
27 </script> |