test262/implementation-contributed/javascriptcore/stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check-new.js
test262-automation e9a5a7f918 [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) (#1620)
* [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)
2018-07-03 15:59:58 -04:00

43 lines
819 B
JavaScript

function foo(o) {
return o.f;
}
function bar(o) {
return o.g;
}
function baz(o, p, q) {
var result = 0;
if (isFinalTier()) {
p = o;
q = o;
result += 10000;
}
result += foo(p);
result += bar(q);
return result;
}
noInline(baz);
for (var i = 0; i < 100000; ++i) {
var o, p, q;
var expected1;
var expected2;
o = {f:100, g:101};
expected2 = 10000 + 100 + 101;
if (i & 1) {
p = {e:1, f:2, g:3};
q = {e:4, f:5, g:6};
expected1 = 2 + 6;
} else {
p = {f:7, g:8};
q = {g:9, f:10};
expected1 = 7 + 9;
}
var result = baz(o, p, q);
if (result != expected1 && result != expected2)
throw "Error: bad result: " + result + " (expected " + expected1 + " or " + expected2 + ")";
}