Commit f10b992d authored by jkummerow's avatar jkummerow Committed by Commit bot

Let Runtime_GrowArrayElements accept non-Smi numbers as |key|.

BUG=chromium:485410
LOG=y
R=mvstanton@chromium.org,danno@chromium.org

Review URL: https://codereview.chromium.org/1132113004

Cr-Commit-Position: refs/heads/master@{#28327}
parent f06534b9
...@@ -1223,7 +1223,7 @@ RUNTIME_FUNCTION(Runtime_GrowArrayElements) { ...@@ -1223,7 +1223,7 @@ RUNTIME_FUNCTION(Runtime_GrowArrayElements) {
HandleScope scope(isolate); HandleScope scope(isolate);
DCHECK(args.length() == 3); DCHECK(args.length() == 3);
CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
CONVERT_SMI_ARG_CHECKED(key, 1); CONVERT_NUMBER_CHECKED(int, key, Int32, args[1]);
if (key < 0) { if (key < 0) {
return object->elements(); return object->elements();
......
// 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: --allow-natives-syntax
var doubles = new Float64Array(1);
function ToHeapNumber(i) {
doubles[0] = i;
return doubles[0];
}
for (var i = 0; i < 3; i++) ToHeapNumber(i);
%OptimizeFunctionOnNextCall(ToHeapNumber);
assertFalse(%IsSmi(ToHeapNumber(1)));
function Fail(a, i, v) {
a[i] = v;
}
for (var i = 0; i < 3; i++) Fail(new Array(1), 1, i);
%OptimizeFunctionOnNextCall(Fail);
// 1050 > JSObject::kMaxGap, causing stub failure and runtime call.
Fail(new Array(1), ToHeapNumber(1050), 3);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment