Home | History | Annotate | Download | only in compiler
      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 --use-osr --turbo-osr
      6 
      7 "use strict";
      8 
      9 function foo() {
     10   var result = new Array();
     11   var out;
     12   {
     13     let sum = 0;
     14     for (var i = 0; i < 10; i++) {
     15       {
     16         let x = i;
     17         if (i == 5) %OptimizeOsr();
     18         sum += i;
     19         result.push(function() { return x; });
     20       }
     21     }
     22     out = sum;
     23   }
     24   result.push(out);
     25   return result;
     26 }
     27 
     28 
     29 function check() {
     30   var r = foo();
     31   assertEquals(45, r.pop());
     32   for (var i = 9; i >= 0; i--) {
     33     assertEquals(i, r.pop()());
     34   }
     35   assertEquals(0, r.length);
     36 }
     37 
     38 check();
     39 check();
     40 check();
     41