blob: 1ceb6d9095c19ba9420ab13832d2243fbeaea384 [file] [log] [blame]
// 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();