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