ES6 class syntax should allow static setters and getters
[WebKit-https.git] / LayoutTests / js / script-tests / class-syntax-declaration.js
index 78a669975ce501cd90275bc42e7917d309b52d17..769688c4eea28509a2d5f86ef3e8bad0502b29d4 100644 (file)
@@ -9,6 +9,8 @@ var setterValue = undefined;
 class A {
     constructor() { constructorCallCount++; }
     static someStaticMethod() { return staticMethodValue; }
+    static get someStaticGetter() { return getterValue; }
+    static set someStaticSetter(value) { setterValue = value; }
     someInstanceMethod() { return instanceMethodValue; }
     get someGetter() { return getterValue; }
     set someSetter(value) { setterValue = value; }
@@ -16,14 +18,14 @@ class A {
 
 shouldBe("constructorCallCount", "0");
 shouldBe("A.someStaticMethod()", "staticMethodValue");
+shouldBe("A.someStaticGetter", "getterValue");
+shouldBe("setterValue = undefined; A.someStaticSetter = 123; setterValue", "123");
 shouldBe("(new A).someInstanceMethod()", "instanceMethodValue");
 shouldBe("constructorCallCount", "1");
 shouldBe("(new A).someGetter", "getterValue");
 shouldBe("constructorCallCount", "2");
 shouldBe("(new A).someGetter", "getterValue");
-shouldBe("setterValue", "undefined");
-shouldNotThrow("(new A).someSetter = 789");
-shouldBe("setterValue", "789");
+shouldBe("setterValue = undefined; (new A).someSetter = 789; setterValue", "789");
 shouldBe("(new A).__proto__", "A.prototype");
 shouldBe("A.prototype.constructor", "A");