| <!doctype html> |
| <meta charset=utf-8> |
| <title>Deleting properties from HTMLCollection</title> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <div id=log></div> |
| <i id=foo></i> |
| <script> |
| let c, expected; |
| setup(() => { |
| // These might be cached anyway, so explicitly use a single object. |
| c = document.getElementsByTagName("i"); |
| expected = document.getElementById("foo"); |
| }); |
| |
| test(() => { |
| assert_equals(c[0], expected, "before"); |
| delete c[0]; |
| assert_equals(c[0], expected, "after"); |
| }, "Loose id"); |
| |
| test(() => { |
| assert_equals(c[0], expected, "before"); |
| assert_throws_js(TypeError, function() { |
| "use strict"; |
| delete c[0]; |
| }); |
| assert_equals(c[0], expected, "after"); |
| }, "Strict id"); |
| |
| test(() => { |
| assert_equals(c.foo, expected, "before"); |
| delete c.foo; |
| assert_equals(c.foo, expected, "after"); |
| }, "Loose name"); |
| |
| test(() => { |
| assert_equals(c.foo, expected, "before"); |
| assert_throws_js(TypeError, function() { |
| "use strict"; |
| delete c.foo; |
| }); |
| assert_equals(c.foo, expected, "after"); |
| }, "Strict name"); |
| </script> |