| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "hydrogen.h" | 5 #include "hydrogen.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "v8.h" | 9 #include "v8.h" |
| 10 #include "allocation-site-scopes.h" | 10 #include "allocation-site-scopes.h" |
| (...skipping 7916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7927 | 7927 |
| 7928 if (!ast_context()->IsEffect()) Push(new_size); | 7928 if (!ast_context()->IsEffect()) Push(new_size); |
| 7929 Add<HSimulate>(expr->id(), REMOVABLE_SIMULATE); | 7929 Add<HSimulate>(expr->id(), REMOVABLE_SIMULATE); |
| 7930 if (!ast_context()->IsEffect()) Drop(1); | 7930 if (!ast_context()->IsEffect()) Drop(1); |
| 7931 } | 7931 } |
| 7932 | 7932 |
| 7933 ast_context()->ReturnValue(new_size); | 7933 ast_context()->ReturnValue(new_size); |
| 7934 return true; | 7934 return true; |
| 7935 } | 7935 } |
| 7936 case kArrayShift: { | 7936 case kArrayShift: { |
| 7937 // Something in here seems to be causing crbug.com/374838. |
| 7938 // TODO(bmeurer): Investigate the problem and re-enable this code. |
| 7939 return false; |
| 7940 |
| 7937 if (receiver_map.is_null()) return false; | 7941 if (receiver_map.is_null()) return false; |
| 7938 if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false; | 7942 if (receiver_map->instance_type() != JS_ARRAY_TYPE) return false; |
| 7939 ElementsKind kind = receiver_map->elements_kind(); | 7943 ElementsKind kind = receiver_map->elements_kind(); |
| 7940 if (!IsFastElementsKind(kind)) return false; | 7944 if (!IsFastElementsKind(kind)) return false; |
| 7941 if (receiver_map->is_observed()) return false; | 7945 if (receiver_map->is_observed()) return false; |
| 7942 ASSERT(receiver_map->is_extensible()); | 7946 ASSERT(receiver_map->is_extensible()); |
| 7943 | 7947 |
| 7944 // If there may be elements accessors in the prototype chain, the fast | 7948 // If there may be elements accessors in the prototype chain, the fast |
| 7945 // inlined version can't be used. | 7949 // inlined version can't be used. |
| 7946 if (receiver_map->DictionaryElementsInPrototypeChainOnly()) return false; | 7950 if (receiver_map->DictionaryElementsInPrototypeChainOnly()) return false; |
| (...skipping 3864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11811 if (ShouldProduceTraceOutput()) { | 11815 if (ShouldProduceTraceOutput()) { |
| 11812 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 11816 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 11813 } | 11817 } |
| 11814 | 11818 |
| 11815 #ifdef DEBUG | 11819 #ifdef DEBUG |
| 11816 graph_->Verify(false); // No full verify. | 11820 graph_->Verify(false); // No full verify. |
| 11817 #endif | 11821 #endif |
| 11818 } | 11822 } |
| 11819 | 11823 |
| 11820 } } // namespace v8::internal | 11824 } } // namespace v8::internal |
| OLD | NEW |