| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 #if !defined(DART_PRECOMPILED_RUNTIME) | 4 #if !defined(DART_PRECOMPILED_RUNTIME) |
| 5 | 5 |
| 6 #include <map> | 6 #include <map> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "platform/globals.h" | 9 #include "platform/globals.h" |
| 10 #include "vm/flags.h" | 10 #include "vm/flags.h" |
| (...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 911 } | 911 } |
| 912 } | 912 } |
| 913 fields().WriteTo(writer); | 913 fields().WriteTo(writer); |
| 914 procedures().WriteTo(writer); | 914 procedures().WriteTo(writer); |
| 915 } | 915 } |
| 916 | 916 |
| 917 | 917 |
| 918 Class* Class::ReadFrom(Reader* reader) { | 918 Class* Class::ReadFrom(Reader* reader) { |
| 919 TRACE_READ_OFFSET(); | 919 TRACE_READ_OFFSET(); |
| 920 | 920 |
| 921 position_ = reader->ReadPosition(); |
| 921 is_abstract_ = reader->ReadBool(); | 922 is_abstract_ = reader->ReadBool(); |
| 922 name_ = Reference::ReadStringFrom(reader); | 923 name_ = Reference::ReadStringFrom(reader); |
| 923 source_uri_index_ = reader->ReadUInt(); | 924 source_uri_index_ = reader->ReadUInt(); |
| 924 annotations_.ReadFromStatic<Expression>(reader); | 925 annotations_.ReadFromStatic<Expression>(reader); |
| 925 | 926 |
| 926 return this; | 927 return this; |
| 927 } | 928 } |
| 928 | 929 |
| 929 | 930 |
| 930 void Class::WriteTo(Writer* writer) { | 931 void Class::WriteTo(Writer* writer) { |
| 931 TRACE_WRITE_OFFSET(); | 932 TRACE_WRITE_OFFSET(); |
| 933 writer->WritePosition(position_); |
| 932 writer->WriteBool(is_abstract_); | 934 writer->WriteBool(is_abstract_); |
| 933 name_->WriteTo(writer); | 935 name_->WriteTo(writer); |
| 934 writer->WriteUInt(source_uri_index_); | 936 writer->WriteUInt(source_uri_index_); |
| 935 annotations_.WriteTo(writer); | 937 annotations_.WriteTo(writer); |
| 936 } | 938 } |
| 937 | 939 |
| 938 | 940 |
| 939 NormalClass* NormalClass::ReadFrom(Reader* reader) { | 941 NormalClass* NormalClass::ReadFrom(Reader* reader) { |
| 940 TRACE_READ_OFFSET(); | 942 TRACE_READ_OFFSET(); |
| 941 Class::ReadFrom(reader); | 943 Class::ReadFrom(reader); |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1159 writer->WriteUInt(index); | 1161 writer->WriteUInt(index); |
| 1160 } | 1162 } |
| 1161 | 1163 |
| 1162 | 1164 |
| 1163 Field* Field::ReadFrom(Reader* reader) { | 1165 Field* Field::ReadFrom(Reader* reader) { |
| 1164 TRACE_READ_OFFSET(); | 1166 TRACE_READ_OFFSET(); |
| 1165 Tag tag = reader->ReadTag(); | 1167 Tag tag = reader->ReadTag(); |
| 1166 ASSERT(tag == kField); | 1168 ASSERT(tag == kField); |
| 1167 | 1169 |
| 1168 position_ = reader->ReadPosition(); | 1170 position_ = reader->ReadPosition(); |
| 1171 end_position_ = reader->ReadPosition(); |
| 1169 flags_ = reader->ReadFlags(); | 1172 flags_ = reader->ReadFlags(); |
| 1170 name_ = Name::ReadFrom(reader); | 1173 name_ = Name::ReadFrom(reader); |
| 1171 source_uri_index_ = reader->ReadUInt(); | 1174 source_uri_index_ = reader->ReadUInt(); |
| 1172 annotations_.ReadFromStatic<Expression>(reader); | 1175 annotations_.ReadFromStatic<Expression>(reader); |
| 1173 type_ = DartType::ReadFrom(reader); | 1176 type_ = DartType::ReadFrom(reader); |
| 1174 inferred_value_ = reader->ReadOptional<InferredValue>(); | 1177 inferred_value_ = reader->ReadOptional<InferredValue>(); |
| 1175 initializer_ = reader->ReadOptional<Expression>(); | 1178 initializer_ = reader->ReadOptional<Expression>(); |
| 1176 return this; | 1179 return this; |
| 1177 } | 1180 } |
| 1178 | 1181 |
| 1179 | 1182 |
| 1180 void Field::WriteTo(Writer* writer) { | 1183 void Field::WriteTo(Writer* writer) { |
| 1181 TRACE_WRITE_OFFSET(); | 1184 TRACE_WRITE_OFFSET(); |
| 1182 writer->WriteTag(kField); | 1185 writer->WriteTag(kField); |
| 1183 writer->WritePosition(position_); | 1186 writer->WritePosition(position_); |
| 1187 writer->WritePosition(end_position_); |
| 1184 writer->WriteFlags(flags_); | 1188 writer->WriteFlags(flags_); |
| 1185 name_->WriteTo(writer); | 1189 name_->WriteTo(writer); |
| 1186 writer->WriteUInt(source_uri_index_); | 1190 writer->WriteUInt(source_uri_index_); |
| 1187 annotations_.WriteTo(writer); | 1191 annotations_.WriteTo(writer); |
| 1188 type_->WriteTo(writer); | 1192 type_->WriteTo(writer); |
| 1189 writer->WriteOptional<InferredValue>(inferred_value_); | 1193 writer->WriteOptional<InferredValue>(inferred_value_); |
| 1190 writer->WriteOptional<Expression>(initializer_); | 1194 writer->WriteOptional<Expression>(initializer_); |
| 1191 } | 1195 } |
| 1192 | 1196 |
| 1193 | 1197 |
| 1194 Constructor* Constructor::ReadFrom(Reader* reader) { | 1198 Constructor* Constructor::ReadFrom(Reader* reader) { |
| 1195 TRACE_READ_OFFSET(); | 1199 TRACE_READ_OFFSET(); |
| 1196 Tag tag = reader->ReadTag(); | 1200 Tag tag = reader->ReadTag(); |
| 1197 ASSERT(tag == kConstructor); | 1201 ASSERT(tag == kConstructor); |
| 1198 | 1202 |
| 1199 VariableScope<ReaderHelper> parameters(reader->helper()); | 1203 VariableScope<ReaderHelper> parameters(reader->helper()); |
| 1204 position_ = reader->ReadPosition(); |
| 1205 end_position_ = reader->ReadPosition(); |
| 1200 flags_ = reader->ReadFlags(); | 1206 flags_ = reader->ReadFlags(); |
| 1201 name_ = Name::ReadFrom(reader); | 1207 name_ = Name::ReadFrom(reader); |
| 1202 annotations_.ReadFromStatic<Expression>(reader); | 1208 annotations_.ReadFromStatic<Expression>(reader); |
| 1203 function_ = FunctionNode::ReadFrom(reader); | 1209 function_ = FunctionNode::ReadFrom(reader); |
| 1204 initializers_.ReadFromStatic<Initializer>(reader); | 1210 initializers_.ReadFromStatic<Initializer>(reader); |
| 1205 return this; | 1211 return this; |
| 1206 } | 1212 } |
| 1207 | 1213 |
| 1208 | 1214 |
| 1209 void Constructor::WriteTo(Writer* writer) { | 1215 void Constructor::WriteTo(Writer* writer) { |
| 1210 TRACE_WRITE_OFFSET(); | 1216 TRACE_WRITE_OFFSET(); |
| 1211 writer->WriteTag(kConstructor); | 1217 writer->WriteTag(kConstructor); |
| 1212 | 1218 |
| 1219 writer->WritePosition(position_); |
| 1220 writer->WritePosition(end_position_); |
| 1213 VariableScope<WriterHelper> parameters(writer->helper()); | 1221 VariableScope<WriterHelper> parameters(writer->helper()); |
| 1214 writer->WriteFlags(flags_); | 1222 writer->WriteFlags(flags_); |
| 1215 name_->WriteTo(writer); | 1223 name_->WriteTo(writer); |
| 1216 annotations_.WriteTo(writer); | 1224 annotations_.WriteTo(writer); |
| 1217 function_->WriteTo(writer); | 1225 function_->WriteTo(writer); |
| 1218 initializers_.WriteTo(writer); | 1226 initializers_.WriteTo(writer); |
| 1219 } | 1227 } |
| 1220 | 1228 |
| 1221 | 1229 |
| 1222 Procedure* Procedure::ReadFrom(Reader* reader) { | 1230 Procedure* Procedure::ReadFrom(Reader* reader) { |
| 1223 TRACE_READ_OFFSET(); | 1231 TRACE_READ_OFFSET(); |
| 1224 Tag tag = reader->ReadTag(); | 1232 Tag tag = reader->ReadTag(); |
| 1225 ASSERT(tag == kProcedure); | 1233 ASSERT(tag == kProcedure); |
| 1226 | 1234 |
| 1227 VariableScope<ReaderHelper> parameters(reader->helper()); | 1235 VariableScope<ReaderHelper> parameters(reader->helper()); |
| 1236 position_ = reader->ReadPosition(); |
| 1237 end_position_ = reader->ReadPosition(); |
| 1228 kind_ = static_cast<ProcedureKind>(reader->ReadByte()); | 1238 kind_ = static_cast<ProcedureKind>(reader->ReadByte()); |
| 1229 flags_ = reader->ReadFlags(); | 1239 flags_ = reader->ReadFlags(); |
| 1230 name_ = Name::ReadFrom(reader); | 1240 name_ = Name::ReadFrom(reader); |
| 1231 source_uri_index_ = reader->ReadUInt(); | 1241 source_uri_index_ = reader->ReadUInt(); |
| 1232 annotations_.ReadFromStatic<Expression>(reader); | 1242 annotations_.ReadFromStatic<Expression>(reader); |
| 1233 function_ = reader->ReadOptional<FunctionNode>(); | 1243 function_ = reader->ReadOptional<FunctionNode>(); |
| 1234 return this; | 1244 return this; |
| 1235 } | 1245 } |
| 1236 | 1246 |
| 1237 | 1247 |
| 1238 void Procedure::WriteTo(Writer* writer) { | 1248 void Procedure::WriteTo(Writer* writer) { |
| 1239 TRACE_WRITE_OFFSET(); | 1249 TRACE_WRITE_OFFSET(); |
| 1240 writer->WriteTag(kProcedure); | 1250 writer->WriteTag(kProcedure); |
| 1241 | 1251 |
| 1252 writer->WritePosition(position_); |
| 1253 writer->WritePosition(end_position_); |
| 1242 VariableScope<WriterHelper> parameters(writer->helper()); | 1254 VariableScope<WriterHelper> parameters(writer->helper()); |
| 1243 writer->WriteByte(kind_); | 1255 writer->WriteByte(kind_); |
| 1244 writer->WriteFlags(flags_); | 1256 writer->WriteFlags(flags_); |
| 1245 name_->WriteTo(writer); | 1257 name_->WriteTo(writer); |
| 1246 writer->WriteUInt(source_uri_index_); | 1258 writer->WriteUInt(source_uri_index_); |
| 1247 annotations_.WriteTo(writer); | 1259 annotations_.WriteTo(writer); |
| 1248 writer->WriteOptional<FunctionNode>(function_); | 1260 writer->WriteOptional<FunctionNode>(function_); |
| 1249 } | 1261 } |
| 1250 | 1262 |
| 1251 | 1263 |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1456 | 1468 |
| 1457 void InvalidExpression::WriteTo(Writer* writer) { | 1469 void InvalidExpression::WriteTo(Writer* writer) { |
| 1458 TRACE_WRITE_OFFSET(); | 1470 TRACE_WRITE_OFFSET(); |
| 1459 writer->WriteTag(kInvalidExpression); | 1471 writer->WriteTag(kInvalidExpression); |
| 1460 } | 1472 } |
| 1461 | 1473 |
| 1462 | 1474 |
| 1463 VariableGet* VariableGet::ReadFrom(Reader* reader) { | 1475 VariableGet* VariableGet::ReadFrom(Reader* reader) { |
| 1464 TRACE_READ_OFFSET(); | 1476 TRACE_READ_OFFSET(); |
| 1465 VariableGet* get = new VariableGet(); | 1477 VariableGet* get = new VariableGet(); |
| 1478 get->position_ = reader->ReadPosition(); |
| 1466 get->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt()); | 1479 get->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt()); |
| 1467 reader->ReadOptional<DartType>(); // Unused promoted type. | 1480 reader->ReadOptional<DartType>(); // Unused promoted type. |
| 1468 return get; | 1481 return get; |
| 1469 } | 1482 } |
| 1470 | 1483 |
| 1471 | 1484 |
| 1472 VariableGet* VariableGet::ReadFrom(Reader* reader, uint8_t payload) { | 1485 VariableGet* VariableGet::ReadFrom(Reader* reader, uint8_t payload) { |
| 1473 TRACE_READ_OFFSET(); | 1486 TRACE_READ_OFFSET(); |
| 1474 VariableGet* get = new VariableGet(); | 1487 VariableGet* get = new VariableGet(); |
| 1488 get->position_ = reader->ReadPosition(); |
| 1475 get->variable_ = reader->helper()->variables().Lookup(payload); | 1489 get->variable_ = reader->helper()->variables().Lookup(payload); |
| 1476 return get; | 1490 return get; |
| 1477 } | 1491 } |
| 1478 | 1492 |
| 1479 | 1493 |
| 1480 void VariableGet::WriteTo(Writer* writer) { | 1494 void VariableGet::WriteTo(Writer* writer) { |
| 1481 TRACE_WRITE_OFFSET(); | 1495 TRACE_WRITE_OFFSET(); |
| 1482 int index = writer->helper()->variables().Lookup(variable_); | 1496 int index = writer->helper()->variables().Lookup(variable_); |
| 1483 if ((index & kSpecializedPayloadMask) == index) { | 1497 if ((index & kSpecializedPayloadMask) == index) { |
| 1484 writer->WriteTag(kSpecializedVariableGet, static_cast<uint8_t>(index)); | 1498 writer->WriteTag(kSpecializedVariableGet, static_cast<uint8_t>(index)); |
| 1499 writer->WritePosition(position_); |
| 1485 } else { | 1500 } else { |
| 1486 writer->WriteTag(kVariableGet); | 1501 writer->WriteTag(kVariableGet); |
| 1502 writer->WritePosition(position_); |
| 1487 writer->WriteUInt(index); | 1503 writer->WriteUInt(index); |
| 1488 writer->WriteOptional<DartType>(NULL); | 1504 writer->WriteOptional<DartType>(NULL); |
| 1489 } | 1505 } |
| 1490 } | 1506 } |
| 1491 | 1507 |
| 1492 | 1508 |
| 1493 VariableSet* VariableSet::ReadFrom(Reader* reader) { | 1509 VariableSet* VariableSet::ReadFrom(Reader* reader) { |
| 1494 TRACE_READ_OFFSET(); | 1510 TRACE_READ_OFFSET(); |
| 1495 VariableSet* set = new VariableSet(); | 1511 VariableSet* set = new VariableSet(); |
| 1512 set->position_ = reader->ReadPosition(); |
| 1496 set->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt()); | 1513 set->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt()); |
| 1497 set->expression_ = Expression::ReadFrom(reader); | 1514 set->expression_ = Expression::ReadFrom(reader); |
| 1498 return set; | 1515 return set; |
| 1499 } | 1516 } |
| 1500 | 1517 |
| 1501 | 1518 |
| 1502 VariableSet* VariableSet::ReadFrom(Reader* reader, uint8_t payload) { | 1519 VariableSet* VariableSet::ReadFrom(Reader* reader, uint8_t payload) { |
| 1503 TRACE_READ_OFFSET(); | 1520 TRACE_READ_OFFSET(); |
| 1504 VariableSet* set = new VariableSet(); | 1521 VariableSet* set = new VariableSet(); |
| 1505 set->variable_ = reader->helper()->variables().Lookup(payload); | 1522 set->variable_ = reader->helper()->variables().Lookup(payload); |
| 1523 set->position_ = reader->ReadPosition(); |
| 1506 set->expression_ = Expression::ReadFrom(reader); | 1524 set->expression_ = Expression::ReadFrom(reader); |
| 1507 return set; | 1525 return set; |
| 1508 } | 1526 } |
| 1509 | 1527 |
| 1510 | 1528 |
| 1511 void VariableSet::WriteTo(Writer* writer) { | 1529 void VariableSet::WriteTo(Writer* writer) { |
| 1512 TRACE_WRITE_OFFSET(); | 1530 TRACE_WRITE_OFFSET(); |
| 1513 int index = writer->helper()->variables().Lookup(variable_); | 1531 int index = writer->helper()->variables().Lookup(variable_); |
| 1514 if ((index & kSpecializedPayloadMask) == index) { | 1532 if ((index & kSpecializedPayloadMask) == index) { |
| 1515 writer->WriteTag(kSpecializedVariableSet, static_cast<uint8_t>(index)); | 1533 writer->WriteTag(kSpecializedVariableSet, static_cast<uint8_t>(index)); |
| 1534 writer->WritePosition(position_); |
| 1516 } else { | 1535 } else { |
| 1517 writer->WriteTag(kVariableSet); | 1536 writer->WriteTag(kVariableSet); |
| 1537 writer->WritePosition(position_); |
| 1518 writer->WriteUInt(index); | 1538 writer->WriteUInt(index); |
| 1519 } | 1539 } |
| 1520 expression_->WriteTo(writer); | 1540 expression_->WriteTo(writer); |
| 1521 } | 1541 } |
| 1522 | 1542 |
| 1523 | 1543 |
| 1524 PropertyGet* PropertyGet::ReadFrom(Reader* reader) { | 1544 PropertyGet* PropertyGet::ReadFrom(Reader* reader) { |
| 1525 TRACE_READ_OFFSET(); | 1545 TRACE_READ_OFFSET(); |
| 1526 PropertyGet* get = new PropertyGet(); | 1546 PropertyGet* get = new PropertyGet(); |
| 1527 get->position_ = reader->ReadPosition(); | 1547 get->position_ = reader->ReadPosition(); |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1803 condition_->WriteTo(writer); | 1823 condition_->WriteTo(writer); |
| 1804 then_->WriteTo(writer); | 1824 then_->WriteTo(writer); |
| 1805 otherwise_->WriteTo(writer); | 1825 otherwise_->WriteTo(writer); |
| 1806 writer->WriteOptional<DartType>(NULL); // Unused static type. | 1826 writer->WriteOptional<DartType>(NULL); // Unused static type. |
| 1807 } | 1827 } |
| 1808 | 1828 |
| 1809 | 1829 |
| 1810 StringConcatenation* StringConcatenation::ReadFrom(Reader* reader) { | 1830 StringConcatenation* StringConcatenation::ReadFrom(Reader* reader) { |
| 1811 TRACE_READ_OFFSET(); | 1831 TRACE_READ_OFFSET(); |
| 1812 StringConcatenation* concat = new StringConcatenation(); | 1832 StringConcatenation* concat = new StringConcatenation(); |
| 1833 concat->position_ = reader->ReadPosition(); |
| 1813 concat->expressions_.ReadFromStatic<Expression>(reader); | 1834 concat->expressions_.ReadFromStatic<Expression>(reader); |
| 1814 return concat; | 1835 return concat; |
| 1815 } | 1836 } |
| 1816 | 1837 |
| 1817 | 1838 |
| 1818 void StringConcatenation::WriteTo(Writer* writer) { | 1839 void StringConcatenation::WriteTo(Writer* writer) { |
| 1819 TRACE_WRITE_OFFSET(); | 1840 TRACE_WRITE_OFFSET(); |
| 1820 writer->WriteTag(kStringConcatenation); | 1841 writer->WriteTag(kStringConcatenation); |
| 1842 writer->WritePosition(position_); |
| 1821 expressions_.WriteTo(writer); | 1843 expressions_.WriteTo(writer); |
| 1822 } | 1844 } |
| 1823 | 1845 |
| 1824 | 1846 |
| 1825 IsExpression* IsExpression::ReadFrom(Reader* reader) { | 1847 IsExpression* IsExpression::ReadFrom(Reader* reader) { |
| 1826 TRACE_READ_OFFSET(); | 1848 TRACE_READ_OFFSET(); |
| 1827 IsExpression* expr = new IsExpression(); | 1849 IsExpression* expr = new IsExpression(); |
| 1850 expr->position_ = reader->ReadPosition(); |
| 1828 expr->operand_ = Expression::ReadFrom(reader); | 1851 expr->operand_ = Expression::ReadFrom(reader); |
| 1829 expr->type_ = DartType::ReadFrom(reader); | 1852 expr->type_ = DartType::ReadFrom(reader); |
| 1830 return expr; | 1853 return expr; |
| 1831 } | 1854 } |
| 1832 | 1855 |
| 1833 | 1856 |
| 1834 void IsExpression::WriteTo(Writer* writer) { | 1857 void IsExpression::WriteTo(Writer* writer) { |
| 1835 TRACE_WRITE_OFFSET(); | 1858 TRACE_WRITE_OFFSET(); |
| 1836 writer->WriteTag(kIsExpression); | 1859 writer->WriteTag(kIsExpression); |
| 1860 writer->WritePosition(position_); |
| 1837 operand_->WriteTo(writer); | 1861 operand_->WriteTo(writer); |
| 1838 type_->WriteTo(writer); | 1862 type_->WriteTo(writer); |
| 1839 } | 1863 } |
| 1840 | 1864 |
| 1841 | 1865 |
| 1842 AsExpression* AsExpression::ReadFrom(Reader* reader) { | 1866 AsExpression* AsExpression::ReadFrom(Reader* reader) { |
| 1843 TRACE_READ_OFFSET(); | 1867 TRACE_READ_OFFSET(); |
| 1844 AsExpression* expr = new AsExpression(); | 1868 AsExpression* expr = new AsExpression(); |
| 1845 expr->operand_ = Expression::ReadFrom(reader); | 1869 expr->operand_ = Expression::ReadFrom(reader); |
| 1846 expr->type_ = DartType::ReadFrom(reader); | 1870 expr->type_ = DartType::ReadFrom(reader); |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2038 writer->WriteTag(is_const_ ? kConstListLiteral : kListLiteral); | 2062 writer->WriteTag(is_const_ ? kConstListLiteral : kListLiteral); |
| 2039 type_->WriteTo(writer); | 2063 type_->WriteTo(writer); |
| 2040 expressions_.WriteTo(writer); | 2064 expressions_.WriteTo(writer); |
| 2041 } | 2065 } |
| 2042 | 2066 |
| 2043 | 2067 |
| 2044 MapLiteral* MapLiteral::ReadFrom(Reader* reader, bool is_const) { | 2068 MapLiteral* MapLiteral::ReadFrom(Reader* reader, bool is_const) { |
| 2045 TRACE_READ_OFFSET(); | 2069 TRACE_READ_OFFSET(); |
| 2046 MapLiteral* literal = new MapLiteral(); | 2070 MapLiteral* literal = new MapLiteral(); |
| 2047 literal->is_const_ = is_const; | 2071 literal->is_const_ = is_const; |
| 2072 literal->position_ = reader->ReadPosition(); |
| 2048 literal->key_type_ = DartType::ReadFrom(reader); | 2073 literal->key_type_ = DartType::ReadFrom(reader); |
| 2049 literal->value_type_ = DartType::ReadFrom(reader); | 2074 literal->value_type_ = DartType::ReadFrom(reader); |
| 2050 literal->entries_.ReadFromStatic<MapEntry>(reader); | 2075 literal->entries_.ReadFromStatic<MapEntry>(reader); |
| 2051 return literal; | 2076 return literal; |
| 2052 } | 2077 } |
| 2053 | 2078 |
| 2054 | 2079 |
| 2055 void MapLiteral::WriteTo(Writer* writer) { | 2080 void MapLiteral::WriteTo(Writer* writer) { |
| 2056 TRACE_WRITE_OFFSET(); | 2081 TRACE_WRITE_OFFSET(); |
| 2057 writer->WriteTag(is_const_ ? kConstMapLiteral : kMapLiteral); | 2082 writer->WriteTag(is_const_ ? kConstMapLiteral : kMapLiteral); |
| 2083 writer->WritePosition(position_); |
| 2058 key_type_->WriteTo(writer); | 2084 key_type_->WriteTo(writer); |
| 2059 value_type_->WriteTo(writer); | 2085 value_type_->WriteTo(writer); |
| 2060 entries_.WriteTo(writer); | 2086 entries_.WriteTo(writer); |
| 2061 } | 2087 } |
| 2062 | 2088 |
| 2063 | 2089 |
| 2064 MapEntry* MapEntry::ReadFrom(Reader* reader) { | 2090 MapEntry* MapEntry::ReadFrom(Reader* reader) { |
| 2065 MapEntry* entry = new MapEntry(); | 2091 MapEntry* entry = new MapEntry(); |
| 2066 entry->key_ = Expression::ReadFrom(reader); | 2092 entry->key_ = Expression::ReadFrom(reader); |
| 2067 entry->value_ = Expression::ReadFrom(reader); | 2093 entry->value_ = Expression::ReadFrom(reader); |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2449 writer->WriteTag(kIfStatement); | 2475 writer->WriteTag(kIfStatement); |
| 2450 condition_->WriteTo(writer); | 2476 condition_->WriteTo(writer); |
| 2451 then_->WriteTo(writer); | 2477 then_->WriteTo(writer); |
| 2452 otherwise_->WriteTo(writer); | 2478 otherwise_->WriteTo(writer); |
| 2453 } | 2479 } |
| 2454 | 2480 |
| 2455 | 2481 |
| 2456 ReturnStatement* ReturnStatement::ReadFrom(Reader* reader) { | 2482 ReturnStatement* ReturnStatement::ReadFrom(Reader* reader) { |
| 2457 TRACE_READ_OFFSET(); | 2483 TRACE_READ_OFFSET(); |
| 2458 ReturnStatement* ret = new ReturnStatement(); | 2484 ReturnStatement* ret = new ReturnStatement(); |
| 2485 ret->position_ = reader->ReadPosition(); |
| 2459 ret->expression_ = reader->ReadOptional<Expression>(); | 2486 ret->expression_ = reader->ReadOptional<Expression>(); |
| 2460 return ret; | 2487 return ret; |
| 2461 } | 2488 } |
| 2462 | 2489 |
| 2463 | 2490 |
| 2464 void ReturnStatement::WriteTo(Writer* writer) { | 2491 void ReturnStatement::WriteTo(Writer* writer) { |
| 2465 TRACE_WRITE_OFFSET(); | 2492 TRACE_WRITE_OFFSET(); |
| 2466 writer->WriteTag(kReturnStatement); | 2493 writer->WriteTag(kReturnStatement); |
| 2494 writer->WritePosition(position_); |
| 2467 writer->WriteOptional<Expression>(expression_); | 2495 writer->WriteOptional<Expression>(expression_); |
| 2468 } | 2496 } |
| 2469 | 2497 |
| 2470 | 2498 |
| 2471 TryCatch* TryCatch::ReadFrom(Reader* reader) { | 2499 TryCatch* TryCatch::ReadFrom(Reader* reader) { |
| 2472 TRACE_READ_OFFSET(); | 2500 TRACE_READ_OFFSET(); |
| 2473 TryCatch* tc = new TryCatch(); | 2501 TryCatch* tc = new TryCatch(); |
| 2474 tc->body_ = Statement::ReadFrom(reader); | 2502 tc->body_ = Statement::ReadFrom(reader); |
| 2475 tc->catches_.ReadFromStatic<Catch>(reader); | 2503 tc->catches_.ReadFromStatic<Catch>(reader); |
| 2476 return tc; | 2504 return tc; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2524 TRACE_WRITE_OFFSET(); | 2552 TRACE_WRITE_OFFSET(); |
| 2525 writer->WriteTag(kTryFinally); | 2553 writer->WriteTag(kTryFinally); |
| 2526 body_->WriteTo(writer); | 2554 body_->WriteTo(writer); |
| 2527 finalizer_->WriteTo(writer); | 2555 finalizer_->WriteTo(writer); |
| 2528 } | 2556 } |
| 2529 | 2557 |
| 2530 | 2558 |
| 2531 YieldStatement* YieldStatement::ReadFrom(Reader* reader) { | 2559 YieldStatement* YieldStatement::ReadFrom(Reader* reader) { |
| 2532 TRACE_READ_OFFSET(); | 2560 TRACE_READ_OFFSET(); |
| 2533 YieldStatement* stmt = new YieldStatement(); | 2561 YieldStatement* stmt = new YieldStatement(); |
| 2562 stmt->position_ = reader->ReadPosition(); |
| 2534 stmt->flags_ = reader->ReadByte(); | 2563 stmt->flags_ = reader->ReadByte(); |
| 2535 stmt->expression_ = Expression::ReadFrom(reader); | 2564 stmt->expression_ = Expression::ReadFrom(reader); |
| 2536 return stmt; | 2565 return stmt; |
| 2537 } | 2566 } |
| 2538 | 2567 |
| 2539 | 2568 |
| 2540 void YieldStatement::WriteTo(Writer* writer) { | 2569 void YieldStatement::WriteTo(Writer* writer) { |
| 2541 TRACE_WRITE_OFFSET(); | 2570 TRACE_WRITE_OFFSET(); |
| 2542 writer->WriteTag(kYieldStatement); | 2571 writer->WriteTag(kYieldStatement); |
| 2572 writer->WritePosition(position_); |
| 2543 writer->WriteByte(flags_); | 2573 writer->WriteByte(flags_); |
| 2544 expression_->WriteTo(writer); | 2574 expression_->WriteTo(writer); |
| 2545 } | 2575 } |
| 2546 | 2576 |
| 2547 | 2577 |
| 2548 VariableDeclaration* VariableDeclaration::ReadFrom(Reader* reader) { | 2578 VariableDeclaration* VariableDeclaration::ReadFrom(Reader* reader) { |
| 2549 TRACE_READ_OFFSET(); | 2579 TRACE_READ_OFFSET(); |
| 2550 Tag tag = reader->ReadTag(); | 2580 Tag tag = reader->ReadTag(); |
| 2551 ASSERT(tag == kVariableDeclaration); | 2581 ASSERT(tag == kVariableDeclaration); |
| 2552 return VariableDeclaration::ReadFromImpl(reader); | 2582 return VariableDeclaration::ReadFromImpl(reader); |
| 2553 } | 2583 } |
| 2554 | 2584 |
| 2555 | 2585 |
| 2556 VariableDeclaration* VariableDeclaration::ReadFromImpl(Reader* reader) { | 2586 VariableDeclaration* VariableDeclaration::ReadFromImpl(Reader* reader) { |
| 2557 TRACE_READ_OFFSET(); | 2587 TRACE_READ_OFFSET(); |
| 2558 VariableDeclaration* decl = new VariableDeclaration(); | 2588 VariableDeclaration* decl = new VariableDeclaration(); |
| 2589 decl->position_ = reader->ReadPosition(); |
| 2559 decl->flags_ = reader->ReadFlags(); | 2590 decl->flags_ = reader->ReadFlags(); |
| 2560 decl->name_ = Reference::ReadStringFrom(reader); | 2591 decl->name_ = Reference::ReadStringFrom(reader); |
| 2561 decl->type_ = DartType::ReadFrom(reader); | 2592 decl->type_ = DartType::ReadFrom(reader); |
| 2562 decl->inferred_value_ = reader->ReadOptional<InferredValue>(); | 2593 decl->inferred_value_ = reader->ReadOptional<InferredValue>(); |
| 2563 decl->initializer_ = reader->ReadOptional<Expression>(); | 2594 decl->initializer_ = reader->ReadOptional<Expression>(); |
| 2564 reader->helper()->variables().Push(decl); | 2595 reader->helper()->variables().Push(decl); |
| 2565 return decl; | 2596 return decl; |
| 2566 } | 2597 } |
| 2567 | 2598 |
| 2568 | 2599 |
| 2569 void VariableDeclaration::WriteTo(Writer* writer) { | 2600 void VariableDeclaration::WriteTo(Writer* writer) { |
| 2570 TRACE_WRITE_OFFSET(); | 2601 TRACE_WRITE_OFFSET(); |
| 2571 writer->WriteTag(kVariableDeclaration); | 2602 writer->WriteTag(kVariableDeclaration); |
| 2572 WriteToImpl(writer); | 2603 WriteToImpl(writer); |
| 2573 } | 2604 } |
| 2574 | 2605 |
| 2575 | 2606 |
| 2576 void VariableDeclaration::WriteToImpl(Writer* writer) { | 2607 void VariableDeclaration::WriteToImpl(Writer* writer) { |
| 2577 TRACE_WRITE_OFFSET(); | 2608 TRACE_WRITE_OFFSET(); |
| 2609 writer->WritePosition(position_); |
| 2578 writer->WriteFlags(flags_); | 2610 writer->WriteFlags(flags_); |
| 2579 name_->WriteTo(writer); | 2611 name_->WriteTo(writer); |
| 2580 type_->WriteTo(writer); | 2612 type_->WriteTo(writer); |
| 2581 writer->WriteOptional<InferredValue>(inferred_value_); | 2613 writer->WriteOptional<InferredValue>(inferred_value_); |
| 2582 writer->WriteOptional<Expression>(initializer_); | 2614 writer->WriteOptional<Expression>(initializer_); |
| 2583 writer->helper()->variables().Push(this); | 2615 writer->helper()->variables().Push(this); |
| 2584 } | 2616 } |
| 2585 | 2617 |
| 2586 | 2618 |
| 2587 FunctionDeclaration* FunctionDeclaration::ReadFrom(Reader* reader) { | 2619 FunctionDeclaration* FunctionDeclaration::ReadFrom(Reader* reader) { |
| 2588 TRACE_READ_OFFSET(); | 2620 TRACE_READ_OFFSET(); |
| 2589 FunctionDeclaration* decl = new FunctionDeclaration(); | 2621 FunctionDeclaration* decl = new FunctionDeclaration(); |
| 2622 decl->position_ = reader->ReadPosition(); |
| 2590 decl->variable_ = VariableDeclaration::ReadFromImpl(reader); | 2623 decl->variable_ = VariableDeclaration::ReadFromImpl(reader); |
| 2591 VariableScope<ReaderHelper> parameters(reader->helper()); | 2624 VariableScope<ReaderHelper> parameters(reader->helper()); |
| 2592 decl->function_ = FunctionNode::ReadFrom(reader); | 2625 decl->function_ = FunctionNode::ReadFrom(reader); |
| 2593 return decl; | 2626 return decl; |
| 2594 } | 2627 } |
| 2595 | 2628 |
| 2596 | 2629 |
| 2597 void FunctionDeclaration::WriteTo(Writer* writer) { | 2630 void FunctionDeclaration::WriteTo(Writer* writer) { |
| 2598 TRACE_WRITE_OFFSET(); | 2631 TRACE_WRITE_OFFSET(); |
| 2599 writer->WriteTag(kFunctionDeclaration); | 2632 writer->WriteTag(kFunctionDeclaration); |
| 2633 writer->WritePosition(position_); |
| 2600 variable_->WriteToImpl(writer); | 2634 variable_->WriteToImpl(writer); |
| 2601 VariableScope<WriterHelper> parameters(writer->helper()); | 2635 VariableScope<WriterHelper> parameters(writer->helper()); |
| 2602 function_->WriteTo(writer); | 2636 function_->WriteTo(writer); |
| 2603 } | 2637 } |
| 2604 | 2638 |
| 2605 | 2639 |
| 2606 Name* Name::ReadFrom(Reader* reader) { | 2640 Name* Name::ReadFrom(Reader* reader) { |
| 2607 String* string = Reference::ReadStringFrom(reader); | 2641 String* string = Reference::ReadStringFrom(reader); |
| 2608 if (string->size() >= 1 && string->buffer()[0] == '_') { | 2642 if (string->size() >= 1 && string->buffer()[0] == '_') { |
| 2609 int lib_index = reader->ReadUInt(); | 2643 int lib_index = reader->ReadUInt(); |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2842 libraries_.WriteTo(writer); | 2876 libraries_.WriteTo(writer); |
| 2843 Reference::WriteMemberTo(writer, main_method_); | 2877 Reference::WriteMemberTo(writer, main_method_); |
| 2844 } | 2878 } |
| 2845 | 2879 |
| 2846 | 2880 |
| 2847 FunctionNode* FunctionNode::ReadFrom(Reader* reader) { | 2881 FunctionNode* FunctionNode::ReadFrom(Reader* reader) { |
| 2848 TRACE_READ_OFFSET(); | 2882 TRACE_READ_OFFSET(); |
| 2849 TypeParameterScope<ReaderHelper> scope(reader->helper()); | 2883 TypeParameterScope<ReaderHelper> scope(reader->helper()); |
| 2850 | 2884 |
| 2851 FunctionNode* function = new FunctionNode(); | 2885 FunctionNode* function = new FunctionNode(); |
| 2886 function->position_ = reader->ReadPosition(); |
| 2887 function->end_position_ = reader->ReadPosition(); |
| 2852 function->async_marker_ = | 2888 function->async_marker_ = |
| 2853 static_cast<FunctionNode::AsyncMarker>(reader->ReadByte()); | 2889 static_cast<FunctionNode::AsyncMarker>(reader->ReadByte()); |
| 2890 function->debuggable_ = reader->ReadByte() == 1 ? true : false; |
| 2854 function->type_parameters().ReadFrom(reader); | 2891 function->type_parameters().ReadFrom(reader); |
| 2855 function->required_parameter_count_ = reader->ReadUInt(); | 2892 function->required_parameter_count_ = reader->ReadUInt(); |
| 2856 function->positional_parameters().ReadFromStatic<VariableDeclarationImpl>( | 2893 function->positional_parameters().ReadFromStatic<VariableDeclarationImpl>( |
| 2857 reader); | 2894 reader); |
| 2858 function->named_parameters().ReadFromStatic<VariableDeclarationImpl>(reader); | 2895 function->named_parameters().ReadFromStatic<VariableDeclarationImpl>(reader); |
| 2859 function->return_type_ = DartType::ReadFrom(reader); | 2896 function->return_type_ = DartType::ReadFrom(reader); |
| 2860 function->inferred_return_value_ = reader->ReadOptional<InferredValue>(); | 2897 function->inferred_return_value_ = reader->ReadOptional<InferredValue>(); |
| 2861 | 2898 |
| 2862 LabelScope<ReaderHelper, BlockStack<LabeledStatement> > labels( | 2899 LabelScope<ReaderHelper, BlockStack<LabeledStatement> > labels( |
| 2863 reader->helper()); | 2900 reader->helper()); |
| 2864 VariableScope<ReaderHelper> vars(reader->helper()); | 2901 VariableScope<ReaderHelper> vars(reader->helper()); |
| 2865 function->body_ = reader->ReadOptional<Statement>(); | 2902 function->body_ = reader->ReadOptional<Statement>(); |
| 2866 return function; | 2903 return function; |
| 2867 } | 2904 } |
| 2868 | 2905 |
| 2869 | 2906 |
| 2870 void FunctionNode::WriteTo(Writer* writer) { | 2907 void FunctionNode::WriteTo(Writer* writer) { |
| 2871 TRACE_WRITE_OFFSET(); | 2908 TRACE_WRITE_OFFSET(); |
| 2872 TypeParameterScope<WriterHelper> scope(writer->helper()); | 2909 TypeParameterScope<WriterHelper> scope(writer->helper()); |
| 2873 | 2910 |
| 2911 writer->WritePosition(position_); |
| 2912 writer->WritePosition(end_position_); |
| 2874 writer->WriteByte(static_cast<uint8_t>(async_marker_)); | 2913 writer->WriteByte(static_cast<uint8_t>(async_marker_)); |
| 2914 writer->WriteByte(debuggable_ ? 1 : 0); |
| 2875 type_parameters().WriteTo(writer); | 2915 type_parameters().WriteTo(writer); |
| 2876 writer->WriteUInt(required_parameter_count()); | 2916 writer->WriteUInt(required_parameter_count()); |
| 2877 positional_parameters().WriteToStatic<VariableDeclarationImpl>(writer); | 2917 positional_parameters().WriteToStatic<VariableDeclarationImpl>(writer); |
| 2878 named_parameters().WriteToStatic<VariableDeclarationImpl>(writer); | 2918 named_parameters().WriteToStatic<VariableDeclarationImpl>(writer); |
| 2879 return_type_->WriteTo(writer); | 2919 return_type_->WriteTo(writer); |
| 2880 writer->WriteOptional<InferredValue>(inferred_return_value_); | 2920 writer->WriteOptional<InferredValue>(inferred_return_value_); |
| 2881 | 2921 |
| 2882 LabelScope<WriterHelper, BlockMap<LabeledStatement> > labels( | 2922 LabelScope<WriterHelper, BlockMap<LabeledStatement> > labels( |
| 2883 writer->helper()); | 2923 writer->helper()); |
| 2884 VariableScope<WriterHelper> vars(writer->helper()); | 2924 VariableScope<WriterHelper> vars(writer->helper()); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2914 void WritePrecompiledKernel(ByteWriter* byte_writer, kernel::Program* program) { | 2954 void WritePrecompiledKernel(ByteWriter* byte_writer, kernel::Program* program) { |
| 2915 ASSERT(byte_writer != NULL); | 2955 ASSERT(byte_writer != NULL); |
| 2916 | 2956 |
| 2917 kernel::Writer writer(byte_writer); | 2957 kernel::Writer writer(byte_writer); |
| 2918 program->WriteTo(&writer); | 2958 program->WriteTo(&writer); |
| 2919 } | 2959 } |
| 2920 | 2960 |
| 2921 | 2961 |
| 2922 } // namespace dart | 2962 } // namespace dart |
| 2923 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 2963 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
| OLD | NEW |