1 // Copyright 2014 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Flags: --allow-natives-syntax 6 7 function assertSame(expected, found) { 8 if (found === expected) { 9 if (expected !== 0 || (1 / expected) == (1 / found)) return; 10 } 11 return; 12 }; 13 14 function foo(x) { 15 return x.bar; 16 } 17 18 function getter1() { 19 assertSame(this, this); 20 } 21 var o1 = Object.defineProperty({}, "bar", { get: getter1 }); 22 foo(o1); 23 foo(o1); 24 25 function getter2() { 26 assertSame(this, this); 27 } 28 var o2 = Object.defineProperty({}, "bar", { get: getter2 }); 29 foo(o2); 30 %OptimizeFunctionOnNextCall(foo); 31 foo(o2); 32