summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/spread-call-setcall.js
blob: 5a1100b8e94cba31e425e1c217d991c03b899242 (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
25
26
27
28
29
load(libdir + "asserts.js");

function g() {
}

let a = {
  g: function() {
  }
};

function check(expr) {
  assertThrowsInstanceOf(Function(expr), ReferenceError);
}
function checkDestructuring(expr) {
  assertThrowsInstanceOf(() => Function(expr), SyntaxError);
}

check("g(...[]) = 1");
check("a.g(...[]) = 1");
check("eval(...['1']) = 1");
check("g(...[]) ++");
check("a.g(...[]) ++");
check("eval(...['1']) ++");
checkDestructuring("[g(...[])] = []");
checkDestructuring("[a.g(...[])] = []");
checkDestructuring("[eval(...['1'])] = []");
checkDestructuring("({y: g(...[])} = 1)");
checkDestructuring("({y: a.g(...[])} = 1)");
checkDestructuring("({y: eval(...['1'])} = 1)");