blob: c0ef27add3cf37b301861ada44015e235bd0be8a [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
Ben Murdochc5610432016-08-08 18:44:38 +01005// Flags: --allow-natives-syntax
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00006
7function OSRInsideTry(x) {
8 try {
9 for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
10 throw x;
11 } catch (e) {
12 return e + 1;
13 }
14 return x + 2;
15}
16assertEquals(24, OSRInsideTry(23));
17
18
19function OSRInsideCatch(x) {
20 try {
21 throw x;
22 } catch (e) {
23 for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
24 return e + 1;
25 }
26 return x + 2;
27}
28assertEquals(24, OSRInsideCatch(23));
29
30
31function OSRInsideFinally_Return(x) {
32 try {
33 throw x;
34 } finally {
35 for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
36 return x + 1;
37 }
38 return x + 2;
39}
40assertEquals(24, OSRInsideFinally_Return(23));
41
42
43function OSRInsideFinally_ReThrow(x) {
44 try {
45 throw x;
46 } finally {
47 for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
48 }
49 return x + 2;
50}
51assertThrows("OSRInsideFinally_ReThrow(new Error)", Error);