Index: src/ia32/codegen-ia32.cc |
=================================================================== |
--- src/ia32/codegen-ia32.cc (revision 3315) |
+++ src/ia32/codegen-ia32.cc (working copy) |
@@ -4831,6 +4831,12 @@ |
__ j(not_equal, &slow_case); |
// ConsString. |
+ // Check that the right hand side is the empty string (ie if this is really a |
+ // flat string in a cons string). If that is not the case we would rather go |
+ // to the runtime system now, to flatten the string. |
+ __ mov(temp.reg(), FieldOperand(object.reg(), ConsString::kSecondOffset)); |
+ __ cmp(Operand(temp.reg()), Immediate(Handle<String>(Heap::empty_string()))); |
+ __ j(not_equal, &slow_case); |
// Get the first of the two strings. |
__ mov(object.reg(), FieldOperand(object.reg(), ConsString::kFirstOffset)); |
__ jmp(&try_again_with_new_string); |