Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Unified Diff: runtime/vm/parser.h

Issue 539153002: Port and integrate the irregexp engine from V8 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Port remaining V8 regexp tests and fix exposed bugs. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/parser.h
diff --git a/runtime/vm/parser.h b/runtime/vm/parser.h
index 2edc19a8b0084dbb630a4c97f34c1a700977ec3d..35696502b2d4b99d667085daa75a734327c3dfd7 100644
--- a/runtime/vm/parser.h
+++ b/runtime/vm/parser.h
@@ -25,6 +25,7 @@ class ArgumentsDescriptor;
class Isolate;
class LocalScope;
class LocalVariable;
+class RegExpCompileData;
class SourceLabel;
template <typename T> class GrowableArray;
@@ -42,6 +43,7 @@ class ParsedFunction : public ZoneAllocated {
: function_(function),
code_(Code::Handle(isolate, function.unoptimized_code())),
node_sequence_(NULL),
+ regexp_compile_data_(NULL),
instantiator_(NULL),
default_parameter_values_(Array::ZoneHandle(isolate, Array::null())),
saved_current_context_var_(NULL),
@@ -66,6 +68,11 @@ class ParsedFunction : public ZoneAllocated {
SequenceNode* node_sequence() const { return node_sequence_; }
void SetNodeSequence(SequenceNode* node_sequence);
+ RegExpCompileData* regexp_compile_data() const {
+ return regexp_compile_data_;
+ }
+ void SetRegExpCompileData(RegExpCompileData* regexp_compile_data);
+
LocalVariable* instantiator() const { return instantiator_; }
void set_instantiator(LocalVariable* instantiator) {
// May be NULL.
@@ -140,6 +147,7 @@ class ParsedFunction : public ZoneAllocated {
int num_stack_locals() const { return num_stack_locals_; }
void AllocateVariables();
+ void AllocateIrregexpVariables(intptr_t num_stack_locals);
void record_await() {
have_seen_await_expr_ = true;
@@ -171,6 +179,7 @@ class ParsedFunction : public ZoneAllocated {
const Function& function_;
Code& code_;
SequenceNode* node_sequence_;
+ RegExpCompileData* regexp_compile_data_;
LocalVariable* instantiator_;
Array& default_parameter_values_;
LocalVariable* saved_current_context_var_;

Powered by Google App Engine
This is Rietveld 408576698