summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/bug754150.js
blob: c66c16dbc36a5b6fe3b1c4989eaba61ea60e6486 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
// |jit-test| error: TypeError;

// String.prototype.replace takes too long time with gczeal(4) if
// --no-baseline --no-ion options.
if (typeof inJit == "function" && typeof inJit() == "string") {
  assertEq(inJit(), "Baseline is disabled.");
  // This test expects TypeError.
  toPrinted(null);
}

function printStatus (msg) {}
function toPrinted(value) {
  value = value.replace(/\\n/g, 'NL')
}
function reportCompare (expected, actual, description) {
    printStatus ("Expected value '" + toPrinted(expected) +  "' matched actual value '" + toPrinted(actual) + "'");
}
var UBound = 0;
var statusitems = [];
var actual = '';
var actualvalues = [];
var expect= '';
var expectedvalues = [];
testThis('x()');
testThis('"abc"()');
testThis('x()');
testThis('Date(12345)()');
testThis('x()');
testThis('1()');
testThis('x()');
testThis('void(0)()');
testThis('x()');
testThis('[1,2,3,4,5](1)');
gczeal(4);
testThis('x(1)');
checkThis('(function (y) {return y+1;})("abc")');
checkThis('f("abc")');
function testThis(sInvalidSyntax) {
  expectedvalues[UBound] = expect;
  actualvalues[UBound] = actual;
  UBound++;
}
function checkThis(sValidSyntax) {
  for (var i=0; i<UBound; i++)
    reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
}
var actualvalues = [];
for (var i=0; i<UBound; i++)
  reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);