| Index: third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html b/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
|
| index a37163b7d189c292336f17a5db8ba3c0ac512efa..0a9df1ad6606476c3f3463032957cec931af19b4 100644
|
| --- a/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/dom/collections/HTMLCollection-supported-property-names.html
|
| @@ -51,4 +51,85 @@ test(function () {
|
|
|
| assert_array_equals(Object.getOwnPropertyNames(elements), ['0', 'someProperty']);
|
| }, 'Object.getOwnPropertyNames on HTMLCollection with expando object');
|
| +
|
| +test(function() {
|
| + var elements = document.getElementsByTagName("span");
|
| + var old_item = elements["some-id"];
|
| + var old_desc = Object.getOwnPropertyDescriptor(elements, "some-id");
|
| + assert_equals(old_desc.value, old_item);
|
| + assert_false(old_desc.enumerable);
|
| + assert_true(old_desc.configurable);
|
| + assert_false(old_desc.writable);
|
| +
|
| + elements["some-id"] = 5;
|
| + assert_equals(elements["some-id"], old_item);
|
| + assert_throws(new TypeError(), function() {
|
| + "use strict";
|
| + elements["some-id"] = 5;
|
| + });
|
| + assert_throws(new TypeError(), function() {
|
| + Object.defineProperty(elements, "some-id", { value: 5 });
|
| + });
|
| +
|
| + delete elements["some-id"];
|
| + assert_equals(elements["some-id"], old_item);
|
| +
|
| + assert_throws(new TypeError(), function() {
|
| + "use strict";
|
| + delete elements["some-id"];
|
| + });
|
| + assert_equals(elements["some-id"], old_item);
|
| +
|
| +}, 'Trying to set an expando that would shadow an already-existing named property');
|
| +
|
| +test(function() {
|
| + var elements = document.getElementsByTagName("span");
|
| + var old_item = elements["new-id"];
|
| + var old_desc = Object.getOwnPropertyDescriptor(elements, "new-id");
|
| + assert_equals(old_item, undefined);
|
| + assert_equals(old_desc, undefined);
|
| +
|
| + elements["new-id"] = 5;
|
| + assert_equals(elements["new-id"], 5);
|
| +
|
| + var span = document.createElement("span");
|
| + this.add_cleanup(function () {span.remove();});
|
| + span.id = "new-id";
|
| + document.body.appendChild(span);
|
| +
|
| + assert_equals(elements.namedItem("new-id"), span);
|
| + assert_equals(elements["new-id"], 5);
|
| +
|
| + delete elements["new-id"];
|
| + assert_equals(elements["new-id"], span);
|
| +}, 'Trying to set an expando that shadows a named property that gets added later');
|
| +
|
| +test(function() {
|
| + var elements = document.getElementsByTagName("span");
|
| + var old_item = elements["new-id2"];
|
| + var old_desc = Object.getOwnPropertyDescriptor(elements, "new-id2");
|
| + assert_equals(old_item, undefined);
|
| + assert_equals(old_desc, undefined);
|
| +
|
| + Object.defineProperty(elements, "new-id2", { configurable: false, writable:
|
| + false, value: 5 });
|
| + assert_equals(elements["new-id2"], 5);
|
| +
|
| + var span = document.createElement("span");
|
| + this.add_cleanup(function () {span.remove();});
|
| + span.id = "new-id2";
|
| + document.body.appendChild(span);
|
| +
|
| + assert_equals(elements.namedItem("new-id2"), span);
|
| + assert_equals(elements["new-id2"], 5);
|
| +
|
| + delete elements["new-id2"];
|
| + assert_equals(elements["new-id2"], 5);
|
| +
|
| + assert_throws(new TypeError(), function() {
|
| + "use strict";
|
| + delete elements["new-id2"];
|
| + });
|
| + assert_equals(elements["new-id2"], 5);
|
| +}, 'Trying to set a non-configurable expando that shadows a named property that gets added later');
|
| </script>
|
|
|