| 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 "v8.h" | 5 #include "v8.h" |
| 6 | 6 |
| 7 #include "double.h" | 7 #include "double.h" |
| 8 #include "factory.h" | 8 #include "factory.h" |
| 9 #include "hydrogen-infer-representation.h" | 9 #include "hydrogen-infer-representation.h" |
| 10 #include "property-details-inl.h" | 10 #include "property-details-inl.h" |
| (...skipping 3238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3249 *block = ConstantIsObject(HConstant::cast(value()), isolate()) | 3249 *block = ConstantIsObject(HConstant::cast(value()), isolate()) |
| 3250 ? FirstSuccessor() : SecondSuccessor(); | 3250 ? FirstSuccessor() : SecondSuccessor(); |
| 3251 return true; | 3251 return true; |
| 3252 } | 3252 } |
| 3253 *block = NULL; | 3253 *block = NULL; |
| 3254 return false; | 3254 return false; |
| 3255 } | 3255 } |
| 3256 | 3256 |
| 3257 | 3257 |
| 3258 bool HIsStringAndBranch::KnownSuccessorBlock(HBasicBlock** block) { | 3258 bool HIsStringAndBranch::KnownSuccessorBlock(HBasicBlock** block) { |
| 3259 if (known_successor_index() != kNoKnownSuccessorIndex) { | |
| 3260 *block = SuccessorAt(known_successor_index()); | |
| 3261 return true; | |
| 3262 } | |
| 3263 if (FLAG_fold_constants && value()->IsConstant()) { | 3259 if (FLAG_fold_constants && value()->IsConstant()) { |
| 3264 *block = HConstant::cast(value())->HasStringValue() | 3260 *block = HConstant::cast(value())->HasStringValue() |
| 3265 ? FirstSuccessor() : SecondSuccessor(); | 3261 ? FirstSuccessor() : SecondSuccessor(); |
| 3266 return true; | 3262 return true; |
| 3267 } | 3263 } |
| 3268 if (value()->type().IsString()) { | |
| 3269 *block = FirstSuccessor(); | |
| 3270 return true; | |
| 3271 } | |
| 3272 if (value()->type().IsSmi() || | |
| 3273 value()->type().IsNull() || | |
| 3274 value()->type().IsBoolean() || | |
| 3275 value()->type().IsUndefined() || | |
| 3276 value()->type().IsJSObject()) { | |
| 3277 *block = SecondSuccessor(); | |
| 3278 return true; | |
| 3279 } | |
| 3280 *block = NULL; | 3264 *block = NULL; |
| 3281 return false; | 3265 return false; |
| 3282 } | 3266 } |
| 3283 | 3267 |
| 3284 | 3268 |
| 3285 bool HIsUndetectableAndBranch::KnownSuccessorBlock(HBasicBlock** block) { | 3269 bool HIsUndetectableAndBranch::KnownSuccessorBlock(HBasicBlock** block) { |
| 3286 if (FLAG_fold_constants && value()->IsConstant()) { | 3270 if (FLAG_fold_constants && value()->IsConstant()) { |
| 3287 *block = HConstant::cast(value())->IsUndetectable() | 3271 *block = HConstant::cast(value())->IsUndetectable() |
| 3288 ? FirstSuccessor() : SecondSuccessor(); | 3272 ? FirstSuccessor() : SecondSuccessor(); |
| 3289 return true; | 3273 return true; |
| (...skipping 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4762 break; | 4746 break; |
| 4763 case kExternalMemory: | 4747 case kExternalMemory: |
| 4764 stream->Add("[external-memory]"); | 4748 stream->Add("[external-memory]"); |
| 4765 break; | 4749 break; |
| 4766 } | 4750 } |
| 4767 | 4751 |
| 4768 stream->Add("@%d", offset()); | 4752 stream->Add("@%d", offset()); |
| 4769 } | 4753 } |
| 4770 | 4754 |
| 4771 } } // namespace v8::internal | 4755 } } // namespace v8::internal |
| OLD | NEW |