summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Object-isArrowFunction.js
blob: 6d7bd531b60111cde6681063c499b9aa9c66816b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Debugger.Object.prototype.isArrowFunction recognizes arrow functions.

var g = newGlobal({newCompartment: true});
var dbg = new Debugger;
var gDO = dbg.addDebuggee(g);
var hits = 0;

function checkIsArrow(shouldBe, expr) {
  print(expr);
  assertEq(gDO.executeInGlobal(expr).return.isArrowFunction, shouldBe);
}

checkIsArrow(true, '() => { }');
checkIsArrow(true, '(a) => { bleh; }');
checkIsArrow(false, 'Object.getPrototypeOf(() => { })');
checkIsArrow(false, '(function () { })');
checkIsArrow(false, 'function f() { } f');
checkIsArrow((void 0), '({})');
checkIsArrow(false, 'Math.atan2');
checkIsArrow(false, 'Function.prototype');
checkIsArrow(false, 'Function("")');
checkIsArrow(false, 'new Function("")');
checkIsArrow(false, '(async function f () {})');
checkIsArrow(true,  '(async () => { })');