Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 60f1644ce9342cd557414740f88ad11ed75fdbc8..4022bedfb72f92ea2910c188ceb02cdd20faf885 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -1327,15 +1327,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)); |
@@ -1954,9 +1953,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); |