| // Copyright 2015 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Flags: --allow-natives-syntax --turbo-inlining |
| |
| var f1 = (function() { |
| "use asm"; |
| function g() { throw 0; } |
| function f() { return g(); } |
| return f; |
| })(); |
| %PrepareFunctionForOptimization(f1); |
| assertThrows("f1()"); |
| %OptimizeFunctionOnNextCall(f1); |
| assertThrows("f1()"); |
| |
| var f2 = (function() { |
| "use asm"; |
| function g() { for (;;); } |
| function f(a) { return a || g(); } |
| return f; |
| })(); |
| %PrepareFunctionForOptimization(f2); |
| assertTrue(f2(true)); |
| %OptimizeFunctionOnNextCall(f2); |
| assertTrue(f2(true)); |