summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/Symbol/species
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/Symbol/species')
-rw-r--r--js/src/tests/test262/built-ins/Symbol/species/basic.js21
-rw-r--r--js/src/tests/test262/built-ins/Symbol/species/browser.js0
-rw-r--r--js/src/tests/test262/built-ins/Symbol/species/builtin-getter-name.js24
-rw-r--r--js/src/tests/test262/built-ins/Symbol/species/cross-realm.js16
-rw-r--r--js/src/tests/test262/built-ins/Symbol/species/shell.js0
-rw-r--r--js/src/tests/test262/built-ins/Symbol/species/subclassing.js16
6 files changed, 77 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Symbol/species/basic.js b/js/src/tests/test262/built-ins/Symbol/species/basic.js
new file mode 100644
index 0000000000..cb6e400e02
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Symbol/species/basic.js
@@ -0,0 +1,21 @@
+// Copyright 2015 Cubane Canada, Inc. All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: |
+ Symbol.species is a well-known symbol
+es6id: 19.4.2.10
+author: Sam Mikes
+description: Symbol.species exists
+includes: [propertyHelper.js]
+features: [Symbol.species]
+---*/
+
+assert(Symbol !== undefined, "Symbol exists");
+assert(Symbol.species !== undefined, "Symbol.species exists");
+
+verifyNotWritable(Symbol, "species");
+verifyNotEnumerable(Symbol, "species");
+verifyNotConfigurable(Symbol, "species");
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/Symbol/species/browser.js b/js/src/tests/test262/built-ins/Symbol/species/browser.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Symbol/species/browser.js
diff --git a/js/src/tests/test262/built-ins/Symbol/species/builtin-getter-name.js b/js/src/tests/test262/built-ins/Symbol/species/builtin-getter-name.js
new file mode 100644
index 0000000000..265aea7850
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Symbol/species/builtin-getter-name.js
@@ -0,0 +1,24 @@
+// Copyright 2015 Cubane Canada, Inc. All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: |
+ ES6 spec 'get [Symbol.species]'
+es6id: 21.2.4.2, 22.1.2.5, 22.2.2.4, 23.1.2.2, 23.2.2.2
+author: Sam Mikes
+description: Symbol.species getters have defined names
+features: [Symbol.species]
+---*/
+
+function getGetterName(obj, name) {
+ var getter = Object.getOwnPropertyDescriptor(obj, Symbol.species).get;
+ return getter && getter.name;
+}
+
+assert.sameValue(getGetterName(Array, Symbol.species), "get [Symbol.species]");
+assert.sameValue(getGetterName(Map, Symbol.species), "get [Symbol.species]");
+assert.sameValue(getGetterName(Promise, Symbol.species), "get [Symbol.species]");
+assert.sameValue(getGetterName(RegExp, Symbol.species), "get [Symbol.species]");
+assert.sameValue(getGetterName(Set, Symbol.species), "get [Symbol.species]");
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/Symbol/species/cross-realm.js b/js/src/tests/test262/built-ins/Symbol/species/cross-realm.js
new file mode 100644
index 0000000000..631047c91a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Symbol/species/cross-realm.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-symbol.species
+description: Value shared by all realms
+info: |
+ Unless otherwise specified, well-known symbols values are shared by all
+ realms.
+features: [cross-realm, Symbol.species]
+---*/
+
+var OSymbol = $262.createRealm().global.Symbol;
+
+assert.sameValue(Symbol.species, OSymbol.species);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/Symbol/species/shell.js b/js/src/tests/test262/built-ins/Symbol/species/shell.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Symbol/species/shell.js
diff --git a/js/src/tests/test262/built-ins/Symbol/species/subclassing.js b/js/src/tests/test262/built-ins/Symbol/species/subclassing.js
new file mode 100644
index 0000000000..45aceb514d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Symbol/species/subclassing.js
@@ -0,0 +1,16 @@
+// Copyright 2015 Cubane Canada, Inc. All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: |
+ Symbol.species is retained on subclassing
+author: Sam Mikes
+description: Symbol.species is retained on subclassing
+features: [Symbol.species]
+---*/
+
+class MyRegExp extends RegExp {};
+
+assert.sameValue(MyRegExp[Symbol.species], MyRegExp);
+
+reportCompare(0, 0);