Index: runtime/vm/kernel_binary_flowgraph.h |
diff --git a/runtime/vm/kernel_binary_flowgraph.h b/runtime/vm/kernel_binary_flowgraph.h |
index b46c20973049c3206bbc5d72b9b7eaabcec0aeb1..74121d6ae02b0d1105a48ee80d7a03bcffd30cdc 100644 |
--- a/runtime/vm/kernel_binary_flowgraph.h |
+++ b/runtime/vm/kernel_binary_flowgraph.h |
@@ -28,6 +28,7 @@ class StreamingConstantEvaluator { |
Instance& EvaluateExpression(); |
+ void EvaluateStaticGet(); |
void EvaluateSymbolLiteral(); |
void EvaluateDoubleLiteral(); |
@@ -65,19 +66,28 @@ class StreamingFlowGraphBuilder { |
&flow_graph_builder->type_translator_), |
string_table_offsets_(NULL), |
string_table_size_(-1), |
- string_table_entries_read_(0) {} |
+ string_table_entries_read_(0), |
+ canonical_names_(NULL), |
+ canonical_names_size_(-1), |
+ canonical_names_entries_read_(0), |
+ canonical_names_next_offset_(-1) {} |
virtual ~StreamingFlowGraphBuilder() { |
delete reader_; |
if (string_table_offsets_ != NULL) { |
delete[] string_table_offsets_; |
} |
+ if (canonical_names_ != NULL) { |
+ // At least for now we'll leak whatever's inside |
+ delete[] canonical_names_; |
+ } |
} |
Fragment BuildAt(intptr_t kernel_offset); |
private: |
intptr_t GetStringTableOffset(intptr_t index); |
+ CanonicalName* GetCanonicalName(intptr_t index); |
intptr_t ReaderOffset(); |
void SetOffset(intptr_t offset); |
@@ -93,6 +103,7 @@ class StreamingFlowGraphBuilder { |
dart::String& DartSymbol(intptr_t str_index); |
dart::String& DartString(intptr_t str_index); |
+ String* KernelString(intptr_t str_index); |
Fragment DebugStepCheck(TokenPosition position); |
Fragment LoadLocal(LocalVariable* variable); |
@@ -101,8 +112,13 @@ class StreamingFlowGraphBuilder { |
Fragment ThrowNoSuchMethodError(); |
Fragment Constant(const Object& value); |
Fragment IntConstant(int64_t value); |
+ Fragment LoadStaticField(); |
+ Fragment StaticCall(TokenPosition position, |
+ const Function& target, |
+ intptr_t argument_count); |
Fragment BuildInvalidExpression(); |
+ Fragment BuildStaticGet(); |
Fragment BuildSymbolLiteral(); |
Fragment BuildThisExpression(); |
Fragment BuildRethrow(); |
@@ -122,6 +138,10 @@ class StreamingFlowGraphBuilder { |
intptr_t* string_table_offsets_; |
intptr_t string_table_size_; |
intptr_t string_table_entries_read_; |
+ CanonicalName** canonical_names_; |
+ intptr_t canonical_names_size_; |
+ intptr_t canonical_names_entries_read_; |
+ intptr_t canonical_names_next_offset_; |
friend class StreamingConstantEvaluator; |
}; |