• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
7function f(a) {
8  var sum = 0;
9  for (var i of a) {
10    var x = i + 2;
11    var y = x + 5;
12    var z = y + 3;
13    sum += z;
14  }
15  return sum;
16}
17
18var a = new Array(10000);
19for (var i = 0; i < 10000; i++) {
20  a[i] = (i * 999) % 77;
21}
22
23for (var i = 0; i < 3; i++) {
24  assertEquals(480270, f(wrap(a)));
25}
26
27function wrap(array) {
28  var iterable = {};
29  var i = 0;
30  function next() {
31    return { done: i >= array.length, value: array[i++] };
32  };
33  iterable[Symbol.iterator] = function() { return { next:next }; };
34  return iterable;
35}
36