| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 'use strict'; | 5 'use strict'; |
| 6 | 6 |
| 7 // Flags: --harmony-computed-property-names --harmony-classes | 7 // Flags: --harmony-computed-property-names --harmony-classes |
| 8 | 8 |
| 9 | 9 |
| 10 function ID(x) { | 10 function ID(x) { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 static ['d']() { return 'D'; } | 76 static ['d']() { return 'D'; } |
| 77 } | 77 } |
| 78 assertEquals('A', C.a()); | 78 assertEquals('A', C.a()); |
| 79 assertEquals('B', C.b()); | 79 assertEquals('B', C.b()); |
| 80 assertEquals('C', C.c()); | 80 assertEquals('C', C.c()); |
| 81 assertEquals('D', C.d()); | 81 assertEquals('D', C.d()); |
| 82 assertArrayEquals([], Object.keys(C)); | 82 assertArrayEquals([], Object.keys(C)); |
| 83 // TODO(arv): It is not clear that we are adding the "standard" properties | 83 // TODO(arv): It is not clear that we are adding the "standard" properties |
| 84 // in the right order. As far as I can tell the spec adds them in alphabetical | 84 // in the right order. As far as I can tell the spec adds them in alphabetical |
| 85 // order. | 85 // order. |
| 86 assertArrayEquals(['length', 'name', 'arguments', 'caller', 'prototype', | 86 assertArrayEquals(['length', 'name', 'prototype', |
| 87 'a', 'b', 'c', 'd'], | 87 'a', 'b', 'c', 'd'], |
| 88 Object.getOwnPropertyNames(C)); | 88 Object.getOwnPropertyNames(C)); |
| 89 })(); | 89 })(); |
| 90 | 90 |
| 91 | 91 |
| 92 (function TestStaticClassMethodNumber() { | 92 (function TestStaticClassMethodNumber() { |
| 93 class C { | 93 class C { |
| 94 static a() { return 'A'; } | 94 static a() { return 'A'; } |
| 95 static [1]() { return 'B'; } | 95 static [1]() { return 'B'; } |
| 96 static c() { return 'C'; } | 96 static c() { return 'C'; } |
| 97 static [2]() { return 'D'; } | 97 static [2]() { return 'D'; } |
| 98 } | 98 } |
| 99 assertEquals('A', C.a()); | 99 assertEquals('A', C.a()); |
| 100 assertEquals('B', C[1]()); | 100 assertEquals('B', C[1]()); |
| 101 assertEquals('C', C.c()); | 101 assertEquals('C', C.c()); |
| 102 assertEquals('D', C[2]()); | 102 assertEquals('D', C[2]()); |
| 103 // Array indexes first. | 103 // Array indexes first. |
| 104 assertArrayEquals([], Object.keys(C)); | 104 assertArrayEquals([], Object.keys(C)); |
| 105 assertArrayEquals(['1', '2', 'length', 'name', 'arguments', 'caller', | 105 assertArrayEquals(['1', '2', 'length', 'name', |
| 106 'prototype', 'a', 'c'], Object.getOwnPropertyNames(C)); | 106 'prototype', 'a', 'c'], Object.getOwnPropertyNames(C)); |
| 107 })(); | 107 })(); |
| 108 | 108 |
| 109 | 109 |
| 110 (function TestStaticClassMethodSymbol() { | 110 (function TestStaticClassMethodSymbol() { |
| 111 var sym1 = Symbol(); | 111 var sym1 = Symbol(); |
| 112 var sym2 = Symbol(); | 112 var sym2 = Symbol(); |
| 113 class C { | 113 class C { |
| 114 static a() { return 'A'; } | 114 static a() { return 'A'; } |
| 115 static [sym1]() { return 'B'; } | 115 static [sym1]() { return 'B'; } |
| 116 static c() { return 'C'; } | 116 static c() { return 'C'; } |
| 117 static [sym2]() { return 'D'; } | 117 static [sym2]() { return 'D'; } |
| 118 } | 118 } |
| 119 assertEquals('A', C.a()); | 119 assertEquals('A', C.a()); |
| 120 assertEquals('B', C[sym1]()); | 120 assertEquals('B', C[sym1]()); |
| 121 assertEquals('C', C.c()); | 121 assertEquals('C', C.c()); |
| 122 assertEquals('D', C[sym2]()); | 122 assertEquals('D', C[sym2]()); |
| 123 assertArrayEquals([], Object.keys(C)); | 123 assertArrayEquals([], Object.keys(C)); |
| 124 assertArrayEquals(['length', 'name', 'arguments', 'caller', 'prototype', | 124 assertArrayEquals(['length', 'name', 'prototype', |
| 125 'a', 'c'], | 125 'a', 'c'], |
| 126 Object.getOwnPropertyNames(C)); | 126 Object.getOwnPropertyNames(C)); |
| 127 assertArrayEquals([sym1, sym2], Object.getOwnPropertySymbols(C)); | 127 assertArrayEquals([sym1, sym2], Object.getOwnPropertySymbols(C)); |
| 128 })(); | 128 })(); |
| 129 | 129 |
| 130 | 130 |
| 131 | 131 |
| 132 function assertIteratorResult(value, done, result) { | 132 function assertIteratorResult(value, done, result) { |
| 133 assertEquals({ value: value, done: done}, result); | 133 assertEquals({ value: value, done: done}, result); |
| 134 } | 134 } |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 class C { | 456 class C { |
| 457 get [C]() { return 42; } | 457 get [C]() { return 42; } |
| 458 } | 458 } |
| 459 }, ReferenceError); | 459 }, ReferenceError); |
| 460 assertThrows(function() { | 460 assertThrows(function() { |
| 461 class C { | 461 class C { |
| 462 set [C](_) { } | 462 set [C](_) { } |
| 463 } | 463 } |
| 464 }, ReferenceError); | 464 }, ReferenceError); |
| 465 })(); | 465 })(); |
| OLD | NEW |