mirror of
https://github.com/tc39/test262.git
synced 2025-09-19 08:08:00 +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)
36 lines
913 B
JavaScript
36 lines
913 B
JavaScript
// Verify that DFG TryGetById nodes properly save live registers. This test should not crash.
|
|
|
|
var createBuiltin = $vm.createBuiltin;
|
|
|
|
function tryMultipleGetByIds() { return '(function (base) { return @tryGetById(base, "value1") + @tryGetById(base, "value2") + @tryGetById(base, "value3"); })'; }
|
|
|
|
|
|
let get = createBuiltin(tryMultipleGetByIds());
|
|
noInline(get);
|
|
|
|
function test() {
|
|
let obj1 = {
|
|
value1: "Testing, ",
|
|
value2: "testing, ",
|
|
value3: "123",
|
|
expected: "Testing, testing, 123"
|
|
};
|
|
let obj2 = {
|
|
extraFieldToMakeThisObjectDifferentThanObj1: 42,
|
|
value1: 20,
|
|
value2: 10,
|
|
value3: 12,
|
|
expected: 42
|
|
};
|
|
|
|
let objects = [obj1, obj2];
|
|
|
|
for (let i = 0; i < 200000; i++) {
|
|
let obj = objects[i % 2];
|
|
if (get(obj) !== obj.expected)
|
|
throw new Error("wrong on iteration: " + i);
|
|
}
|
|
}
|
|
|
|
test();
|