01d228f3cd
When there is no receiver object, plain function calls are a few percent faster than %_Call(). This patch also fixes the HAS_INDEX macro used in a bunch of Array.prototype functions to properly check for elements inherited from prototypes. Review URL: https://codereview.chromium.org/1706213002 Cr-Commit-Position: refs/heads/master@{#34269}
18 lines
470 B
JavaScript
18 lines
470 B
JavaScript
// 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);
|