• 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 --turbo-osr
6
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);
52