summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_6/Class/methodName.js
blob: 02a726c1054821364794bced36b23794acf9b738 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class TestClass {
    get getter() { }
    set setter(x) { }
    method() { }

    static get staticGetter() { }
    static set staticSetter(x) { }
    static staticMethod() { }

    get 1() { }
    set 2(v) { }
    3() { }

    static get 4() { }
    static set 5(x) { }
    static 6() { }
}

function name(obj, property, get) {
    let desc = Object.getOwnPropertyDescriptor(obj, property);
    return (get ? desc.get : desc.set).name;
}

assertEq(name(TestClass.prototype, "getter", true), "get getter");
assertEq(name(TestClass.prototype, "setter", false), "set setter");
assertEq(TestClass.prototype.method.name, "method");

assertEq(name(TestClass, "staticGetter", true), "get staticGetter");
assertEq(name(TestClass, "staticSetter", false), "set staticSetter");
assertEq(TestClass.staticMethod.name, "staticMethod");

assertEq(name(TestClass.prototype, "1", true), "get 1");
assertEq(name(TestClass.prototype, "2", false), "set 2");
assertEq(TestClass.prototype[3].name, "3");

assertEq(name(TestClass, "4", true), "get 4");
assertEq(name(TestClass, "5", false), "set 5");
assertEq(TestClass[6].name, "6");

reportCompare(true, true);