1// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Flags: --harmony-sloppy
6
7
8(function Method() {
9  class C {
10    eval() {
11      return 1;
12    }
13    arguments() {
14      return 2;
15    }
16    static eval() {
17      return 3;
18    }
19    static arguments() {
20      return 4;
21    }
22  };
23
24  assertEquals(1, new C().eval());
25  assertEquals(2, new C().arguments());
26  assertEquals(3, C.eval());
27  assertEquals(4, C.arguments());
28})();
29
30
31(function Getters() {
32  class C {
33    get eval() {
34      return 1;
35    }
36    get arguments() {
37      return 2;
38    }
39    static get eval() {
40      return 3;
41    }
42    static get arguments() {
43      return 4;
44    }
45  };
46
47  assertEquals(1, new C().eval);
48  assertEquals(2, new C().arguments);
49  assertEquals(3, C.eval);
50  assertEquals(4, C.arguments);
51})();
52
53
54(function Setters() {
55  var x = 0;
56  class C {
57    set eval(v) {
58      x = v;
59    }
60    set arguments(v) {
61      x = v;
62    }
63    static set eval(v) {
64      x = v;
65    }
66    static set arguments(v) {
67      x = v;
68    }
69  };
70
71  new C().eval = 1;
72  assertEquals(1, x);
73  new C().arguments = 2;
74  assertEquals(2, x);
75  C.eval = 3;
76  assertEquals(3, x);
77  C.arguments = 4;
78  assertEquals(4, x);
79})();
80