summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Object-isClassConstructor.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/debug/Object-isClassConstructor.js')
-rw-r--r--js/src/jit-test/tests/debug/Object-isClassConstructor.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/Object-isClassConstructor.js b/js/src/jit-test/tests/debug/Object-isClassConstructor.js
new file mode 100644
index 0000000000..342e9d1a52
--- /dev/null
+++ b/js/src/jit-test/tests/debug/Object-isClassConstructor.js
@@ -0,0 +1,21 @@
+// Debugger.Object.prototype.isClassConstructor recognizes ES6 classes.
+
+var g = newGlobal({ newCompartment: true });
+var dbg = new Debugger();
+var gDO = dbg.addDebuggee(g);
+var hits = 0;
+
+function checkIsClassConstructor(shouldBe, expr) {
+ print(expr);
+ assertEq(gDO.executeInGlobal(expr).return.isClassConstructor, shouldBe);
+}
+
+checkIsClassConstructor(true, "class MyClass{}; MyClass;");
+checkIsClassConstructor(false, "class MyClass2{}; MyClass2.constructor;");
+checkIsClassConstructor(
+ false,
+ "class MyClass3{}; Object.getPrototypeOf(MyClass3)"
+);
+checkIsClassConstructor(false, "(a) => { bleh; }");
+checkIsClassConstructor(false, "(async function f () {})");
+checkIsClassConstructor(void 0, "({})");