From 7961cea6d1041e3e454dae6a1da660b453efd238 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 20 Jan 2020 13:40:20 +0100 Subject: BASELINE: Update Chromium to 78.0.3904.130 Change-Id: If185e0c0061b3437531c97c9c8c78f239352a68b Reviewed-by: Allan Sandfeld Jensen --- chromium/v8/src/regexp/regexp-interpreter.h | 37 +++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'chromium/v8/src/regexp/regexp-interpreter.h') diff --git a/chromium/v8/src/regexp/regexp-interpreter.h b/chromium/v8/src/regexp/regexp-interpreter.h index ad27dcd2961..fbc5a3b2906 100644 --- a/chromium/v8/src/regexp/regexp-interpreter.h +++ b/chromium/v8/src/regexp/regexp-interpreter.h @@ -12,7 +12,7 @@ namespace v8 { namespace internal { -class V8_EXPORT_PRIVATE IrregexpInterpreter { +class V8_EXPORT_PRIVATE IrregexpInterpreter : public AllStatic { public: enum Result { FAILURE = RegExp::kInternalRegExpFailure, @@ -21,10 +21,37 @@ class V8_EXPORT_PRIVATE IrregexpInterpreter { RETRY = RegExp::kInternalRegExpRetry, }; - // The caller is responsible for initializing registers before each call. - static Result Match(Isolate* isolate, Handle code_array, - Handle subject_string, int* registers, - int start_position); + // In case a StackOverflow occurs, a StackOverflowException is created and + // EXCEPTION is returned. + static Result MatchForCallFromRuntime(Isolate* isolate, + Handle regexp, + Handle subject_string, + int* registers, int registers_length, + int start_position); + + // In case a StackOverflow occurs, EXCEPTION is returned. The caller is + // responsible for creating the exception. + // Arguments input_start, input_end and backtrack_stack are + // unused. They are only passed to match the signature of the native irregex + // code. + static Result MatchForCallFromJs(Address subject, int32_t start_position, + Address input_start, Address input_end, + int* registers, int32_t registers_length, + Address backtrack_stack, + RegExp::CallOrigin call_origin, + Isolate* isolate, Address regexp); + + static Result MatchInternal(Isolate* isolate, ByteArray code_array, + String subject_string, int* registers, + int registers_length, int start_position, + RegExp::CallOrigin call_origin); + + static void Disassemble(ByteArray byte_array, const std::string& pattern); + + private: + static Result Match(Isolate* isolate, JSRegExp regexp, String subject_string, + int* registers, int registers_length, int start_position, + RegExp::CallOrigin call_origin); }; } // namespace internal -- cgit v1.2.1