summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/regress/regress-776309.js
blob: 98a38c05e59e40f5cf80ec01496b3fc35f6ae845 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --allow-natives-syntax

function C() { }

function f(b) {
  var o = new C();
  // Create out-of-object properties only on one branch so that escape
  // analysis does not analyze the property array away.
  if (b) o.t = 1.1;
  %_DeoptimizeNow();
  return o.t;
}

// Finish slack tracking for C.
for (var i = 0; i < 1000; i++) new C();

f(true);
f(true);
f(false);

%OptimizeFunctionOnNextCall(f);

assertEquals(1.1, f(true));