Index: test/mjsunit/harmony/computed-property-names-classes.js |
diff --git a/test/mjsunit/harmony/computed-property-names-classes.js b/test/mjsunit/harmony/computed-property-names-classes.js |
deleted file mode 100644 |
index bcd031811e3523f784a841e622bb654868ac8acc..0000000000000000000000000000000000000000 |
--- a/test/mjsunit/harmony/computed-property-names-classes.js |
+++ /dev/null |
@@ -1,367 +0,0 @@ |
-// Copyright 2014 the V8 project authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-'use strict'; |
- |
-// Flags: --harmony-computed-property-names --harmony-classes |
- |
- |
-function ID(x) { |
- return x; |
-} |
- |
- |
-(function TestClassMethodString() { |
- class C { |
- a() { return 'A'} |
- ['b']() { return 'B'; } |
- c() { return 'C'; } |
- [ID('d')]() { return 'D'; } |
- } |
- assertEquals('A', new C().a()); |
- assertEquals('B', new C().b()); |
- assertEquals('C', new C().c()); |
- assertEquals('D', new C().d()); |
- assertArrayEquals(['a', 'b', 'c', 'd'], Object.keys(C.prototype)); |
-})(); |
- |
- |
-(function TestClassMethodNumber() { |
- class C { |
- a() { return 'A'; } |
- [1]() { return 'B'; } |
- c() { return 'C'; } |
- [ID(2)]() { return 'D'; } |
- } |
- assertEquals('A', new C().a()); |
- assertEquals('B', new C()[1]()); |
- assertEquals('C', new C().c()); |
- assertEquals('D', new C()[2]()); |
- // Array indexes first. |
- assertArrayEquals(['1', '2', 'a', 'c'], Object.keys(C.prototype)); |
-})(); |
- |
- |
-(function TestClassMethodSymbol() { |
- var sym1 = Symbol(); |
- var sym2 = Symbol(); |
- class C { |
- a() { return 'A'; } |
- [sym1]() { return 'B'; } |
- c() { return 'C'; } |
- [ID(sym2)]() { return 'D'; } |
- } |
- assertEquals('A', new C().a()); |
- assertEquals('B', new C()[sym1]()); |
- assertEquals('C', new C().c()); |
- assertEquals('D', new C()[sym2]()); |
- assertArrayEquals(['a', 'c'], Object.keys(C.prototype)); |
- assertArrayEquals([sym1, sym2], Object.getOwnPropertySymbols(C.prototype)); |
-})(); |
- |
- |
- |
-(function TestStaticClassMethodString() { |
- class C { |
- static a() { return 'A'} |
- static ['b']() { return 'B'; } |
- static c() { return 'C'; } |
- static ['d']() { return 'D'; } |
- } |
- assertEquals('A', C.a()); |
- assertEquals('B', C.b()); |
- assertEquals('C', C.c()); |
- assertEquals('D', C.d()); |
- assertArrayEquals(['a', 'b', 'c', 'd'], Object.keys(C)); |
-})(); |
- |
- |
-(function TestStaticClassMethodNumber() { |
- class C { |
- static a() { return 'A'; } |
- static [1]() { return 'B'; } |
- static c() { return 'C'; } |
- static [2]() { return 'D'; } |
- } |
- assertEquals('A', C.a()); |
- assertEquals('B', C[1]()); |
- assertEquals('C', C.c()); |
- assertEquals('D', C[2]()); |
- // Array indexes first. |
- assertArrayEquals(['1', '2', 'a', 'c'], Object.keys(C)); |
-})(); |
- |
- |
-(function TestStaticClassMethodSymbol() { |
- var sym1 = Symbol(); |
- var sym2 = Symbol(); |
- class C { |
- static a() { return 'A'; } |
- static [sym1]() { return 'B'; } |
- static c() { return 'C'; } |
- static [sym2]() { return 'D'; } |
- } |
- assertEquals('A', C.a()); |
- assertEquals('B', C[sym1]()); |
- assertEquals('C', C.c()); |
- assertEquals('D', C[sym2]()); |
- assertArrayEquals(['a', 'c'], Object.keys(C)); |
- assertArrayEquals([sym1, sym2], Object.getOwnPropertySymbols(C)); |
-})(); |
- |
- |
- |
-function assertIteratorResult(value, done, result) { |
- assertEquals({ value: value, done: done}, result); |
-} |
- |
- |
-(function TestGeneratorComputedName() { |
- class C { |
- *['a']() { |
- yield 1; |
- yield 2; |
- } |
- } |
- var iter = new C().a(); |
- assertIteratorResult(1, false, iter.next()); |
- assertIteratorResult(2, false, iter.next()); |
- assertIteratorResult(undefined, true, iter.next()); |
- assertArrayEquals(['a'], Object.keys(C.prototype)); |
-})(); |
- |
- |
-(function TestToNameSideEffects() { |
- var counter = 0; |
- var key1 = { |
- toString: function() { |
- assertEquals(0, counter++); |
- return 'b'; |
- } |
- }; |
- var key2 = { |
- toString: function() { |
- assertEquals(1, counter++); |
- return 'd'; |
- } |
- }; |
- class C { |
- a() { return 'A'; } |
- [key1]() { return 'B'; } |
- c() { return 'C'; } |
- [key2]() { return 'D'; } |
- } |
- assertEquals(2, counter); |
- assertEquals('A', new C().a()); |
- assertEquals('B', new C().b()); |
- assertEquals('C', new C().c()); |
- assertEquals('D', new C().d()); |
- assertArrayEquals(['a', 'b', 'c', 'd'], Object.keys(C.prototype)); |
-})(); |
- |
- |
-(function TestToNameSideEffectsNumbers() { |
- var counter = 0; |
- var key1 = { |
- valueOf: function() { |
- assertEquals(0, counter++); |
- return 1; |
- }, |
- toString: null |
- }; |
- var key2 = { |
- valueOf: function() { |
- assertEquals(1, counter++); |
- return 2; |
- }, |
- toString: null |
- }; |
- |
- class C { |
- a() { return 'A'; } |
- [key1]() { return 'B'; } |
- c() { return 'C'; } |
- [key2]() { return 'D'; } |
- } |
- assertEquals(2, counter); |
- assertEquals('A', new C().a()); |
- assertEquals('B', new C()[1]()); |
- assertEquals('C', new C().c()); |
- assertEquals('D', new C()[2]()); |
- // Array indexes first. |
- assertArrayEquals(['1', '2', 'a', 'c'], Object.keys(C.prototype)); |
-})(); |
- |
- |
-(function TestGetter() { |
- class C { |
- get ['a']() { |
- return 'A'; |
- } |
- } |
- assertEquals('A', new C().a); |
- |
- class C2 { |
- get b() { |
- assertUnreachable(); |
- } |
- get ['b']() { |
- return 'B'; |
- } |
- } |
- assertEquals('B', new C2().b); |
- |
- class C3 { |
- get c() { |
- assertUnreachable(); |
- } |
- get ['c']() { |
- assertUnreachable(); |
- } |
- get ['c']() { |
- return 'C'; |
- } |
- } |
- assertEquals('C', new C3().c); |
- |
- class C4 { |
- get ['d']() { |
- assertUnreachable(); |
- } |
- get d() { |
- return 'D'; |
- } |
- } |
- assertEquals('D', new C4().d); |
-})(); |
- |
- |
-(function TestSetter() { |
- var calls = 0; |
- class C { |
- set ['a'](_) { |
- calls++; |
- } |
- } |
- new C().a = 'A'; |
- assertEquals(1, calls); |
- |
- calls = 0; |
- class C2 { |
- set b(_) { |
- assertUnreachable(); |
- } |
- set ['b'](_) { |
- calls++; |
- } |
- } |
- new C2().b = 'B'; |
- assertEquals(1, calls); |
- |
- calls = 0; |
- class C3 { |
- set c(_) { |
- assertUnreachable() |
- } |
- set ['c'](_) { |
- assertUnreachable() |
- } |
- set ['c'](_) { |
- calls++ |
- } |
- } |
- new C3().c = 'C'; |
- assertEquals(1, calls); |
- |
- calls = 0; |
- class C4 { |
- set ['d'](_) { |
- assertUnreachable() |
- } |
- set d(_) { |
- calls++ |
- } |
- } |
- new C4().d = 'D'; |
- assertEquals(1, calls); |
-})(); |
- |
- |
-(function TestPrototype() { |
- // Normally a static prototype property is not allowed. |
- class C { |
- static ['prototype']() { |
- return 1; |
- } |
- } |
- assertEquals(1, C.prototype()); |
- |
- class C2 { |
- static get ['prototype']() { |
- return 2; |
- } |
- } |
- assertEquals(2, C2.prototype); |
- |
- var calls = 0; |
- class C3 { |
- static set ['prototype'](x) { |
- assertEquals(3, x); |
- calls++; |
- } |
- } |
- C3.prototype = 3; |
- assertEquals(1, calls); |
- |
- class C4 { |
- static *['prototype']() { |
- yield 1; |
- yield 2; |
- } |
- } |
- var iter = C4.prototype(); |
- assertIteratorResult(1, false, iter.next()); |
- assertIteratorResult(2, false, iter.next()); |
- assertIteratorResult(undefined, true, iter.next()); |
-})(); |
- |
- |
-(function TestConstructor() { |
- // Normally a constructor property is not allowed. |
- class C { |
- ['constructor']() { |
- return 1; |
- } |
- } |
- assertTrue(C !== C.prototype.constructor); |
- assertEquals(1, new C().constructor()); |
- |
- class C2 { |
- get ['constructor']() { |
- return 2; |
- } |
- } |
- assertEquals(2, new C2().constructor); |
- |
- var calls = 0; |
- class C3 { |
- set ['constructor'](x) { |
- assertEquals(3, x); |
- calls++; |
- } |
- } |
- new C3().constructor = 3; |
- assertEquals(1, calls); |
- |
- class C4 { |
- *['constructor']() { |
- yield 1; |
- yield 2; |
- } |
- } |
- var iter = new C4().constructor(); |
- assertIteratorResult(1, false, iter.next()); |
- assertIteratorResult(2, false, iter.next()); |
- assertIteratorResult(undefined, true, iter.next()); |
-})(); |