blob: 6dbc4bdadd3c2511f4cf0da877844a6b76fa8ae7 [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// 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}