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.
5 // TODO(mstarzinger): Add FLAG_turbo_exceptions once we want ClusterFuzz.
6 // Flags: --allow-natives-syntax --turbo-deoptimization
8 function DeoptFromTry(x) {
10 %DeoptimizeFunction(DeoptFromTry);
17 %OptimizeFunctionOnNextCall(DeoptFromTry);
18 assertEquals(24, DeoptFromTry(23));
21 function DeoptFromCatch(x) {
25 %DeoptimizeFunction(DeoptFromCatch);
30 %OptimizeFunctionOnNextCall(DeoptFromCatch);
31 assertEquals(24, DeoptFromCatch(23));
34 function DeoptFromFinally_Return(x) {
38 %DeoptimizeFunction(DeoptFromFinally_Return);
43 %OptimizeFunctionOnNextCall(DeoptFromFinally_Return);
44 assertEquals(24, DeoptFromFinally_Return(23));
47 function DeoptFromFinally_ReThrow(x) {
51 %DeoptimizeFunction(DeoptFromFinally_ReThrow);
55 %OptimizeFunctionOnNextCall(DeoptFromFinally_ReThrow);
56 assertThrows("DeoptFromFinally_ReThrow(new Error)", Error);