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

Side by Side Diff: pkg/compiler/lib/src/serialization/serialization.dart

Issue 1896843002: Store and serialize NativeBehavior in TreeElements. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 4
5 library dart2js.serialization; 5 library dart2js.serialization;
6 6
7 import '../elements/elements.dart'; 7 import '../elements/elements.dart';
8 import '../constants/expressions.dart'; 8 import '../constants/expressions.dart';
9 import '../dart_types.dart'; 9 import '../dart_types.dart';
10 import '../util/enumset.dart'; 10 import '../util/enumset.dart';
(...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 850
851 /// Plugin for serializing additional data for an [Element]. 851 /// Plugin for serializing additional data for an [Element].
852 class SerializerPlugin { 852 class SerializerPlugin {
853 const SerializerPlugin(); 853 const SerializerPlugin();
854 854
855 /// Called upon the serialization of [element]. 855 /// Called upon the serialization of [element].
856 /// 856 ///
857 /// Use [creatorEncoder] to create a data object with id [tag] for storing 857 /// Use [creatorEncoder] to create a data object with id [tag] for storing
858 /// additional data for [element]. 858 /// additional data for [element].
859 void onElement(Element element, ObjectEncoder createEncoder(String tag)) {} 859 void onElement(Element element, ObjectEncoder createEncoder(String tag)) {}
860
861 /// Called to serialize custom [data].
862 void onData(var data, ObjectEncoder encoder) {}
860 } 863 }
861 864
862 /// Plugin for deserializing additional data for an [Element]. 865 /// Plugin for deserializing additional data for an [Element].
863 class DeserializerPlugin { 866 class DeserializerPlugin {
864 const DeserializerPlugin(); 867 const DeserializerPlugin();
865 868
866 /// Called upon the deserialization of [element]. 869 /// Called upon the deserialization of [element].
867 /// 870 ///
868 /// Use [getDecoder] to retrieve the data object with id [tag] stored for 871 /// Use [getDecoder] to retrieve the data object with id [tag] stored for
869 /// [element]. If not object is stored for [tag], [getDecoder] returns `null`. 872 /// [element]. If not object is stored for [tag], [getDecoder] returns `null`.
870 void onElement(Element element, ObjectDecoder getDecoder(String tag)) {} 873 void onElement(Element element, ObjectDecoder getDecoder(String tag)) {}
874
875 /// Called to deserialize custom data from [decoder].
876 dynamic onData(ObjectDecoder decoder);
871 } 877 }
872 878
873 /// Context for parallel deserialization. 879 /// Context for parallel deserialization.
874 class DeserializationContext { 880 class DeserializationContext {
875 Map<Uri, LibraryElement> _uriMap = <Uri, LibraryElement>{}; 881 Map<Uri, LibraryElement> _uriMap = <Uri, LibraryElement>{};
876 List<Deserializer> deserializers = <Deserializer>[]; 882 List<Deserializer> deserializers = <Deserializer>[];
877 883
878 LibraryElement lookupLibrary(Uri uri) { 884 LibraryElement lookupLibrary(Uri uri) {
879 return _uriMap.putIfAbsent(uri, () { 885 return _uriMap.putIfAbsent(uri, () {
880 for (Deserializer deserializer in deserializers) { 886 for (Deserializer deserializer in deserializers) {
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 1040
1035 /// Returns the value used to store [key] as a property in the encoding an 1041 /// Returns the value used to store [key] as a property in the encoding an
1036 /// [ObjectValue]. 1042 /// [ObjectValue].
1037 /// 1043 ///
1038 /// Different encodings have different restrictions and capabilities as how 1044 /// Different encodings have different restrictions and capabilities as how
1039 /// to store a [Key] value. For instance: A JSON encoding needs to convert 1045 /// to store a [Key] value. For instance: A JSON encoding needs to convert
1040 /// [Key] to a [String] to store it in a JSON object; a Dart encoding can 1046 /// [Key] to a [String] to store it in a JSON object; a Dart encoding can
1041 /// choose to store a [Key] as an [int] or as the [Key] itself. 1047 /// choose to store a [Key] as an [int] or as the [Key] itself.
1042 getObjectPropertyValue(Key key); 1048 getObjectPropertyValue(Key key);
1043 } 1049 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/serialization/resolved_ast_serialization.dart ('k') | pkg/compiler/lib/src/ssa/builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698