Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index fea7627002095527cc2b0ec1c4e32cc456b30f33..89e311e4614b10cfe000b417a61c3bf7515b9c85 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -1332,15 +1332,14 @@ void LCodeGen::DoDateField(LDateField* instr) { |
Register object = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
Smi* index = instr->index(); |
- Label runtime, done; |
+ Label runtime, done, not_date_object; |
ASSERT(object.is(result)); |
ASSERT(object.is(rax)); |
-#ifdef DEBUG |
- __ AbortIfSmi(object); |
+ Condition cc = masm()->CheckSmi(object); |
+ DeoptimizeIf(cc, instr->environment()); |
__ CmpObjectType(object, JS_DATE_TYPE, kScratchRegister); |
- __ Assert(equal, "Trying to get date field from non-date."); |
-#endif |
+ DeoptimizeIf(not_equal, instr->environment()); |
if (index->value() == 0) { |
__ movq(result, FieldOperand(object, JSDate::kValueOffset)); |
@@ -1959,9 +1958,7 @@ void LCodeGen::DoGetCachedArrayIndex(LGetCachedArrayIndex* instr) { |
Register input = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
- if (FLAG_debug_code) { |
- __ AbortIfNotString(input); |
- } |
+ __ AbortIfNotString(input); |
__ movl(result, FieldOperand(input, String::kHashFieldOffset)); |
ASSERT(String::kHashShift >= kSmiTagSize); |