Home | History | Annotate | Download | only in regress
      1 // Copyright 2016 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 --harmony-tailcalls
      6 
      7 function h() {
      8   var res = g.arguments;
      9   return res;
     10 }
     11 
     12 function g(o) {
     13   var res = h();
     14   return res;
     15 }
     16 
     17 function f1() {
     18   var o = { x : 42 };
     19   var res = g(o);
     20   return 1;
     21 }
     22 
     23 function f0(a, b)  {
     24   "use strict";
     25   return f1(5);
     26 }
     27 
     28 function boom(b) {
     29   if (b) throw new Error("boom!");
     30 }
     31 
     32 %NeverOptimizeFunction(h);
     33 f0();
     34 f0();
     35 %OptimizeFunctionOnNextCall(f0);
     36 
     37 boom(false);
     38 boom(false);
     39 %OptimizeFunctionOnNextCall(boom);
     40 
     41 try {
     42   f0(1, 2, 3);
     43   boom(true, 1, 2, 3);
     44 } catch (e) {
     45 }
     46