OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 "src/type-info.h" | 5 #include "src/type-info.h" |
6 | 6 |
7 #include "src/ast.h" | 7 #include "src/ast.h" |
8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
9 #include "src/compiler.h" | 9 #include "src/compiler.h" |
10 #include "src/ic/ic.h" | 10 #include "src/ic/ic.h" |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 Handle<Code> code = Handle<Code>::cast(maybe_code); | 129 Handle<Code> code = Handle<Code>::cast(maybe_code); |
130 return code->ic_state() == UNINITIALIZED; | 130 return code->ic_state() == UNINITIALIZED; |
131 } | 131 } |
132 | 132 |
133 | 133 |
134 bool TypeFeedbackOracle::StoreIsUninitialized(FeedbackVectorICSlot slot) { | 134 bool TypeFeedbackOracle::StoreIsUninitialized(FeedbackVectorICSlot slot) { |
135 if (!slot.IsInvalid()) { | 135 if (!slot.IsInvalid()) { |
136 Code::Kind kind = feedback_vector_->GetKind(slot); | 136 Code::Kind kind = feedback_vector_->GetKind(slot); |
137 if (kind == Code::STORE_IC) { | 137 if (kind == Code::STORE_IC) { |
138 StoreICNexus nexus(feedback_vector_, slot); | 138 StoreICNexus nexus(feedback_vector_, slot); |
139 return nexus.StateFromFeedback(); | 139 return nexus.StateFromFeedback() == UNINITIALIZED; |
140 } else if (kind == Code::KEYED_STORE_IC) { | 140 } else if (kind == Code::KEYED_STORE_IC) { |
141 KeyedStoreICNexus nexus(feedback_vector_, slot); | 141 KeyedStoreICNexus nexus(feedback_vector_, slot); |
142 return nexus.StateFromFeedback(); | 142 return nexus.StateFromFeedback() == UNINITIALIZED; |
143 } | 143 } |
144 } | 144 } |
145 return true; | 145 return true; |
146 } | 146 } |
147 | 147 |
148 | 148 |
149 bool TypeFeedbackOracle::CallIsUninitialized(FeedbackVectorICSlot slot) { | 149 bool TypeFeedbackOracle::CallIsUninitialized(FeedbackVectorICSlot slot) { |
150 Handle<Object> value = GetInfo(slot); | 150 Handle<Object> value = GetInfo(slot); |
151 return value->IsUndefined() || | 151 return value->IsUndefined() || |
152 value.is_identical_to( | 152 value.is_identical_to( |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 // Dictionary has been allocated with sufficient size for all elements. | 572 // Dictionary has been allocated with sufficient size for all elements. |
573 DisallowHeapAllocation no_need_to_resize_dictionary; | 573 DisallowHeapAllocation no_need_to_resize_dictionary; |
574 HandleScope scope(isolate()); | 574 HandleScope scope(isolate()); |
575 USE(UnseededNumberDictionary::AtNumberPut( | 575 USE(UnseededNumberDictionary::AtNumberPut( |
576 dictionary_, IdToKey(ast_id), handle(target, isolate()))); | 576 dictionary_, IdToKey(ast_id), handle(target, isolate()))); |
577 } | 577 } |
578 | 578 |
579 | 579 |
580 } // namespace internal | 580 } // namespace internal |
581 } // namespace v8 | 581 } // namespace v8 |
OLD | NEW |