| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 6377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6388 MapHandleList transition_target(maps->length()); | 6388 MapHandleList transition_target(maps->length()); |
| 6389 // Collect possible transition targets. | 6389 // Collect possible transition targets. |
| 6390 MapHandleList possible_transitioned_maps(maps->length()); | 6390 MapHandleList possible_transitioned_maps(maps->length()); |
| 6391 for (int i = 0; i < maps->length(); ++i) { | 6391 for (int i = 0; i < maps->length(); ++i) { |
| 6392 Handle<Map> map = maps->at(i); | 6392 Handle<Map> map = maps->at(i); |
| 6393 ElementsKind elements_kind = map->elements_kind(); | 6393 ElementsKind elements_kind = map->elements_kind(); |
| 6394 if (IsFastElementsKind(elements_kind) && | 6394 if (IsFastElementsKind(elements_kind) && |
| 6395 elements_kind != GetInitialFastElementsKind()) { | 6395 elements_kind != GetInitialFastElementsKind()) { |
| 6396 possible_transitioned_maps.Add(map); | 6396 possible_transitioned_maps.Add(map); |
| 6397 } | 6397 } |
| 6398 if (elements_kind == SLOPPY_ARGUMENTS_ELEMENTS) { |
| 6399 HInstruction* result = BuildKeyedGeneric(access_type, object, key, val); |
| 6400 *has_side_effects = result->HasObservableSideEffects(); |
| 6401 return AddInstruction(result); |
| 6402 } |
| 6398 } | 6403 } |
| 6399 // Get transition target for each map (NULL == no transition). | 6404 // Get transition target for each map (NULL == no transition). |
| 6400 for (int i = 0; i < maps->length(); ++i) { | 6405 for (int i = 0; i < maps->length(); ++i) { |
| 6401 Handle<Map> map = maps->at(i); | 6406 Handle<Map> map = maps->at(i); |
| 6402 Handle<Map> transitioned_map = | 6407 Handle<Map> transitioned_map = |
| 6403 map->FindTransitionedMap(&possible_transitioned_maps); | 6408 map->FindTransitionedMap(&possible_transitioned_maps); |
| 6404 transition_target.Add(transitioned_map); | 6409 transition_target.Add(transitioned_map); |
| 6405 } | 6410 } |
| 6406 | 6411 |
| 6407 MapHandleList untransitionable_maps(maps->length()); | 6412 MapHandleList untransitionable_maps(maps->length()); |
| (...skipping 4893 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11301 if (ShouldProduceTraceOutput()) { | 11306 if (ShouldProduceTraceOutput()) { |
| 11302 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 11307 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 11303 } | 11308 } |
| 11304 | 11309 |
| 11305 #ifdef DEBUG | 11310 #ifdef DEBUG |
| 11306 graph_->Verify(false); // No full verify. | 11311 graph_->Verify(false); // No full verify. |
| 11307 #endif | 11312 #endif |
| 11308 } | 11313 } |
| 11309 | 11314 |
| 11310 } } // namespace v8::internal | 11315 } } // namespace v8::internal |
| OLD | NEW |