summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/computed-property-names/class/method
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/computed-property-names/class/method')
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/browser.js0
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-generator.js12
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-getter.js12
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-setter.js12
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-1.js13
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-2.js13
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-3.js13
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/constructor.js19
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/generator.js25
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/number.js32
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/shell.js0
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/string.js30
-rw-r--r--js/src/tests/test262/language/computed-property-names/class/method/symbol.js37
13 files changed, 218 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/browser.js b/js/src/tests/test262/language/computed-property-names/class/method/browser.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/browser.js
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-generator.js b/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-generator.js
new file mode 100644
index 0000000000..61e2a36607
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-generator.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 14.5.3
+description: >
+ computed property generator method names can be called "constructor"
+---*/
+class C4 {
+ *['constructor']() {}
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-getter.js b/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-getter.js
new file mode 100644
index 0000000000..aab8a295a8
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-getter.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 14.5.3
+description: >
+ computed property getter names can be called "constructor"
+---*/
+class C4 {
+ get ['constructor']() {}
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-setter.js b/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-setter.js
new file mode 100644
index 0000000000..a44fd56306
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/constructor-can-be-setter.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 14.5.3
+description: >
+ computed property setter names can be called "constructor"
+---*/
+class C4 {
+ set ['constructor'](_) {}
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-1.js b/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-1.js
new file mode 100644
index 0000000000..7e35a35658
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-1.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property names can be "constructor"
+---*/
+class C {
+ constructor() {}
+ ['constructor']() {}
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-2.js b/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-2.js
new file mode 100644
index 0000000000..9974c81deb
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-2.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property names can be "constructor"
+---*/
+class C {
+ ['constructor']() {}
+ constructor() {}
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-3.js b/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-3.js
new file mode 100644
index 0000000000..48db7a2bdc
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/constructor-duplicate-3.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property names can be "constructor"
+---*/
+class C {
+ ['constructor']() {}
+ ['constructor']() {}
+}
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/constructor.js b/js/src/tests/test262/language/computed-property-names/class/method/constructor.js
new file mode 100644
index 0000000000..7b45364ff3
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/constructor.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property names can be "constructor"
+---*/
+class C {
+ ['constructor']() {
+ return 1;
+ }
+}
+assert(
+ C !== C.prototype.constructor,
+ "The result of `C !== C.prototype.constructor` is `true`"
+);
+assert.sameValue(new C().constructor(), 1, "`new C().constructor()` returns `1`");
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/generator.js b/js/src/tests/test262/language/computed-property-names/class/method/generator.js
new file mode 100644
index 0000000000..cfd471bc8c
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/generator.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property names can be used as the name of a generator method in a class
+includes: [compareArray.js]
+---*/
+class C {
+ *['a']() {
+ yield 1;
+ yield 2;
+ }
+}
+assert.sameValue(
+ Object.keys(C.prototype).length,
+ 0,
+ "The value of `Object.keys(C.prototype).length` is `0`"
+);
+assert.compareArray(
+ Object.getOwnPropertyNames(C.prototype),
+ ['constructor', 'a']
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/number.js b/js/src/tests/test262/language/computed-property-names/class/method/number.js
new file mode 100644
index 0000000000..e9ee5e12bc
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/number.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property class method names can be a number
+includes: [compareArray.js]
+---*/
+
+function ID(x) {
+ return x;
+}
+
+class C {
+ a() { return 'A'; }
+ [1]() { return 'B'; }
+ c() { return 'C'; }
+ [ID(2)]() { return 'D'; }
+}
+assert.sameValue(new C().a(), 'A', "`new C().a()` returns `'A'`, from `a() { return 'A'; }`");
+assert.sameValue(new C()[1](), 'B', "`new C()[1]()` returns `'B'`, from `[1]() { return 'B'; }`");
+assert.sameValue(new C().c(), 'C', "`new C().c()` returns `'C'`, from `c() { return 'C'; }`");
+assert.sameValue(new C()[2](), 'D', "`new C()[2]()` returns `'D'`, from `[ID(2)]() { return 'D'; }`");
+
+assert.sameValue(Object.keys(C.prototype).length, 0, "No enum keys from C.prototype");
+
+assert.compareArray(
+ Object.getOwnPropertyNames(C.prototype),
+ ['1', '2', 'constructor', 'a', 'c']
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/shell.js b/js/src/tests/test262/language/computed-property-names/class/method/shell.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/shell.js
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/string.js b/js/src/tests/test262/language/computed-property-names/class/method/string.js
new file mode 100644
index 0000000000..c152bc6c03
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/string.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property class method names can be a string
+includes: [compareArray.js]
+---*/
+
+function ID(x) {
+ return x;
+}
+
+class C {
+ a() { return 'A'}
+ ['b']() { return 'B'; }
+ c() { return 'C'; }
+ [ID('d')]() { return 'D'; }
+}
+assert.sameValue(new C().a(), 'A', "`new C().a()` returns `'A'`. Defined as `a() { return 'A'}`");
+assert.sameValue(new C().b(), 'B', "`new C().b()` returns `'B'`. Defined as `['b']() { return 'B'; }`");
+assert.sameValue(new C().c(), 'C', "`new C().c()` returns `'C'`. Defined as `c() { return 'C'; }`");
+assert.sameValue(new C().d(), 'D', "`new C().d()` returns `'D'`. Defined as `[ID('d')]() { return 'D'; }`");
+assert.sameValue(Object.keys(C.prototype).length, 0, "No enum keys from C.prototype");
+assert.compareArray(
+ Object.getOwnPropertyNames(C.prototype),
+ ['constructor', 'a', 'b', 'c', 'd']
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/computed-property-names/class/method/symbol.js b/js/src/tests/test262/language/computed-property-names/class/method/symbol.js
new file mode 100644
index 0000000000..07bac0c9cd
--- /dev/null
+++ b/js/src/tests/test262/language/computed-property-names/class/method/symbol.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2014 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+es6id: 12.2.5
+description: >
+ computed property class method names can be a symbol
+includes: [compareArray.js]
+features: [Symbol]
+---*/
+
+function ID(x) {
+ return x;
+}
+
+var sym1 = Symbol();
+var sym2 = Symbol();
+class C {
+ a() { return 'A'; }
+ [sym1]() { return 'B'; }
+ c() { return 'C'; }
+ [ID(sym2)]() { return 'D'; }
+}
+assert.sameValue(new C().a(), 'A', "`new C().a()` returns `'A'`. Defined as `a() { return 'A'; }`");
+assert.sameValue(new C()[sym1](), 'B', "`new C()[sym1]()` returns `'B'`. Defined as `[sym1]() { return 'B'; }`");
+assert.sameValue(new C().c(), 'C', "`new C().c()` returns `'C'`. Defined as `c() { return 'C'; }`");
+assert.sameValue(new C()[sym2](), 'D', "`new C()[sym2]()` returns `'D'`. Defined as `[ID(sym2)]() { return 'D'; }`");
+assert.sameValue(Object.keys(C.prototype).length, 0, "No enum keys from C.prototype");
+assert.compareArray(
+ Object.getOwnPropertyNames(C.prototype),
+ ['constructor', 'a', 'c']
+);
+assert.compareArray(
+ Object.getOwnPropertySymbols(C.prototype),
+ [sym1, sym2]
+);
+
+reportCompare(0, 0);