51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
load("test-common.js");
|
|
|
|
try {
|
|
let o = {
|
|
foo: "bar",
|
|
get x() { },
|
|
set ["hi" + 1](_) { },
|
|
};
|
|
|
|
Object.defineProperty(o, "baz", {
|
|
enumerable: false,
|
|
writable: true,
|
|
value: 10,
|
|
});
|
|
|
|
let d = Object.getOwnPropertyDescriptor(o, "foo");
|
|
assert(d.enumerable === true);
|
|
assert(d.configurable === true);
|
|
assert(d.writable === true);
|
|
assert(d.value === "bar");
|
|
assert(d.get === undefined);
|
|
assert(d.set === undefined);
|
|
|
|
let d = Object.getOwnPropertyDescriptor(o, "x");
|
|
assert(d.enumerable === true);
|
|
assert(d.configurable === true);
|
|
assert(d.writable === undefined);
|
|
assert(d.value === undefined);
|
|
assert(typeof d.get === "function");
|
|
assert(d.set === undefined);
|
|
|
|
let d = Object.getOwnPropertyDescriptor(o, "hi1");
|
|
assert(d.enumerable === true);
|
|
assert(d.configurable === true);
|
|
assert(d.writable === undefined);
|
|
assert(d.value === undefined);
|
|
assert(d.get === undefined);
|
|
assert(typeof d.set === "function");
|
|
|
|
let d = Object.getOwnPropertyDescriptor(o, "baz");
|
|
assert(d.enumerable === false);
|
|
assert(d.configurable === false);
|
|
assert(d.writable === true);
|
|
assert(d.value === 10);
|
|
assert(d.get === undefined);
|
|
assert(d.set === undefined);
|
|
|
|
console.log("PASS");
|
|
} catch (e) {
|
|
console.log("FAIL: " + e);
|
|
}
|