• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2015 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
7var shouldThrow = false;
8
9function h() {
10  try {  // Prevent inlining in Crankshaft.
11  } catch(e) { }
12  var res = g.arguments[0].x;
13  if (shouldThrow) {
14    throw res;
15  }
16  return res;
17}
18
19function g(o) { h(); }
20
21function f1() {
22  var o = { x : 1 };
23  g(o);
24  return o.x;
25}
26
27function f2() {
28  var o = { x : 2 };
29  g(o);
30  return o.x;
31}
32
33f1();
34f2();
35f1();
36f2();
37%OptimizeFunctionOnNextCall(f1);
38%OptimizeFunctionOnNextCall(f2);
39shouldThrow = true;
40try { f1(); } catch(e) {
41  assertEquals(e, 1);
42}
43try { f2(); } catch(e) {
44  assertEquals(e, 2);
45}
46