Revert "Pull from svn bleeding_edge@3716"
This reverts commit 888f6729be6a6f6fbe246cb5a9f122e2dbe455b7.
(Waiting until v8 issue 554101 is in v8 rather than patching it straight into
android)
diff --git a/src/regexp-macro-assembler.cc b/src/regexp-macro-assembler.cc
index 0fcfc33..3685fcd 100644
--- a/src/regexp-macro-assembler.cc
+++ b/src/regexp-macro-assembler.cc
@@ -122,10 +122,7 @@
bool is_ascii = subject->IsAsciiRepresentation();
- // The string has been flattened, so it it is a cons string it contains the
- // full string in the first part.
if (StringShape(subject_ptr).IsCons()) {
- ASSERT_EQ(0, ConsString::cast(subject_ptr)->second()->length());
subject_ptr = ConsString::cast(subject_ptr)->first();
}
// Ensure that an underlying string has the same ascii-ness.
@@ -144,7 +141,8 @@
start_offset,
input_start,
input_end,
- offsets_vector);
+ offsets_vector,
+ previous_index == 0);
return res;
}
@@ -155,11 +153,14 @@
int start_offset,
const byte* input_start,
const byte* input_end,
- int* output) {
+ int* output,
+ bool at_start) {
typedef int (*matcher)(String*, int, const byte*,
- const byte*, int*, Address, int);
+ const byte*, int*, int, Address, int);
matcher matcher_func = FUNCTION_CAST<matcher>(code->entry());
+ int at_start_val = at_start ? 1 : 0;
+
// Ensure that the minimum stack has been allocated.
RegExpStack stack;
Address stack_base = RegExpStack::stack_base();
@@ -171,6 +172,7 @@
input_start,
input_end,
output,
+ at_start_val,
stack_base,
direct_call);
ASSERT(result <= SUCCESS);