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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// function declaration
function func_1() {
return {
x: 1
};
}
func_1().x;
// ^ defined: 4
// generator function declaration
function* gen_func_1() {
yield {
x: 1
};
}
gen_func_1().x;
// ^ defined: 16
// assigned function
let func_2 = function () {
return {
x: 1
};
}
func_2().x;
// ^ defined: 28
// assigned generator function
let gen_func_2 = function* () {
yield {
x: 1
};
}
gen_func_2().x;
// ^ defined: 40
// assigned single-param expression-body arrow function
let func_3 = o => ({
x: 1
});
func_3(1).x;
// ^ defined: 50
// assigned multi-param expression-body arrow function
let func_4 = () => ({
x: 1
});
func_4().x;
// ^ defined: 60
// assigned single-param statement-body arrow function
let func_5 = o => {
return {
x: 1
};
};
func_5(1).x;
// ^ defined: 71
// assigned multi-param statement-body arrow function
let func_6 = () => {
return {
x: 1
};
};
func_6().x;
// ^ defined: 83