// 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();