1865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org// Copyright 2014 the V8 project authors. All rights reserved.
2865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be
3865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org// found in the LICENSE file.
4865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org
5865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org// Flags: --allow-natives-syntax
6865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org
7865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.orgfunction g() {
8865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org  this.x = {};
9865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org}
10865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org
11865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.orgfunction f() {
12865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org  new g();
13865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org}
14865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org
15865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.orgfunction deopt(x) {
16865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org  %DeoptimizeFunction(f);
17865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org}
18865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org
19865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.orgf();
20865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.orgf();
21865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.org%OptimizeFunctionOnNextCall(f);
22865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.orgObject.prototype.__defineSetter__('x', deopt);
23865f51ff8c94f86f4c97636d70addc0f29e79674machenbach@chromium.orgf();
24