summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Function/function-name-computed-01.js
blob: ee74dfd6bbf3f609609ef83d6722c535470c4059 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
var obj = {
  ["func"]: function() {},
  ["genFunc"]: function*() {},
  ["asyncFunc"]: async function() {},
  ["asyncGenFunc"]: async function*() {},
  ["arrowFunc"]: ()=>{},
  ["asyncArrowFunc"]: async ()=>{},
  ["method"]() {},
  ["anonClass"]: class {},
  ["nonAnonymousFunc"]: function F() {},
  ["nonAnonymousClass"]: class C{},
  get ["getter"]() {},
  set ["setter"](x) {},
};

assertEq(obj.func.name, "func");
assertEq(obj.genFunc.name, "genFunc");
assertEq(obj.asyncFunc.name, "asyncFunc");
assertEq(obj.asyncGenFunc.name, "asyncGenFunc");
assertEq(obj.arrowFunc.name, "arrowFunc");
assertEq(obj.asyncArrowFunc.name, "asyncArrowFunc");
assertEq(obj.method.name, "method");
assertEq(obj.anonClass.name, "anonClass");
assertEq(obj.nonAnonymousFunc.name, "F");
assertEq(obj.nonAnonymousClass.name, "C");

assertEq(Object.getOwnPropertyDescriptor(obj, "getter").get.name, "get getter");
assertEq(Object.getOwnPropertyDescriptor(obj, "setter").set.name, "set setter");

let dummy = class {
  ["func"]() {}
  *["genFunc"] () {}
  async ["asyncFunc"]() {}
  async *["asyncGenFunc"]() {}
  ["arrowFunc"] = ()=>{}
  ["asyncArrowFunc"] = async ()=>{};
  ["method"]() {}
  get ["getter"]() {}
  set ["setter"](x) {}
};

dum = new dummy();

assertEq(dum.func.name, "func");
assertEq(dum.genFunc.name, "genFunc");
assertEq(dum.asyncFunc.name, "asyncFunc");
assertEq(dum.asyncGenFunc.name, "asyncGenFunc");
assertEq(dum.arrowFunc.name, "arrowFunc");
assertEq(dum.asyncArrowFunc.name, "asyncArrowFunc");
assertEq(dum.method.name, "method");

assertEq(Object.getOwnPropertyDescriptor(dummy.prototype, "getter").get.name, "get getter");
assertEq(Object.getOwnPropertyDescriptor(dummy.prototype, "setter").set.name, "set setter");

if (typeof reportCompare === "function")
  reportCompare(true, true);