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
7function assertSame(expected, found) {
8  if (found === expected) {
9    if (expected !== 0 || (1 / expected) == (1 / found)) return;
10  }
11  return;
12};
13
14function foo(x) {
15  return x.bar;
16}
17
18function getter1() {
19  assertSame(this, this);
20}
21var o1 = Object.defineProperty({}, "bar", { get: getter1 });
22foo(o1);
23foo(o1);
24
25function getter2() {
26  assertSame(this, this);
27}
28var o2 = Object.defineProperty({}, "bar", { get: getter2 });
29foo(o2);
30%OptimizeFunctionOnNextCall(foo);
31foo(o2);
32