| Index: runtime/vm/regexp.h
|
| diff --git a/runtime/vm/regexp.h b/runtime/vm/regexp.h
|
| index e0808d6285871cf69ed064db84740d5533d482e4..394279debecda4b6ddfee2c859cf5292c205927d 100644
|
| --- a/runtime/vm/regexp.h
|
| +++ b/runtime/vm/regexp.h
|
| @@ -1377,16 +1377,30 @@ class RegExpEngine: public AllStatic {
|
| graph_entry(NULL),
|
| num_blocks(-1),
|
| num_stack_locals(-1),
|
| - error_message(error_message) {}
|
| + error_message(error_message),
|
| + bytecode(NULL),
|
| + num_registers(-1) {}
|
| +
|
| + CompilationResult(TypedData* bytecode, intptr_t num_registers)
|
| + : backtrack_goto(NULL),
|
| + graph_entry(NULL),
|
| + num_blocks(-1),
|
| + num_stack_locals(-1),
|
| + error_message(NULL),
|
| + bytecode(bytecode),
|
| + num_registers(num_registers) {}
|
| +
|
| CompilationResult(IndirectGotoInstr* backtrack_goto,
|
| GraphEntryInstr* graph_entry,
|
| intptr_t num_blocks,
|
| - intptr_t num_stack_locals)
|
| + intptr_t num_stack_locals,
|
| + intptr_t num_registers)
|
| : backtrack_goto(backtrack_goto),
|
| graph_entry(graph_entry),
|
| num_blocks(num_blocks),
|
| num_stack_locals(num_stack_locals),
|
| - error_message(NULL) {}
|
| + error_message(NULL),
|
| + bytecode(NULL) {}
|
|
|
| IndirectGotoInstr* backtrack_goto;
|
| GraphEntryInstr* graph_entry;
|
| @@ -1394,13 +1408,22 @@ class RegExpEngine: public AllStatic {
|
| const intptr_t num_stack_locals;
|
|
|
| const char* error_message;
|
| +
|
| + TypedData* bytecode;
|
| + intptr_t num_registers;
|
| };
|
|
|
| - static CompilationResult Compile(
|
| + static CompilationResult CompileIR(
|
| RegExpCompileData* input,
|
| const ParsedFunction* parsed_function,
|
| const ZoneGrowableArray<const ICData*>& ic_data_array);
|
|
|
| + static CompilationResult CompileBytecode(
|
| + RegExpCompileData* data,
|
| + const JSRegExp& regexp,
|
| + bool is_one_byte,
|
| + Zone* zone);
|
| +
|
| static RawJSRegExp* CreateJSRegExp(
|
| Zone* zone,
|
| const String& pattern,
|
|
|