js/src/jit-test/tests/basic/spread-call-this-strict.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:511e9ecb921f
1 "use strict";
2
3 let global = this;
4 let p = {};
5 let q = {};
6
7 let g1 = function() {
8 assertEq(this, undefined);
9 };
10 g1(...[]);
11
12 let g2 = x => {
13 assertEq(this, global);
14 };
15 g2(...[]);
16
17 let g3 = function() {
18 assertEq(this, p);
19 };
20 g3.apply(p, ...[]);
21 g3.call(p, ...[]);
22
23 g2.apply(p, ...[]);
24 g2.call(p, ...[]);
25
26 let o = {
27 f1: function() {
28 assertEq(this, o);
29
30 let g1 = function() {
31 assertEq(this, undefined);
32 };
33 g1(...[]);
34
35 let g2 = x => {
36 assertEq(this, o);
37 };
38 g2(...[]);
39
40 let g3 = function() {
41 assertEq(this, q);
42 };
43 g3.apply(q, ...[]);
44 g3.call(q, ...[]);
45
46 let g4 = x => {
47 assertEq(this, o);
48 };
49 g4.apply(q, ...[]);
50 g4.call(q, ...[]);
51 },
52 f2: x => {
53 assertEq(this, global);
54 let g1 = function() {
55 assertEq(this, undefined);
56 };
57 g1(...[]);
58
59 let g2 = x => {
60 assertEq(this, global);
61 };
62 g2(...[]);
63
64 let g3 = function() {
65 assertEq(this, q);
66 };
67 g3.apply(q, ...[]);
68 g3.call(q, ...[]);
69
70 let g4 = x => {
71 assertEq(this, global);
72 };
73 g4.apply(q, ...[]);
74 g4.call(q, ...[]);
75 },
76 f3: function() {
77 assertEq(this, p);
78
79 let g1 = function() {
80 assertEq(this, undefined);
81 };
82 g1(...[]);
83
84 let g2 = x => {
85 assertEq(this, p);
86 };
87 g2(...[]);
88
89 let g3 = function() {
90 assertEq(this, q);
91 };
92 g3.apply(q, ...[]);
93 g3.call(q, ...[]);
94
95 let g4 = x => {
96 assertEq(this, p);
97 };
98 g4.apply(q, ...[]);
99 g4.call(q, ...[]);
100 }
101 };
102 o.f1(...[]);
103 o.f2(...[]);
104 o.f3.apply(p, ...[]);
105 o.f2.apply(p, ...[]);

mercurial