summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Symbol/surfaces.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/Symbol/surfaces.js')
-rw-r--r--js/src/tests/non262/Symbol/surfaces.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/tests/non262/Symbol/surfaces.js b/js/src/tests/non262/Symbol/surfaces.js
new file mode 100644
index 0000000000..7b3ef9f9b2
--- /dev/null
+++ b/js/src/tests/non262/Symbol/surfaces.js
@@ -0,0 +1,34 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/licenses/publicdomain/ */
+
+// Test superficial properties of the Symbol constructor and prototype.
+
+var desc = Object.getOwnPropertyDescriptor(this, "Symbol");
+assertEq(desc.configurable, true);
+assertEq(desc.enumerable, false);
+assertEq(desc.writable, true);
+assertEq(typeof Symbol, "function");
+assertEq(Symbol.length, 0);
+
+desc = Object.getOwnPropertyDescriptor(Symbol, "prototype");
+assertEq(desc.configurable, false);
+assertEq(desc.enumerable, false);
+assertEq(desc.writable, false);
+
+assertEq(Symbol.prototype.constructor, Symbol);
+desc = Object.getOwnPropertyDescriptor(Symbol.prototype, "constructor");
+assertEq(desc.configurable, true);
+assertEq(desc.enumerable, false);
+assertEq(desc.writable, true);
+
+desc = Object.getOwnPropertyDescriptor(Symbol, "iterator");
+assertEq(desc.configurable, false);
+assertEq(desc.enumerable, false);
+assertEq(desc.writable, false);
+
+assertEq(Symbol.for.length, 1);
+assertEq(Symbol.prototype.toString.length, 0);
+assertEq(Symbol.prototype.valueOf.length, 0);
+
+if (typeof reportCompare === "function")
+ reportCompare(0, 0);