Index: src/regexp/jsregexp.cc |
diff --git a/src/regexp/jsregexp.cc b/src/regexp/jsregexp.cc |
index fe04fbc9cff40f6f9e31f1f01bc33bf39990ec9e..1a9d50b5090c5635576a78eb8a40c37c46c19701 100644 |
--- a/src/regexp/jsregexp.cc |
+++ b/src/regexp/jsregexp.cc |
@@ -397,6 +397,7 @@ bool RegExpImpl::CompileIrregexp(Handle<JSRegExp> re, |
Handle<FixedArray> data = Handle<FixedArray>(FixedArray::cast(re->data())); |
data->set(JSRegExp::code_index(is_one_byte), result.code); |
+ SetIrregexpCaptureNameMap(*data, compile_data.capture_name_map); |
int register_max = IrregexpMaxRegisterCount(*data); |
if (result.num_registers > register_max) { |
SetIrregexpMaxRegisterCount(*data, result.num_registers); |
@@ -416,6 +417,11 @@ void RegExpImpl::SetIrregexpMaxRegisterCount(FixedArray* re, int value) { |
re->set(JSRegExp::kIrregexpMaxRegisterCountIndex, Smi::FromInt(value)); |
} |
+void RegExpImpl::SetIrregexpCaptureNameMap(FixedArray* re, |
+ Handle<FixedArray> value) { |
+ re->set(JSRegExp::kIrregexpCaptureNameMapIndex, |
+ value.is_null() ? nullptr : *value); |
Yang
2016/06/13 10:54:52
let's store undefined or Smi::FromInt(0) instead.
jgruber
2016/06/13 13:09:59
Done.
|
+} |
int RegExpImpl::IrregexpNumberOfCaptures(FixedArray* re) { |
return Smi::cast(re->get(JSRegExp::kIrregexpCaptureCountIndex))->value(); |