blob: 0e9baa96d5b59cae41c988319d3921f38d7531f6 [file] [log] [blame]
//@ if isFTLEnabled then runFTLNoCJIT else skip end
let ftlTrue = $vm.ftlTrue;
let didFTLCompile = false;
function key(i) {
return (i & 1) ? new String("foo") : "foo";
}
function stringOrStringObjectToString(i) {
class C {
[key(i)] = i;
}
didFTLCompile = ftlTrue();
let c = new C();
if (c.foo !== i)
throw new Error(`Failed on iteration ${i}\n${JSON.stringify(c)}`);
}
noInline(stringOrStringObjectToString);
let i = 0;
let maxTries = 30000;
for (; i < maxTries && !numberOfDFGCompiles(stringOrStringObjectToString) && !didFTLCompile; ++i) {
optimizeNextInvocation(stringOrStringObjectToString);
stringOrStringObjectToString(i);
}
if (i >= maxTries)
throw new Error("Failed to compile stringOrStringObjectToString with DFG JIT");