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: --use-osr --turbo-osr 6 7 function foo() { 8 var sum = 0; 9 for (var i = 0; i < 100000; i++) { 10 sum += i; 11 } 12 return function() { return sum; } 13 } 14 15 assertEquals(4999950000, foo()()); 16 assertEquals(4999950000, foo()()); 17 assertEquals(4999950000, foo()()); 18 19 function bar() { 20 var sum = 0; 21 var ret = 0; 22 for (var i = 0; i < 90000; i++) { 23 sum += i; 24 if (i == 0) ret = function() { return sum; } 25 } 26 return ret; 27 } 28 29 assertEquals(4049955000, bar()()); 30 assertEquals(4049955000, bar()()); 31 assertEquals(4049955000, bar()()); 32