}
-Handle<Object> Factory::NewIndexError(uint32_t index) {
- Handle<Object> indexHandle = Handle<Object>(Heap::NumberFromUint32(index));
- return NewRangeError("invalid_array_index",
- HandleVector<Object>(&indexHandle,
- 1));
-}
-
-
Handle<Object> Factory::NewSyntaxError(const char* type, Handle<JSArray> args) {
return NewError("MakeSyntaxError", type, args);
}
int8_t value = array->get(index);
return Smi::FromInt(value);
}
- return Top::Throw(*Factory::NewIndexError(index));
+ break;
}
case EXTERNAL_UNSIGNED_BYTE_ELEMENTS: {
ExternalUnsignedByteArray* array =
uint8_t value = array->get(index);
return Smi::FromInt(value);
}
- return Top::Throw(*Factory::NewIndexError(index));
+ break;
}
case EXTERNAL_SHORT_ELEMENTS: {
ExternalShortArray* array = ExternalShortArray::cast(elements());
int16_t value = array->get(index);
return Smi::FromInt(value);
}
- return Top::Throw(*Factory::NewIndexError(index));
+ break;
}
case EXTERNAL_UNSIGNED_SHORT_ELEMENTS: {
ExternalUnsignedShortArray* array =
uint16_t value = array->get(index);
return Smi::FromInt(value);
}
- return Top::Throw(*Factory::NewIndexError(index));
+ break;
}
case EXTERNAL_INT_ELEMENTS: {
ExternalIntArray* array = ExternalIntArray::cast(elements());
int32_t value = array->get(index);
return Heap::NumberFromInt32(value);
}
- return Top::Throw(*Factory::NewIndexError(index));
+ break;
}
case EXTERNAL_UNSIGNED_INT_ELEMENTS: {
ExternalUnsignedIntArray* array =
uint32_t value = array->get(index);
return Heap::NumberFromUint32(value);
}
- return Top::Throw(*Factory::NewIndexError(index));
+ break;
}
case EXTERNAL_FLOAT_ELEMENTS: {
ExternalFloatArray* array = ExternalFloatArray::cast(elements());
float value = array->get(index);
return Heap::AllocateHeapNumber(value);
}
- return Top::Throw(*Factory::NewIndexError(index));
+ break;
}
case DICTIONARY_ELEMENTS: {
NumberDictionary* dictionary = element_dictionary();
ASSERT(value->IsUndefined());
}
receiver->set(index, cast_value);
- } else {
- return Top::Throw(*Factory::NewIndexError(index));
}
return Heap::NumberFromInt32(cast_value);
}
ASSERT(value->IsUndefined());
}
set(index, cast_value);
- } else {
- return Top::Throw(*Factory::NewIndexError(index));
}
return Heap::NumberFromUint32(cast_value);
}
ASSERT(value->IsUndefined());
}
set(index, cast_value);
- } else {
- return Top::Throw(*Factory::NewIndexError(index));
}
return Heap::AllocateHeapNumber(cast_value);
}
i::Heap::CollectAllGarbage(false); // Force GC to trigger verification.
CHECK_EQ(28, result->Int32Value());
- // Check out-of-range loads.
+ // Make sure out-of-range loads do not throw.
i::OS::SNPrintF(test_buf,
"var caught_exception = false;"
"try {"
"caught_exception;",
kElementCount);
result = CompileRun(test_buf.start());
- CHECK_EQ(true, result->BooleanValue());
+ CHECK_EQ(false, result->BooleanValue());
- // Check out-of-range stores.
+ // Make sure out-of-range stores do not throw.
i::OS::SNPrintF(test_buf,
"var caught_exception = false;"
"try {"
"caught_exception;",
kElementCount);
result = CompileRun(test_buf.start());
- CHECK_EQ(true, result->BooleanValue());
+ CHECK_EQ(false, result->BooleanValue());
// Check other boundary conditions, values and operations.
result = CompileRun("for (var i = 0; i < 8; i++) {"