// Copyright 2016 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.

var a = [20, 21, 22, 23];
a.__proto__ = [10, 11, 12, 13];

var values = [];
var indices = [];
function callback(value, index, object) {
  object.length = 2;
  values.push(value);
  indices.push(index);
}
a.forEach(callback);
assertEquals([20, 21, 12, 13], values);
assertEquals([0, 1, 2, 3], indices);