|  | // 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: --use-osr | 
|  |  | 
|  | function foo() { | 
|  | var sum = 0; | 
|  | for (var i = 0; i < 100000; i++) { | 
|  | sum += i; | 
|  | } | 
|  | return function() { return sum; } | 
|  | } | 
|  |  | 
|  | assertEquals(4999950000, foo()()); | 
|  | assertEquals(4999950000, foo()()); | 
|  | assertEquals(4999950000, foo()()); | 
|  |  | 
|  | function bar() { | 
|  | var sum = 0; | 
|  | var ret = 0; | 
|  | for (var i = 0; i < 90000; i++) { | 
|  | sum += i; | 
|  | if (i == 0) ret = function() { return sum; } | 
|  | } | 
|  | return ret; | 
|  | } | 
|  |  | 
|  | assertEquals(4049955000, bar()()); | 
|  | assertEquals(4049955000, bar()()); | 
|  | assertEquals(4049955000, bar()()); |