Index: runtime/lib/string.cc |
diff --git a/runtime/lib/string.cc b/runtime/lib/string.cc |
index 9d4137ddea7b33b8e744364a25c29b4883b8d0d0..2eae245fa67c64d4fb35cd6812e0331d766daee6 100644 |
--- a/runtime/lib/string.cc |
+++ b/runtime/lib/string.cc |
@@ -515,7 +515,7 @@ static uint16_t StringValueAt(const String& str, const Integer& index) { |
} |
// An index larger than Smi is always illegal. |
- Exceptions::ThrowRangeError("index", index, 0, str.Length()); |
+ Exceptions::ThrowRangeError("index", index, 0, str.Length() - 1); |
return 0; |
} |
@@ -601,7 +601,7 @@ DEFINE_NATIVE_ENTRY(StringBuffer_createStringFromUint16Array, 3) { |
intptr_t array_length = codeUnits.Length(); |
intptr_t length_value = length.Value(); |
if (length_value < 0 || length_value > array_length) { |
- Exceptions::ThrowRangeError("length", length, 0, array_length + 1); |
+ Exceptions::ThrowRangeError("length", length, 0, array_length); |
} |
const String& result = isLatin1.value() |
? String::Handle(OneByteString::New(length_value, Heap::kNew)) |