ladybird/Libraries/LibJS/Tests/classes/class-accessor-enumerable.js
Pavel Shliak 4f0e8236a0 LibJS: Make class accessors non-enumerable
According to ECMA-262 §15.4.5 (MethodDefinitionEvaluation),
getters and setters defined in class bodies
must create property descriptors with
[[Enumerable]]: false. Previously we incorrectly marked them enumerable.

This patch updates `ClassMethod::class_element_evaluation` so that both
getter and setter descriptors use `.enumerable = false`.
2025-09-07 08:35:10 -04:00

12 lines
324 B
JavaScript

test("class accessor should be non-enumerable", () => {
class C {
get x() {
return 1;
}
set x(v) {}
}
const desc = Object.getOwnPropertyDescriptor(C.prototype, "x");
expect(desc.enumerable).toBeFalse();
expect(Object.keys(C.prototype).includes("x")).toBeFalse();
});