Index: src/ia32/code-stubs-ia32.cc |
=================================================================== |
--- src/ia32/code-stubs-ia32.cc (revision 11348) |
+++ src/ia32/code-stubs-ia32.cc (working copy) |
@@ -6162,7 +6162,11 @@ |
__ sub(ecx, edx); |
__ cmp(ecx, FieldOperand(eax, String::kLengthOffset)); |
Label not_original_string; |
- __ j(not_equal, ¬_original_string, Label::kNear); |
+ // Shorter than original string's length: an actual substring. |
+ __ j(below, ¬_original_string, Label::kNear); |
+ // Longer than original string's length or negative: unsafe arguments. |
+ __ j(above, &runtime); |
+ // Return original string. |
Counters* counters = masm->isolate()->counters(); |
__ IncrementCounter(counters->sub_string_native(), 1); |
__ ret(3 * kPointerSize); |