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

Unified Diff: runtime/vm/kernel_binary.cc

Issue 2629123002: Remove (semi-unmaintained) kernel write code (Closed)
Patch Set: Created 3 years, 11 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
« no previous file with comments | « runtime/vm/kernel.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/kernel_binary.cc
diff --git a/runtime/vm/kernel_binary.cc b/runtime/vm/kernel_binary.cc
index 4cdc004cb84d9b5d5971f7ca58e34c546554f90b..c83b36d540d3edd95a17117f35234db35058ef3d 100644
--- a/runtime/vm/kernel_binary.cc
+++ b/runtime/vm/kernel_binary.cc
@@ -16,21 +16,13 @@
do { \
if (FLAG_trace_kernel_binary) reader->DumpOffset(DART_PRETTY_FUNCTION); \
} while (0)
-#define TRACE_WRITE_OFFSET() \
- do { \
- if (FLAG_trace_kernel_binary) writer->DumpOffset(DART_PRETTY_FUNCTION); \
- } while (0)
#else
#define TRACE_READ_OFFSET()
-#define TRACE_WRITE_OFFSET()
#endif
namespace dart {
-ByteWriter::~ByteWriter() {}
-
-
namespace kernel {
@@ -445,182 +437,6 @@ class Reader {
};
-class WriterHelper {
- public:
- WriterHelper() : labels_(NULL) {}
-
- void SetProgram(Program* program) {
- program_ = program;
- for (int i = 0; i < program->libraries().length(); i++) {
- Library* lib = program->libraries()[i];
- libraries_.Set(lib, i);
-
- for (int j = 0; j < lib->classes().length(); j++) {
- Class* klass = lib->classes()[j];
- classes_.Set(klass, j);
-
- for (int k = 0; k < klass->fields().length(); k++) {
- Field* field = klass->fields()[k];
- fields_.Set(field, k);
- }
- for (int k = 0; k < klass->constructors().length(); k++) {
- Constructor* constructor = klass->constructors()[k];
- constructors_.Set(constructor, k);
- }
- for (int k = 0; k < klass->procedures().length(); k++) {
- Procedure* procedure = klass->procedures()[k];
- procedures_.Set(procedure, k);
- }
- }
-
- for (int k = 0; k < lib->fields().length(); k++) {
- Field* field = lib->fields()[k];
- fields_.Set(field, k);
- }
-
- for (int k = 0; k < lib->procedures().length(); k++) {
- Procedure* procedure = lib->procedures()[k];
- procedures_.Set(procedure, k);
- }
- }
- }
-
- Program* program() { return program_; }
-
- BlockMap<String>& strings() { return strings_; }
- BlockMap<Library>& libraries() { return libraries_; }
- BlockMap<Class>& classes() { return classes_; }
- BlockMap<Field>& fields() { return fields_; }
- BlockMap<Procedure>& procedures() { return procedures_; }
- BlockMap<Constructor>& constructors() { return constructors_; }
-
- BlockMap<VariableDeclaration>& variables() { return scope_; }
- BlockMap<TypeParameter>& type_parameters() { return type_parameters_; }
- BlockMap<SwitchCase>& switch_cases() { return switch_cases_; }
-
- BlockMap<LabeledStatement>* labels() { return labels_; }
- void set_labels(BlockMap<LabeledStatement>* labels) { labels_ = labels; }
-
- private:
- Program* program_;
-
- BlockMap<String> strings_;
- BlockMap<Library> libraries_;
- BlockMap<Class> classes_;
- BlockMap<Field> fields_;
- BlockMap<Procedure> procedures_;
- BlockMap<Constructor> constructors_;
-
- BlockMap<VariableDeclaration> scope_;
- BlockMap<TypeParameter> type_parameters_;
- BlockMap<SwitchCase> switch_cases_;
- BlockMap<LabeledStatement>* labels_;
-};
-
-
-class Writer {
- public:
- explicit Writer(ByteWriter* writer) : out_(writer), offset_(0) {}
-
- void WriteUInt32(uint32_t value) {
- uint8_t buffer[4] = {
- static_cast<uint8_t>((value >> 24) & 0xff),
- static_cast<uint8_t>((value >> 16) & 0xff),
- static_cast<uint8_t>((value >> 8) & 0xff),
- static_cast<uint8_t>((value >> 0) & 0xff),
- };
- WriteBytes(buffer, 4);
- }
-
- void WriteUInt(uint32_t value) {
- if (value < 0x80) {
- // 0...
- WriteByte(static_cast<uint8_t>(value));
- } else if (value < 0x4000) {
- // 10...
- WriteByte(static_cast<uint8_t>(((value >> 8) & 0x3f) | 0x80));
- WriteByte(static_cast<uint8_t>(value & 0xff));
- } else {
- // 11...
- // Ensure the highest 2 bits is not used for anything (we use it to for
- // encoding).
- ASSERT(static_cast<uint8_t>((value >> 24) & 0xc0) == 0);
- uint8_t buffer[4] = {
- static_cast<uint8_t>(((value >> 24) & 0x7f) | 0xc0),
- static_cast<uint8_t>((value >> 16) & 0xff),
- static_cast<uint8_t>((value >> 8) & 0xff),
- static_cast<uint8_t>((value >> 0) & 0xff),
- };
- WriteBytes(buffer, 4);
- }
- }
-
- void WriteListLength(intptr_t value) { return WriteUInt(value); }
-
- void WriteByte(uint8_t value) {
- out_->WriteByte(value);
- offset_++;
- }
-
- void WriteBool(bool value) { WriteByte(value ? 1 : 0); }
-
- void WriteFlags(uint8_t value) { WriteByte(value); }
-
- void WriteTag(Tag tag) { WriteByte(static_cast<uint8_t>(tag)); }
-
- void WriteTag(Tag tag, uint8_t payload) {
- ASSERT((payload & ~kSpecializedPayloadMask) == 0);
- WriteByte(kSpecializedTagHighBit | static_cast<uint8_t>(tag) | payload);
- }
-
- void WriteBytes(uint8_t* bytes, int length) {
- out_->WriteBytes(bytes, length);
- offset_ += length;
- }
-
- void WritePosition(TokenPosition position) {
- intptr_t value = position.value() + 1;
- WriteUInt(value);
- }
-
- template <typename T>
- void WriteOptional(T* object) {
- if (object == NULL) {
- WriteTag(kNothing);
- } else {
- WriteTag(kSomething);
- object->WriteTo(this);
- }
- }
-
- template <typename T, typename WT>
- void WriteOptionalStatic(T* object) {
- if (object == NULL) {
- WriteTag(kNothing);
- } else {
- WriteTag(kSomething);
- WT::WriteTo(this, object);
- }
- }
-
- template <typename T>
- void WriteOptionalStatic(T* object) {
- return WriteOptionalStatic<T, T>(object);
- }
-
- void DumpOffset(const char* str) {
- OS::PrintErr("@%" Pd64 " %s\n", offset_, str);
- }
-
- WriterHelper* helper() { return &helper_; }
-
- private:
- ByteWriter* out_;
- WriterHelper helper_;
- int64_t offset_;
-};
-
-
template <typename T>
template <typename IT>
void List<T>::ReadFrom(Reader* reader, TreeNode* parent) {
@@ -662,36 +478,6 @@ void List<T>::ReadFromStatic(Reader* reader) {
}
}
-
-template <typename T>
-void List<T>::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
-
- // NOTE: We only support dense lists.
- writer->WriteListLength(length_);
- for (int i = 0; i < length_; i++) {
- T* object = array_[i];
- ASSERT(object != NULL);
- object->WriteTo(writer);
- }
-}
-
-
-template <typename T>
-template <typename IT>
-void List<T>::WriteToStatic(Writer* writer) {
- TRACE_WRITE_OFFSET();
-
- // NOTE: We only support dense lists.
- writer->WriteListLength(length_);
- for (int i = 0; i < length_; i++) {
- T* object = array_[i];
- ASSERT(object != NULL);
- IT::WriteTo(writer, object);
- }
-}
-
-
void TypeParameterList::ReadFrom(Reader* reader) {
// It is possible for the bound of the first type parameter to refer to
// the second type parameter. This means we need to create [TypeParameter]
@@ -712,23 +498,6 @@ void TypeParameterList::ReadFrom(Reader* reader) {
}
-void TypeParameterList::WriteTo(Writer* writer) {
- writer->WriteListLength(length());
-
- // Make all [TypeParameter]s available in scope.
- for (int i = 0; i < length(); i++) {
- TypeParameter* parameter = (*this)[i];
- writer->helper()->type_parameters().Push(parameter);
- }
-
- // Write all [TypeParameter]s and their bounds.
- for (int i = 0; i < length(); i++) {
- TypeParameter* parameter = (*this)[i];
- parameter->WriteTo(writer);
- }
-}
-
-
template <typename A, typename B>
Tuple<A, B>* Tuple<A, B>::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
@@ -738,14 +507,6 @@ Tuple<A, B>* Tuple<A, B>::ReadFrom(Reader* reader) {
}
-template <typename A, typename B>
-void Tuple<A, B>::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- first_->WriteTo(writer);
- second_->WriteTo(writer);
-}
-
-
template <typename B, typename S>
class DowncastReader {
public:
@@ -762,11 +523,6 @@ class StringImpl {
TRACE_READ_OFFSET();
return String::ReadFromImpl(reader);
}
-
- static void WriteTo(Writer* writer, String* string) {
- TRACE_WRITE_OFFSET();
- string->WriteToImpl(writer);
- }
};
@@ -776,11 +532,6 @@ class VariableDeclarationImpl {
TRACE_READ_OFFSET();
return VariableDeclaration::ReadFromImpl(reader);
}
-
- static void WriteTo(Writer* writer, VariableDeclaration* d) {
- TRACE_WRITE_OFFSET();
- d->WriteToImpl(writer);
- }
};
@@ -797,36 +548,11 @@ String* String::ReadFromImpl(Reader* reader) {
return string;
}
-
-void String::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- Reference::WriteStringTo(writer, this);
-}
-
-
-void String::WriteToImpl(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteUInt(size_);
- writer->WriteBytes(buffer_, size_);
-}
-
-
void StringTable::ReadFrom(Reader* reader) {
strings_.ReadFromStatic<StringImpl>(reader);
}
-void StringTable::WriteTo(Writer* writer) {
- strings_.WriteToStatic<StringImpl>(writer);
-
- // Build up the "String* -> index" table.
- WriterHelper* helper = writer->helper();
- for (int i = 0; i < strings_.length(); i++) {
- helper->strings().Push(strings_[i]);
- }
-}
-
-
void SourceTable::ReadFrom(Reader* reader) {
size_ = reader->helper()->program()->source_uri_table().strings().length();
source_code_ = new String*[size_];
@@ -848,23 +574,6 @@ void SourceTable::ReadFrom(Reader* reader) {
}
-void SourceTable::WriteTo(Writer* writer) {
- for (intptr_t i = 0; i < size_; ++i) {
- StringImpl::WriteTo(writer, source_code_[i]);
- intptr_t* line_starts = line_starts_[i];
- intptr_t line_count = line_count_[i];
- writer->WriteUInt(line_count);
-
- intptr_t previous_line_start = 0;
- for (intptr_t j = 0; j < line_count; ++j) {
- intptr_t line_start = line_starts[j];
- writer->WriteUInt(line_start - previous_line_start);
- previous_line_start = line_start;
- }
- }
-}
-
-
Library* Library::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
int flags = reader->ReadFlags();
@@ -893,28 +602,6 @@ Library* Library::ReadFrom(Reader* reader) {
}
-void Library::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- name_->WriteTo(writer);
- import_uri_->WriteTo(writer);
- writer->WriteUInt(source_uri_index_);
-
- writer->WriteUInt(classes_.length());
- for (int i = 0; i < classes_.length(); i++) {
- Class* klass = classes_[i];
- if (klass->IsNormalClass()) {
- writer->WriteTag(kNormalClass);
- NormalClass::Cast(klass)->WriteTo(writer);
- } else {
- writer->WriteTag(kMixinClass);
- MixinClass::Cast(klass)->WriteTo(writer);
- }
- }
- fields().WriteTo(writer);
- procedures().WriteTo(writer);
-}
-
-
Class* Class::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
@@ -928,16 +615,6 @@ Class* Class::ReadFrom(Reader* reader) {
}
-void Class::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WritePosition(position_);
- writer->WriteBool(is_abstract_);
- name_->WriteTo(writer);
- writer->WriteUInt(source_uri_index_);
- annotations_.WriteTo(writer);
-}
-
-
NormalClass* NormalClass::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Class::ReadFrom(reader);
@@ -957,20 +634,6 @@ NormalClass* NormalClass::ReadFrom(Reader* reader) {
}
-void NormalClass::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- Class::WriteTo(writer);
- TypeParameterScope<WriterHelper> scope(writer->helper());
-
- type_parameters().WriteTo(writer);
- writer->WriteOptional<DartType>(super_class_);
- implemented_classes().WriteTo(writer);
- fields_.WriteTo(writer);
- constructors_.WriteTo(writer);
- procedures_.WriteTo(writer);
-}
-
-
MixinClass* MixinClass::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
TypeParameterScope<ReaderHelper> scope(reader->helper());
@@ -986,19 +649,6 @@ MixinClass* MixinClass::ReadFrom(Reader* reader) {
}
-void MixinClass::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- TypeParameterScope<WriterHelper> scope(writer->helper());
-
- Class::WriteTo(writer);
- type_parameters_.WriteTo(writer);
- first_->WriteTo(writer);
- second_->WriteTo(writer);
- implemented_classes_.WriteTo(writer);
- constructors_.WriteTo(writer);
-}
-
-
Member* Reference::ReadMemberFrom(Reader* reader, bool allow_null) {
TRACE_READ_OFFSET();
@@ -1051,56 +701,6 @@ Member* Reference::ReadMemberFrom(Reader* reader, bool allow_null) {
}
-void Reference::WriteMemberTo(Writer* writer, Member* member, bool allow_null) {
- TRACE_WRITE_OFFSET();
- if (member == NULL) {
- if (allow_null) {
- writer->WriteTag(kNullReference);
- return;
- } else {
- FATAL("Expected a valid member reference but got `null`");
- }
- }
- TreeNode* node = member->parent();
-
- WriterHelper* helper = writer->helper();
-
- if (node->IsLibrary()) {
- Library* library = Library::Cast(node);
- if (member->IsField()) {
- Field* field = Field::Cast(member);
- writer->WriteTag(kLibraryFieldReference);
- writer->WriteUInt(helper->libraries().Lookup(library));
- writer->WriteUInt(helper->fields().Lookup(field));
- } else {
- Procedure* procedure = Procedure::Cast(member);
- writer->WriteTag(kLibraryProcedureReference);
- writer->WriteUInt(helper->libraries().Lookup(library));
- writer->WriteUInt(helper->procedures().Lookup(procedure));
- }
- } else {
- Class* klass = Class::Cast(node);
-
- if (member->IsField()) {
- Field* field = Field::Cast(member);
- writer->WriteTag(kClassFieldReference);
- Reference::WriteClassTo(writer, klass);
- writer->WriteUInt(helper->fields().Lookup(field));
- } else if (member->IsConstructor()) {
- Constructor* constructor = Constructor::Cast(member);
- writer->WriteTag(kClassConstructorReference);
- Reference::WriteClassTo(writer, klass);
- writer->WriteUInt(helper->constructors().Lookup(constructor));
- } else {
- Procedure* procedure = Procedure::Cast(member);
- writer->WriteTag(kClassProcedureReference);
- Reference::WriteClassTo(writer, klass);
- writer->WriteUInt(helper->procedures().Lookup(procedure));
- }
- }
-}
-
-
Class* Reference::ReadClassFrom(Reader* reader, bool allow_null) {
TRACE_READ_OFFSET();
Program* program = reader->helper()->program();
@@ -1128,40 +728,12 @@ Class* Reference::ReadClassFrom(Reader* reader, bool allow_null) {
}
-void Reference::WriteClassTo(Writer* writer, Class* klass, bool allow_null) {
- TRACE_WRITE_OFFSET();
- if (klass == NULL) {
- if (allow_null) {
- writer->WriteTag(kNullReference);
- return;
- } else {
- FATAL("Expected a valid class reference but got `null`.");
- }
- }
- if (klass->IsNormalClass()) {
- writer->WriteTag(kNormalClassReference);
- } else {
- ASSERT(klass->IsMixinClass());
- writer->WriteTag(kMixinClassReference);
- }
-
- writer->WriteUInt(writer->helper()->libraries().Lookup(klass->parent()));
- writer->WriteUInt(writer->helper()->classes().Lookup(klass));
-}
-
-
String* Reference::ReadStringFrom(Reader* reader) {
int index = reader->ReadUInt();
return reader->helper()->program()->string_table().strings()[index];
}
-void Reference::WriteStringTo(Writer* writer, String* string) {
- int index = writer->helper()->strings().Lookup(string);
- writer->WriteUInt(index);
-}
-
-
Field* Field::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Tag tag = reader->ReadTag();
@@ -1180,21 +752,6 @@ Field* Field::ReadFrom(Reader* reader) {
}
-void Field::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kField);
- writer->WritePosition(position_);
- writer->WritePosition(end_position_);
- writer->WriteFlags(flags_);
- name_->WriteTo(writer);
- writer->WriteUInt(source_uri_index_);
- annotations_.WriteTo(writer);
- type_->WriteTo(writer);
- writer->WriteOptional<InferredValue>(inferred_value_);
- writer->WriteOptional<Expression>(initializer_);
-}
-
-
Constructor* Constructor::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Tag tag = reader->ReadTag();
@@ -1212,21 +769,6 @@ Constructor* Constructor::ReadFrom(Reader* reader) {
}
-void Constructor::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kConstructor);
-
- writer->WritePosition(position_);
- writer->WritePosition(end_position_);
- VariableScope<WriterHelper> parameters(writer->helper());
- writer->WriteFlags(flags_);
- name_->WriteTo(writer);
- annotations_.WriteTo(writer);
- function_->WriteTo(writer);
- initializers_.WriteTo(writer);
-}
-
-
Procedure* Procedure::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Tag tag = reader->ReadTag();
@@ -1245,22 +787,6 @@ Procedure* Procedure::ReadFrom(Reader* reader) {
}
-void Procedure::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kProcedure);
-
- writer->WritePosition(position_);
- writer->WritePosition(end_position_);
- VariableScope<WriterHelper> parameters(writer->helper());
- writer->WriteByte(kind_);
- writer->WriteFlags(flags_);
- name_->WriteTo(writer);
- writer->WriteUInt(source_uri_index_);
- annotations_.WriteTo(writer);
- writer->WriteOptional<FunctionNode>(function_);
-}
-
-
Initializer* Initializer::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Tag tag = reader->ReadTag();
@@ -1288,12 +814,6 @@ InvalidInitializer* InvalidInitializer::ReadFromImpl(Reader* reader) {
}
-void InvalidInitializer::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kInvalidInitializer);
-}
-
-
FieldInitializer* FieldInitializer::ReadFromImpl(Reader* reader) {
TRACE_READ_OFFSET();
FieldInitializer* initializer = new FieldInitializer();
@@ -1303,14 +823,6 @@ FieldInitializer* FieldInitializer::ReadFromImpl(Reader* reader) {
}
-void FieldInitializer::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kFieldInitializer);
- Reference::WriteMemberTo(writer, field_);
- value_->WriteTo(writer);
-}
-
-
SuperInitializer* SuperInitializer::ReadFromImpl(Reader* reader) {
TRACE_READ_OFFSET();
SuperInitializer* init = new SuperInitializer();
@@ -1320,14 +832,6 @@ SuperInitializer* SuperInitializer::ReadFromImpl(Reader* reader) {
}
-void SuperInitializer::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kSuperInitializer);
- Reference::WriteMemberTo(writer, target_);
- arguments_->WriteTo(writer);
-}
-
-
RedirectingInitializer* RedirectingInitializer::ReadFromImpl(Reader* reader) {
TRACE_READ_OFFSET();
RedirectingInitializer* init = new RedirectingInitializer();
@@ -1337,14 +841,6 @@ RedirectingInitializer* RedirectingInitializer::ReadFromImpl(Reader* reader) {
}
-void RedirectingInitializer::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kRedirectingInitializer);
- Reference::WriteMemberTo(writer, target_);
- arguments_->WriteTo(writer);
-}
-
-
LocalInitializer* LocalInitializer::ReadFromImpl(Reader* reader) {
TRACE_READ_OFFSET();
LocalInitializer* init = new LocalInitializer();
@@ -1353,13 +849,6 @@ LocalInitializer* LocalInitializer::ReadFromImpl(Reader* reader) {
}
-void LocalInitializer::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kLocalInitializer);
- variable_->WriteToImpl(writer);
-}
-
-
Expression* Expression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
uint8_t payload = 0;
@@ -1466,12 +955,6 @@ InvalidExpression* InvalidExpression::ReadFrom(Reader* reader) {
}
-void InvalidExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kInvalidExpression);
-}
-
-
VariableGet* VariableGet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
VariableGet* get = new VariableGet();
@@ -1491,21 +974,6 @@ VariableGet* VariableGet::ReadFrom(Reader* reader, uint8_t payload) {
}
-void VariableGet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- int index = writer->helper()->variables().Lookup(variable_);
- if ((index & kSpecializedPayloadMask) == index) {
- writer->WriteTag(kSpecializedVariableGet, static_cast<uint8_t>(index));
- writer->WritePosition(position_);
- } else {
- writer->WriteTag(kVariableGet);
- writer->WritePosition(position_);
- writer->WriteUInt(index);
- writer->WriteOptional<DartType>(NULL);
- }
-}
-
-
VariableSet* VariableSet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
VariableSet* set = new VariableSet();
@@ -1526,21 +994,6 @@ VariableSet* VariableSet::ReadFrom(Reader* reader, uint8_t payload) {
}
-void VariableSet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- int index = writer->helper()->variables().Lookup(variable_);
- if ((index & kSpecializedPayloadMask) == index) {
- writer->WriteTag(kSpecializedVariableSet, static_cast<uint8_t>(index));
- writer->WritePosition(position_);
- } else {
- writer->WriteTag(kVariableSet);
- writer->WritePosition(position_);
- writer->WriteUInt(index);
- }
- expression_->WriteTo(writer);
-}
-
-
PropertyGet* PropertyGet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
PropertyGet* get = new PropertyGet();
@@ -1552,16 +1005,6 @@ PropertyGet* PropertyGet::ReadFrom(Reader* reader) {
}
-void PropertyGet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kPropertyGet);
- writer->WritePosition(position_);
- receiver_->WriteTo(writer);
- name_->WriteTo(writer);
- Reference::WriteMemberTo(writer, interfaceTarget_, true);
-}
-
-
PropertySet* PropertySet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
PropertySet* set = new PropertySet();
@@ -1574,17 +1017,6 @@ PropertySet* PropertySet::ReadFrom(Reader* reader) {
}
-void PropertySet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kPropertySet);
- writer->WritePosition(position_);
- receiver_->WriteTo(writer);
- name_->WriteTo(writer);
- value_->WriteTo(writer);
- Reference::WriteMemberTo(writer, interfaceTarget_, true);
-}
-
-
DirectPropertyGet* DirectPropertyGet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
DirectPropertyGet* get = new DirectPropertyGet();
@@ -1594,14 +1026,6 @@ DirectPropertyGet* DirectPropertyGet::ReadFrom(Reader* reader) {
}
-void DirectPropertyGet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kDirectPropertyGet);
- receiver_->WriteTo(writer);
- Reference::WriteMemberTo(writer, target_);
-}
-
-
DirectPropertySet* DirectPropertySet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
DirectPropertySet* set = new DirectPropertySet();
@@ -1612,15 +1036,6 @@ DirectPropertySet* DirectPropertySet::ReadFrom(Reader* reader) {
}
-void DirectPropertySet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kDirectPropertySet);
- receiver_->WriteTo(writer);
- Reference::WriteMemberTo(writer, target_);
- value_->WriteTo(writer);
-}
-
-
StaticGet* StaticGet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
StaticGet* get = new StaticGet();
@@ -1630,14 +1045,6 @@ StaticGet* StaticGet::ReadFrom(Reader* reader) {
}
-void StaticGet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kStaticGet);
- writer->WritePosition(position_);
- Reference::WriteMemberTo(writer, target_);
-}
-
-
StaticSet* StaticSet::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
StaticSet* set = new StaticSet();
@@ -1647,14 +1054,6 @@ StaticSet* StaticSet::ReadFrom(Reader* reader) {
}
-void StaticSet::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kStaticSet);
- Reference::WriteMemberTo(writer, target_);
- expression_->WriteTo(writer);
-}
-
-
Arguments* Arguments::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Arguments* arguments = new Arguments();
@@ -1665,14 +1064,6 @@ Arguments* Arguments::ReadFrom(Reader* reader) {
}
-void Arguments::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- types().WriteTo(writer);
- positional().WriteTo(writer);
- named().WriteTo(writer);
-}
-
-
NamedExpression* NamedExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
String* name = Reference::ReadStringFrom(reader);
@@ -1681,13 +1072,6 @@ NamedExpression* NamedExpression::ReadFrom(Reader* reader) {
}
-void NamedExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- name_->WriteTo(writer);
- expression_->WriteTo(writer);
-}
-
-
MethodInvocation* MethodInvocation::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
MethodInvocation* invocation = new MethodInvocation();
@@ -1700,17 +1084,6 @@ MethodInvocation* MethodInvocation::ReadFrom(Reader* reader) {
}
-void MethodInvocation::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kMethodInvocation);
- writer->WritePosition(position_);
- receiver_->WriteTo(writer);
- name_->WriteTo(writer);
- arguments_->WriteTo(writer);
- Reference::WriteMemberTo(writer, interfaceTarget_, true);
-}
-
-
DirectMethodInvocation* DirectMethodInvocation::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
DirectMethodInvocation* invocation = new DirectMethodInvocation();
@@ -1721,15 +1094,6 @@ DirectMethodInvocation* DirectMethodInvocation::ReadFrom(Reader* reader) {
}
-void DirectMethodInvocation::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kDirectMethodInvocation);
- receiver_->WriteTo(writer);
- Reference::WriteMemberTo(writer, target_);
- arguments_->WriteTo(writer);
-}
-
-
StaticInvocation* StaticInvocation::ReadFrom(Reader* reader, bool is_const) {
TRACE_READ_OFFSET();
StaticInvocation* invocation = new StaticInvocation();
@@ -1741,15 +1105,6 @@ StaticInvocation* StaticInvocation::ReadFrom(Reader* reader, bool is_const) {
}
-void StaticInvocation::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(is_const_ ? kConstStaticInvocation : kStaticInvocation);
- writer->WritePosition(position_);
- Reference::WriteMemberTo(writer, procedure_);
- arguments_->WriteTo(writer);
-}
-
-
ConstructorInvocation* ConstructorInvocation::ReadFrom(Reader* reader,
bool is_const) {
TRACE_READ_OFFSET();
@@ -1762,16 +1117,6 @@ ConstructorInvocation* ConstructorInvocation::ReadFrom(Reader* reader,
}
-void ConstructorInvocation::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(is_const_ ? kConstConstructorInvocation
- : kConstructorInvocation);
- writer->WritePosition(position_);
- Reference::WriteMemberTo(writer, target_);
- arguments_->WriteTo(writer);
-}
-
-
Not* Not::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Not* n = new Not();
@@ -1780,13 +1125,6 @@ Not* Not::ReadFrom(Reader* reader) {
}
-void Not::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kNot);
- expression_->WriteTo(writer);
-}
-
-
LogicalExpression* LogicalExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
LogicalExpression* expr = new LogicalExpression();
@@ -1797,15 +1135,6 @@ LogicalExpression* LogicalExpression::ReadFrom(Reader* reader) {
}
-void LogicalExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kLogicalExpression);
- left_->WriteTo(writer);
- writer->WriteByte(operator_);
- right_->WriteTo(writer);
-}
-
-
ConditionalExpression* ConditionalExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
ConditionalExpression* expr = new ConditionalExpression();
@@ -1817,16 +1146,6 @@ ConditionalExpression* ConditionalExpression::ReadFrom(Reader* reader) {
}
-void ConditionalExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kConditionalExpression);
- condition_->WriteTo(writer);
- then_->WriteTo(writer);
- otherwise_->WriteTo(writer);
- writer->WriteOptional<DartType>(NULL); // Unused static type.
-}
-
-
StringConcatenation* StringConcatenation::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
StringConcatenation* concat = new StringConcatenation();
@@ -1836,14 +1155,6 @@ StringConcatenation* StringConcatenation::ReadFrom(Reader* reader) {
}
-void StringConcatenation::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kStringConcatenation);
- writer->WritePosition(position_);
- expressions_.WriteTo(writer);
-}
-
-
IsExpression* IsExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
IsExpression* expr = new IsExpression();
@@ -1854,15 +1165,6 @@ IsExpression* IsExpression::ReadFrom(Reader* reader) {
}
-void IsExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kIsExpression);
- writer->WritePosition(position_);
- operand_->WriteTo(writer);
- type_->WriteTo(writer);
-}
-
-
AsExpression* AsExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
AsExpression* expr = new AsExpression();
@@ -1872,40 +1174,18 @@ AsExpression* AsExpression::ReadFrom(Reader* reader) {
}
-void AsExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kAsExpression);
- operand_->WriteTo(writer);
- type_->WriteTo(writer);
-}
-
-
StringLiteral* StringLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new StringLiteral(Reference::ReadStringFrom(reader));
}
-void StringLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kStringLiteral);
- value_->WriteTo(writer);
-}
-
-
BigintLiteral* BigintLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new BigintLiteral(Reference::ReadStringFrom(reader));
}
-void BigintLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kBigIntLiteral);
- value_->WriteTo(writer);
-}
-
-
IntLiteral* IntLiteral::ReadFrom(Reader* reader, bool is_negative) {
TRACE_READ_OFFSET();
IntLiteral* literal = new IntLiteral();
@@ -1923,18 +1203,6 @@ IntLiteral* IntLiteral::ReadFrom(Reader* reader, uint8_t payload) {
}
-void IntLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- int64_t payload = value_ + SpecializedIntLiteralBias;
- if ((payload & kSpecializedPayloadMask) == payload) {
- writer->WriteTag(kSpecialIntLiteral, static_cast<uint8_t>(payload));
- } else {
- writer->WriteTag(value_ < 0 ? kNegativeIntLiteral : kPositiveIntLiteral);
- writer->WriteUInt(static_cast<uint32_t>(value_ < 0 ? -value_ : value_));
- }
-}
-
-
DoubleLiteral* DoubleLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
DoubleLiteral* literal = new DoubleLiteral();
@@ -1943,13 +1211,6 @@ DoubleLiteral* DoubleLiteral::ReadFrom(Reader* reader) {
}
-void DoubleLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kDoubleLiteral);
- value_->WriteTo(writer);
-}
-
-
BoolLiteral* BoolLiteral::ReadFrom(Reader* reader, bool value) {
TRACE_READ_OFFSET();
BoolLiteral* lit = new BoolLiteral();
@@ -1958,24 +1219,12 @@ BoolLiteral* BoolLiteral::ReadFrom(Reader* reader, bool value) {
}
-void BoolLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(value_ ? kTrueLiteral : kFalseLiteral);
-}
-
-
NullLiteral* NullLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new NullLiteral();
}
-void NullLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kNullLiteral);
-}
-
-
SymbolLiteral* SymbolLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
SymbolLiteral* lit = new SymbolLiteral();
@@ -1984,13 +1233,6 @@ SymbolLiteral* SymbolLiteral::ReadFrom(Reader* reader) {
}
-void SymbolLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kSymbolLiteral);
- value_->WriteTo(writer);
-}
-
-
TypeLiteral* TypeLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
TypeLiteral* literal = new TypeLiteral();
@@ -1999,37 +1241,18 @@ TypeLiteral* TypeLiteral::ReadFrom(Reader* reader) {
}
-void TypeLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kTypeLiteral);
- type_->WriteTo(writer);
-}
-
-
ThisExpression* ThisExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new ThisExpression();
}
-void ThisExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kThisExpression);
-}
-
-
Rethrow* Rethrow::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new Rethrow();
}
-void Rethrow::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kRethrow);
-}
-
-
Throw* Throw::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Throw* t = new Throw();
@@ -2039,14 +1262,6 @@ Throw* Throw::ReadFrom(Reader* reader) {
}
-void Throw::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kThrow);
- writer->WritePosition(position_);
- expression_->WriteTo(writer);
-}
-
-
ListLiteral* ListLiteral::ReadFrom(Reader* reader, bool is_const) {
TRACE_READ_OFFSET();
ListLiteral* literal = new ListLiteral();
@@ -2057,14 +1272,6 @@ ListLiteral* ListLiteral::ReadFrom(Reader* reader, bool is_const) {
}
-void ListLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(is_const_ ? kConstListLiteral : kListLiteral);
- type_->WriteTo(writer);
- expressions_.WriteTo(writer);
-}
-
-
MapLiteral* MapLiteral::ReadFrom(Reader* reader, bool is_const) {
TRACE_READ_OFFSET();
MapLiteral* literal = new MapLiteral();
@@ -2077,16 +1284,6 @@ MapLiteral* MapLiteral::ReadFrom(Reader* reader, bool is_const) {
}
-void MapLiteral::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(is_const_ ? kConstMapLiteral : kMapLiteral);
- writer->WritePosition(position_);
- key_type_->WriteTo(writer);
- value_type_->WriteTo(writer);
- entries_.WriteTo(writer);
-}
-
-
MapEntry* MapEntry::ReadFrom(Reader* reader) {
MapEntry* entry = new MapEntry();
entry->key_ = Expression::ReadFrom(reader);
@@ -2095,13 +1292,6 @@ MapEntry* MapEntry::ReadFrom(Reader* reader) {
}
-void MapEntry::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- key_->WriteTo(writer);
- value_->WriteTo(writer);
-}
-
-
AwaitExpression* AwaitExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
AwaitExpression* await = new AwaitExpression();
@@ -2110,13 +1300,6 @@ AwaitExpression* AwaitExpression::ReadFrom(Reader* reader) {
}
-void AwaitExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kAwaitExpression);
- operand_->WriteTo(writer);
-}
-
-
FunctionExpression* FunctionExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
VariableScope<ReaderHelper> parameters(reader->helper());
@@ -2126,14 +1309,6 @@ FunctionExpression* FunctionExpression::ReadFrom(Reader* reader) {
}
-void FunctionExpression::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- VariableScope<WriterHelper> parameters(writer->helper());
- writer->WriteTag(kFunctionExpression);
- function_->WriteTo(writer);
-}
-
-
Let* Let::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
VariableScope<ReaderHelper> vars(reader->helper());
@@ -2144,15 +1319,6 @@ Let* Let::ReadFrom(Reader* reader) {
}
-void Let::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- VariableScope<WriterHelper> vars(writer->helper());
- writer->WriteTag(kLet);
- variable_->WriteToImpl(writer);
- body_->WriteTo(writer);
-}
-
-
Statement* Statement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Tag tag = reader->ReadTag();
@@ -2212,25 +1378,12 @@ InvalidStatement* InvalidStatement::ReadFrom(Reader* reader) {
}
-void InvalidStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kInvalidStatement);
-}
-
-
ExpressionStatement* ExpressionStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new ExpressionStatement(Expression::ReadFrom(reader));
}
-void ExpressionStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kExpressionStatement);
- expression_->WriteTo(writer);
-}
-
-
Block* Block::ReadFromImpl(Reader* reader) {
TRACE_READ_OFFSET();
VariableScope<ReaderHelper> vars(reader->helper());
@@ -2240,31 +1393,12 @@ Block* Block::ReadFromImpl(Reader* reader) {
}
-void Block::WriteTo(Writer* writer) {
- writer->WriteTag(kBlock);
- WriteToImpl(writer);
-}
-
-
-void Block::WriteToImpl(Writer* writer) {
- TRACE_WRITE_OFFSET();
- VariableScope<WriterHelper> vars(writer->helper());
- statements_.WriteTo(writer);
-}
-
-
EmptyStatement* EmptyStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new EmptyStatement();
}
-void EmptyStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kEmptyStatement);
-}
-
-
AssertStatement* AssertStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
AssertStatement* stmt = new AssertStatement();
@@ -2274,14 +1408,6 @@ AssertStatement* AssertStatement::ReadFrom(Reader* reader) {
}
-void AssertStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kAssertStatement);
- condition_->WriteTo(writer);
- writer->WriteOptional<Expression>(message_);
-}
-
-
LabeledStatement* LabeledStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
LabeledStatement* stmt = new LabeledStatement();
@@ -2292,15 +1418,6 @@ LabeledStatement* LabeledStatement::ReadFrom(Reader* reader) {
}
-void LabeledStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kLabeledStatement);
- writer->helper()->labels()->Push(this);
- body_->WriteTo(writer);
- writer->helper()->labels()->Pop(this);
-}
-
-
BreakStatement* BreakStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
BreakStatement* stmt = new BreakStatement();
@@ -2309,13 +1426,6 @@ BreakStatement* BreakStatement::ReadFrom(Reader* reader) {
}
-void BreakStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kBreakStatement);
- writer->WriteUInt(writer->helper()->labels()->Lookup(target_));
-}
-
-
WhileStatement* WhileStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
WhileStatement* stmt = new WhileStatement();
@@ -2325,14 +1435,6 @@ WhileStatement* WhileStatement::ReadFrom(Reader* reader) {
}
-void WhileStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kWhileStatement);
- condition_->WriteTo(writer);
- body_->WriteTo(writer);
-}
-
-
DoStatement* DoStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
DoStatement* dostmt = new DoStatement();
@@ -2342,14 +1444,6 @@ DoStatement* DoStatement::ReadFrom(Reader* reader) {
}
-void DoStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kDoStatement);
- body_->WriteTo(writer);
- condition_->WriteTo(writer);
-}
-
-
ForStatement* ForStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
VariableScope<ReaderHelper> vars(reader->helper());
@@ -2362,17 +1456,6 @@ ForStatement* ForStatement::ReadFrom(Reader* reader) {
}
-void ForStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kForStatement);
- VariableScope<WriterHelper> vars(writer->helper());
- variables_.WriteToStatic<VariableDeclarationImpl>(writer);
- writer->WriteOptional<Expression>(condition_);
- updates_.WriteTo(writer);
- body_->WriteTo(writer);
-}
-
-
ForInStatement* ForInStatement::ReadFrom(Reader* reader, bool is_async) {
TRACE_READ_OFFSET();
VariableScope<ReaderHelper> vars(reader->helper());
@@ -2385,16 +1468,6 @@ ForInStatement* ForInStatement::ReadFrom(Reader* reader, bool is_async) {
}
-void ForInStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(is_async_ ? kAsyncForInStatement : kForInStatement);
- VariableScope<WriterHelper> vars(writer->helper());
- variable_->WriteToImpl(writer);
- iterable_->WriteTo(writer);
- body_->WriteTo(writer);
-}
-
-
SwitchStatement* SwitchStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
SwitchCaseScope<ReaderHelper> scope(reader->helper());
@@ -2416,18 +1489,6 @@ SwitchStatement* SwitchStatement::ReadFrom(Reader* reader) {
}
-void SwitchStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- SwitchCaseScope<WriterHelper> scope(writer->helper());
- writer->WriteTag(kSwitchStatement);
- condition_->WriteTo(writer);
- for (int i = 0; i < cases_.length(); i++) {
- writer->helper()->switch_cases().Push(cases_[i]);
- }
- cases_.WriteTo(writer);
-}
-
-
SwitchCase* SwitchCase::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
expressions_.ReadFromStatic<Expression>(reader);
@@ -2437,14 +1498,6 @@ SwitchCase* SwitchCase::ReadFrom(Reader* reader) {
}
-void SwitchCase::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- expressions_.WriteTo(writer);
- writer->WriteBool(is_default_);
- body_->WriteTo(writer);
-}
-
-
ContinueSwitchStatement* ContinueSwitchStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
ContinueSwitchStatement* stmt = new ContinueSwitchStatement();
@@ -2453,13 +1506,6 @@ ContinueSwitchStatement* ContinueSwitchStatement::ReadFrom(Reader* reader) {
}
-void ContinueSwitchStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kContinueSwitchStatement);
- writer->WriteUInt(writer->helper()->switch_cases().Lookup(target_));
-}
-
-
IfStatement* IfStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
IfStatement* ifstmt = new IfStatement();
@@ -2470,15 +1516,6 @@ IfStatement* IfStatement::ReadFrom(Reader* reader) {
}
-void IfStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kIfStatement);
- condition_->WriteTo(writer);
- then_->WriteTo(writer);
- otherwise_->WriteTo(writer);
-}
-
-
ReturnStatement* ReturnStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
ReturnStatement* ret = new ReturnStatement();
@@ -2488,14 +1525,6 @@ ReturnStatement* ReturnStatement::ReadFrom(Reader* reader) {
}
-void ReturnStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kReturnStatement);
- writer->WritePosition(position_);
- writer->WriteOptional<Expression>(expression_);
-}
-
-
TryCatch* TryCatch::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
TryCatch* tc = new TryCatch();
@@ -2505,14 +1534,6 @@ TryCatch* TryCatch::ReadFrom(Reader* reader) {
}
-void TryCatch::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kTryCatch);
- body_->WriteTo(writer);
- catches_.WriteTo(writer);
-}
-
-
Catch* Catch::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
VariableScope<ReaderHelper> vars(reader->helper());
@@ -2527,18 +1548,6 @@ Catch* Catch::ReadFrom(Reader* reader) {
}
-void Catch::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- VariableScope<WriterHelper> vars(writer->helper());
- guard_->WriteTo(writer);
- writer->WriteOptionalStatic<VariableDeclaration, VariableDeclarationImpl>(
- exception_);
- writer->WriteOptionalStatic<VariableDeclaration, VariableDeclarationImpl>(
- stack_trace_);
- body_->WriteTo(writer);
-}
-
-
TryFinally* TryFinally::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
TryFinally* tf = new TryFinally();
@@ -2548,14 +1557,6 @@ TryFinally* TryFinally::ReadFrom(Reader* reader) {
}
-void TryFinally::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kTryFinally);
- body_->WriteTo(writer);
- finalizer_->WriteTo(writer);
-}
-
-
YieldStatement* YieldStatement::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
YieldStatement* stmt = new YieldStatement();
@@ -2566,15 +1567,6 @@ YieldStatement* YieldStatement::ReadFrom(Reader* reader) {
}
-void YieldStatement::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kYieldStatement);
- writer->WritePosition(position_);
- writer->WriteByte(flags_);
- expression_->WriteTo(writer);
-}
-
-
VariableDeclaration* VariableDeclaration::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Tag tag = reader->ReadTag();
@@ -2597,25 +1589,6 @@ VariableDeclaration* VariableDeclaration::ReadFromImpl(Reader* reader) {
}
-void VariableDeclaration::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kVariableDeclaration);
- WriteToImpl(writer);
-}
-
-
-void VariableDeclaration::WriteToImpl(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WritePosition(position_);
- writer->WriteFlags(flags_);
- name_->WriteTo(writer);
- type_->WriteTo(writer);
- writer->WriteOptional<InferredValue>(inferred_value_);
- writer->WriteOptional<Expression>(initializer_);
- writer->helper()->variables().Push(this);
-}
-
-
FunctionDeclaration* FunctionDeclaration::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
FunctionDeclaration* decl = new FunctionDeclaration();
@@ -2627,16 +1600,6 @@ FunctionDeclaration* FunctionDeclaration::ReadFrom(Reader* reader) {
}
-void FunctionDeclaration::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kFunctionDeclaration);
- writer->WritePosition(position_);
- variable_->WriteToImpl(writer);
- VariableScope<WriterHelper> parameters(writer->helper());
- function_->WriteTo(writer);
-}
-
-
Name* Name::ReadFrom(Reader* reader) {
String* string = Reference::ReadStringFrom(reader);
if (string->size() >= 1 && string->buffer()[0] == '_') {
@@ -2651,17 +1614,6 @@ Name* Name::ReadFrom(Reader* reader) {
}
-void Name::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- string_->WriteTo(writer);
- Library* library = library_;
- bool is_private = library != NULL;
- if (is_private) {
- writer->WriteUInt(writer->helper()->libraries().Lookup(library_));
- }
-}
-
-
InferredValue* InferredValue::ReadFrom(Reader* reader) {
InferredValue* type = new InferredValue();
type->klass_ = Reference::ReadClassFrom(reader, true);
@@ -2671,13 +1623,6 @@ InferredValue* InferredValue::ReadFrom(Reader* reader) {
}
-void InferredValue::WriteTo(Writer* writer) {
- Reference::WriteClassTo(writer, klass_, true);
- writer->WriteByte(static_cast<uint8_t>(kind_));
- writer->WriteByte(value_bits_);
-}
-
-
DartType* DartType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Tag tag = reader->ReadTag();
@@ -2712,36 +1657,18 @@ InvalidType* InvalidType::ReadFrom(Reader* reader) {
}
-void InvalidType::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kInvalidType);
-}
-
-
DynamicType* DynamicType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new DynamicType();
}
-void DynamicType::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kDynamicType);
-}
-
-
VoidType* VoidType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
return new VoidType();
}
-void VoidType::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kVoidType);
-}
-
-
InterfaceType* InterfaceType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
Class* klass = Reference::ReadClassFrom(reader);
@@ -2761,19 +1688,6 @@ InterfaceType* InterfaceType::ReadFrom(Reader* reader,
}
-void InterfaceType::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- if (type_arguments_.length() == 0) {
- writer->WriteTag(kSimpleInterfaceType);
- Reference::WriteClassTo(writer, klass_);
- } else {
- writer->WriteTag(kInterfaceType);
- Reference::WriteClassTo(writer, klass_);
- type_arguments_.WriteTo(writer);
- }
-}
-
-
FunctionType* FunctionType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
FunctionType* type = new FunctionType();
@@ -2798,28 +1712,6 @@ FunctionType* FunctionType::ReadFrom(Reader* reader, bool _is_simple_) {
}
-void FunctionType::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
-
- bool is_simple =
- positional_parameters_.length() == required_parameter_count_ &&
- type_parameters_.length() == 0 && named_parameters_.length() == 0;
- if (is_simple) {
- writer->WriteTag(kSimpleFunctionType);
- positional_parameters_.WriteTo(writer);
- return_type_->WriteTo(writer);
- } else {
- TypeParameterScope<WriterHelper> scope(writer->helper());
- writer->WriteTag(kFunctionType);
- type_parameters_.WriteTo(writer);
- writer->WriteUInt(required_parameter_count_);
- positional_parameters_.WriteTo(writer);
- named_parameters_.WriteTo(writer);
- return_type_->WriteTo(writer);
- }
-}
-
-
TypeParameterType* TypeParameterType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
TypeParameterType* type = new TypeParameterType();
@@ -2829,13 +1721,6 @@ TypeParameterType* TypeParameterType::ReadFrom(Reader* reader) {
}
-void TypeParameterType::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- writer->WriteTag(kTypeParameterType);
- writer->WriteUInt(writer->helper()->type_parameters().Lookup(parameter_));
-}
-
-
Program* Program::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
uint32_t magic = reader->ReadUInt32();
@@ -2860,24 +1745,6 @@ Program* Program::ReadFrom(Reader* reader) {
}
-void Program::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
-
- writer->helper()->SetProgram(this);
-
- writer->WriteUInt32(kMagicProgramFile);
-
- // NOTE: Currently we don't GC strings and we require that all referenced
- // strings in nodes are present in [string_table_].
- string_table_.WriteTo(writer);
- source_uri_table_.WriteTo(writer);
- source_table_.WriteTo(writer);
-
- libraries_.WriteTo(writer);
- Reference::WriteMemberTo(writer, main_method_);
-}
-
-
FunctionNode* FunctionNode::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
TypeParameterScope<ReaderHelper> scope(reader->helper());
@@ -2904,28 +1771,6 @@ FunctionNode* FunctionNode::ReadFrom(Reader* reader) {
}
-void FunctionNode::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- TypeParameterScope<WriterHelper> scope(writer->helper());
-
- writer->WritePosition(position_);
- writer->WritePosition(end_position_);
- writer->WriteByte(static_cast<uint8_t>(async_marker_));
- writer->WriteByte(debuggable_ ? 1 : 0);
- type_parameters().WriteTo(writer);
- writer->WriteUInt(required_parameter_count());
- positional_parameters().WriteToStatic<VariableDeclarationImpl>(writer);
- named_parameters().WriteToStatic<VariableDeclarationImpl>(writer);
- return_type_->WriteTo(writer);
- writer->WriteOptional<InferredValue>(inferred_return_value_);
-
- LabelScope<WriterHelper, BlockMap<LabeledStatement> > labels(
- writer->helper());
- VariableScope<WriterHelper> vars(writer->helper());
- writer->WriteOptional<Statement>(body_);
-}
-
-
TypeParameter* TypeParameter::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
name_ = Reference::ReadStringFrom(reader);
@@ -2934,13 +1779,6 @@ TypeParameter* TypeParameter::ReadFrom(Reader* reader) {
}
-void TypeParameter::WriteTo(Writer* writer) {
- TRACE_WRITE_OFFSET();
- name_->WriteTo(writer);
- bound_->WriteTo(writer);
-}
-
-
} // namespace kernel
@@ -2951,13 +1789,5 @@ kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer,
}
-void WritePrecompiledKernel(ByteWriter* byte_writer, kernel::Program* program) {
- ASSERT(byte_writer != NULL);
-
- kernel::Writer writer(byte_writer);
- program->WriteTo(&writer);
-}
-
-
} // namespace dart
#endif // !defined(DART_PRECOMPILED_RUNTIME)
« no previous file with comments | « runtime/vm/kernel.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698