blob: 51381684f5eb465ffa1514cd83f8171a48f70d1d (
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
30
31
32
33
34
35
36
|
// Constructing calls should throw if !callee->isInterpretedConstructor().
// This tests the polymorphic call path.
for (var i=0; i<20; i++)
Function.prototype();
var funs = [
function() { return 1; },
function() { return 2; },
function() { return 3; },
function() { return 4; },
function() { return 5; },
function() { return 6; },
function() { return 7; },
function() { return 8; },
function() { return 9; },
function() { return 10; },
Function.prototype
];
function f(callee) {
new callee;
}
function g() {
var c = 0;
for (var i=0; i<50; i++) {
try {
f(funs[i % funs.length]);
} catch (e) {
assertEq(e.message.includes("not a constructor"), true);
c++;
}
}
assertEq(c, 4);
}
g();
|