47 lines
2 KiB
HTML
47 lines
2 KiB
HTML
<!doctype html>
|
|
<meta charset="utf-8">
|
|
<title>CSSOM - Symbol.toStringTag value of CSS namespace object</title>
|
|
<link rel="help" href="https://webidl.spec.whatwg.org/#es-namespaces">
|
|
<link rel="help" href="https://drafts.csswg.org/cssom/#namespacedef-css">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script>
|
|
"use strict";
|
|
|
|
test(() => {
|
|
assert_own_property(CSS, Symbol.toStringTag);
|
|
|
|
const propDesc = Object.getOwnPropertyDescriptor(CSS, Symbol.toStringTag);
|
|
assert_equals(propDesc.value, "CSS", "value");
|
|
assert_equals(propDesc.writable, false, "writable");
|
|
assert_equals(propDesc.enumerable, false, "enumerable");
|
|
assert_equals(propDesc.configurable, true, "configurable");
|
|
}, "@@toStringTag exists on the namespace object with the appropriate descriptor");
|
|
|
|
test(() => {
|
|
assert_equals(CSS.toString(), "[object CSS]");
|
|
assert_equals(Object.prototype.toString.call(CSS), "[object CSS]");
|
|
}, "Object.prototype.toString applied to the namespace object");
|
|
|
|
test(t => {
|
|
assert_own_property(CSS, Symbol.toStringTag, "Precondition: @@toStringTag on the namespace object");
|
|
t.add_cleanup(() => {
|
|
Object.defineProperty(CSS, Symbol.toStringTag, { value: "CSS" });
|
|
});
|
|
|
|
Object.defineProperty(CSS, Symbol.toStringTag, { value: "Test" });
|
|
assert_equals(CSS.toString(), "[object Test]");
|
|
assert_equals(Object.prototype.toString.call(CSS), "[object Test]");
|
|
}, "Object.prototype.toString applied after modifying the namespace object's @@toStringTag");
|
|
|
|
test(t => {
|
|
assert_own_property(CSS, Symbol.toStringTag, "Precondition: @@toStringTag on the namespace object");
|
|
t.add_cleanup(() => {
|
|
Object.defineProperty(CSS, Symbol.toStringTag, { value: "CSS" });
|
|
});
|
|
|
|
assert_true(delete CSS[Symbol.toStringTag]);
|
|
assert_equals(CSS.toString(), "[object Object]");
|
|
assert_equals(Object.prototype.toString.call(CSS), "[object Object]");
|
|
}, "Object.prototype.toString applied after deleting @@toStringTag");
|
|
</script>
|