@@ -197,16 +197,12 @@ inline bool ClampedToInteger(Object* object, int* out) {
197197
198198inline bool GetSloppyArgumentsLength (Isolate* isolate, Handle<JSObject> object,
199199 int * out) {
200- Map* arguments_map =
201- isolate->context ()->native_context ()->sloppy_arguments_map ();
202- if (object->map () != arguments_map || !object->HasFastElements ()) {
203- return false ;
204- }
200+ Map* arguments_map = isolate->native_context ()->sloppy_arguments_map ();
201+ if (object->map () != arguments_map) return false ;
202+ DCHECK (object->HasFastElements ());
205203 Object* len_obj = object->InObjectPropertyAt (Heap::kArgumentsLengthIndex );
206- if (!len_obj->IsSmi ()) {
207- return false ;
208- }
209- *out = Smi::cast (len_obj)->value ();
204+ if (!len_obj->IsSmi ()) return false ;
205+ *out = Max (0 , Smi::cast (len_obj)->value ());
210206 return *out <= object->elements ()->length ();
211207}
212208
@@ -993,11 +989,11 @@ bool IterateElements(Isolate* isolate, Handle<JSObject> receiver,
993989 uint32_t length = 0 ;
994990
995991 if (receiver->IsJSArray ()) {
996- Handle<JSArray> array ( Handle<JSArray>::cast (receiver) );
992+ Handle<JSArray> array = Handle<JSArray>::cast (receiver);
997993 length = static_cast <uint32_t >(array->length ()->Number ());
998994 } else {
999995 Handle<Object> val;
1000- Handle<Object> key ( isolate->heap ()->length_string (), isolate );
996+ Handle<Object> key = isolate->factory ()->length_string ();
1001997 ASSIGN_RETURN_ON_EXCEPTION_VALUE (
1002998 isolate, val, Runtime::GetObjectProperty (isolate, receiver, key),
1003999 false );
0 commit comments