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