mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-15 12:39:13 +00:00
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`.
12 lines
324 B
JavaScript
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();
|
|
});
|