Chromium Code Reviews| Index: runtime/lib/regexp.cc |
| diff --git a/runtime/lib/regexp.cc b/runtime/lib/regexp.cc |
| index 7a50561109244c8f55282b3aedc2d02edff0e1f0..ad82af8778963702064beb92c4c3f61d97827560 100644 |
| --- a/runtime/lib/regexp.cc |
| +++ b/runtime/lib/regexp.cc |
| @@ -87,10 +87,29 @@ DEFINE_NATIVE_ENTRY(RegExp_ExecuteMatch, 3) { |
| if (FLAG_interpret_irregexp || FLAG_precompiled_runtime) { |
| return BytecodeRegExpMacroAssembler::Interpret(regexp, subject, start_index, |
| - zone); |
| + /*sticky=*/false, zone); |
| } |
| - return IRRegExpMacroAssembler::Execute(regexp, subject, start_index, zone); |
| + return IRRegExpMacroAssembler::Execute(regexp, subject, start_index, |
| + /*sticky=*/false, zone); |
| } |
| + |
| +DEFINE_NATIVE_ENTRY(RegExp_ExecuteMatchSticky, 3) { |
| + // This function is intrinsified. See Intrinsifier::RegExp_ExecuteMatch. |
|
rmacnak
2016/11/17 00:49:52
MatchSticky
Vyacheslav Egorov (Google)
2016/11/17 16:51:33
Done.
|
| + const RegExp& regexp = RegExp::CheckedHandle(arguments->NativeArgAt(0)); |
| + ASSERT(!regexp.IsNull()); |
| + GET_NON_NULL_NATIVE_ARGUMENT(String, subject, arguments->NativeArgAt(1)); |
| + GET_NON_NULL_NATIVE_ARGUMENT(Smi, start_index, arguments->NativeArgAt(2)); |
| + |
| + if (FLAG_interpret_irregexp || FLAG_precompiled_runtime) { |
| + return BytecodeRegExpMacroAssembler::Interpret(regexp, subject, start_index, |
| + /*sticky=*/true, zone); |
| + } |
| + |
| + return IRRegExpMacroAssembler::Execute(regexp, subject, start_index, |
| + /*sticky=*/true, zone); |
| +} |
| + |
| + |
| } // namespace dart |