| Index: runtime/lib/array.cc
|
| ===================================================================
|
| --- runtime/lib/array.cc (revision 957)
|
| +++ runtime/lib/array.cc (working copy)
|
| @@ -64,7 +64,14 @@
|
|
|
| DEFINE_NATIVE_ENTRY(ObjectArray_setIndexed, 3) {
|
| const Array& array = Array::CheckedHandle(arguments->At(0));
|
| - const Smi& index = Smi::CheckedHandle(arguments->At(1));
|
| + const Instance& index_instance = Instance::CheckedHandle(arguments->At(1));
|
| + if (!index_instance.IsSmi()) {
|
| + GrowableArray<const Object*> args;
|
| + args.Add(&index_instance);
|
| + Exceptions::ThrowByType(Exceptions::kIllegalArgument, args);
|
| + }
|
| + Smi& index = Smi::Handle();
|
| + index ^= index_instance.raw();
|
| const Instance& value = Instance::CheckedHandle(arguments->At(2));
|
| if (array.IsNull() || index.IsNull()) {
|
| // TODO(asiva): Need to handle error cases.
|
|
|