mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 22:40:28 +02:00
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
|
|
class A {
|
|
constructor() { }
|
|
}
|
|
|
|
class B extends A {
|
|
constructor(iterationCount) {
|
|
let values = [];
|
|
|
|
for (let i = 2; i < iterationCount; ++i) {
|
|
// Let's keep the loop busy.
|
|
let divided = false;
|
|
for (let j = i - 1; j > 1; --j) {
|
|
if (!(i % j)) {
|
|
divided = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!divided)
|
|
values.push(i);
|
|
|
|
if (!(i % (iterationCount - 2)))
|
|
print(this);
|
|
else if (values.length == iterationCount)
|
|
super(values);
|
|
}
|
|
}
|
|
}
|
|
|
|
noInline(B);
|
|
|
|
// Small warm up with small iteration count. Try to get to DFG.
|
|
for (var i = 0; i < 30; ++i) {
|
|
var exception = null;
|
|
try {
|
|
new B(10);
|
|
} catch (e) {
|
|
exception = e;
|
|
if (!(e instanceof ReferenceError))
|
|
throw "Exception thrown in iteration " + i + " was not a reference error";
|
|
}
|
|
if (!exception)
|
|
throw "Exception not thrown for an unitialized this at iteration " + i;
|
|
}
|
|
|
|
// Now try to go to FTL in the constructor.
|
|
for (var i = 0; i < 2; ++i) {
|
|
var exception = null;
|
|
try {
|
|
new B(7e3);
|
|
} catch (e) {
|
|
exception = e;
|
|
if (!(e instanceof ReferenceError))
|
|
throw "Exception thrown in iteration " + i + " was not a reference error";
|
|
}
|
|
if (!exception)
|
|
throw "Exception not thrown for an unitialized this at iteration " + i;
|
|
}
|