diff --git a/src/interpreter/bytecodes.cc b/src/interpreter/bytecodes.cc index 62adec14aa..3be109f4cb 100644 --- a/src/interpreter/bytecodes.cc +++ b/src/interpreter/bytecodes.cc @@ -724,7 +724,7 @@ OperandSize Register::SizeOfOperand() const { int32_t operand = ToOperand(); if (operand >= kMinInt8 && operand <= kMaxInt8) { return OperandSize::kByte; - } else if (index_ >= kMinInt16 && index_ <= kMaxInt16) { + } else if (operand >= kMinInt16 && operand <= kMaxInt16) { return OperandSize::kShort; } else { return OperandSize::kQuad; diff --git a/test/mjsunit/regress/regress-605470.js b/test/mjsunit/regress/regress-605470.js new file mode 100644 index 0000000000..722e8ae130 --- /dev/null +++ b/test/mjsunit/regress/regress-605470.js @@ -0,0 +1,17 @@ +// 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. + +// Flags: --ignition + +function function_with_m_args(m) { + var source = '(function f() { return; })('; + for (var arg = 0; arg < m ; arg++) { + if (arg != 0) source += ','; + source += arg; + } + source += ')'; + return eval(source); +} + +function_with_m_args(0x7FFF);