summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/harness/isConstructor.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/harness/isConstructor.js')
-rw-r--r--js/src/tests/test262/harness/isConstructor.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/tests/test262/harness/isConstructor.js b/js/src/tests/test262/harness/isConstructor.js
new file mode 100644
index 0000000000..845750e270
--- /dev/null
+++ b/js/src/tests/test262/harness/isConstructor.js
@@ -0,0 +1,34 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: >
+ Including isConstructor.js will expose one function:
+
+ isConstructor
+
+includes: [isConstructor.js]
+features: [generators, Reflect.construct]
+---*/
+
+assert.sameValue(typeof isConstructor, "function");
+
+assert.throws(Test262Error, () => isConstructor(), "no argument");
+assert.throws(Test262Error, () => isConstructor(undefined), "undefined");
+assert.throws(Test262Error, () => isConstructor(null), "null");
+assert.throws(Test262Error, () => isConstructor(123), "number");
+assert.throws(Test262Error, () => isConstructor(true), "boolean - true");
+assert.throws(Test262Error, () => isConstructor(false), "boolean - false");
+assert.throws(Test262Error, () => isConstructor("string"), "string");
+
+assert.throws(Test262Error, () => isConstructor({}), "Object instance");
+assert.throws(Test262Error, () => isConstructor([]), "Array instance");
+
+assert.sameValue(isConstructor(function(){}), true);
+assert.sameValue(isConstructor(function*(){}), false);
+assert.sameValue(isConstructor(() => {}), false);
+
+assert.sameValue(isConstructor(Array), true);
+assert.sameValue(isConstructor(Array.prototype.map), false);
+
+reportCompare(0, 0);