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

Side by Side Diff: pkg/compiler/lib/src/js_backend/backend_serialization.dart

Issue 2731173002: Add ClassEntity.library, MemberEntity.library and FunctionEntity.isExternal (Closed)
Patch Set: Created 3 years, 9 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) 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 4
5 library js_backend.serialization; 5 library js_backend.serialization;
6 6
7 import '../common/backend_api.dart' show BackendSerialization; 7 import '../common/backend_api.dart' show BackendSerialization;
8 import '../elements/elements.dart'; 8 import '../elements/elements.dart';
9 import '../elements/resolution_types.dart'; 9 import '../elements/resolution_types.dart';
10 import '../elements/types.dart'; 10 import '../elements/types.dart';
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 110
111 class JavaScriptBackendDeserializer implements DeserializerPlugin { 111 class JavaScriptBackendDeserializer implements DeserializerPlugin {
112 final NativeDataImpl nativeData; 112 final NativeDataImpl nativeData;
113 113
114 JavaScriptBackendDeserializer(this.nativeData); 114 JavaScriptBackendDeserializer(this.nativeData);
115 115
116 @override 116 @override
117 void onElement(Element element, ObjectDecoder getDecoder(String tag)) { 117 void onElement(Element element, ObjectDecoder getDecoder(String tag)) {
118 ObjectDecoder decoder = getDecoder(_BACKEND_DATA_TAG); 118 ObjectDecoder decoder = getDecoder(_BACKEND_DATA_TAG);
119 if (decoder != null) { 119 if (decoder != null) {
120 String jsInteropLibraryName = 120 if (element is LibraryElement) {
121 decoder.getString(JS_INTEROP_LIBRARY_NAME, isOptional: true); 121 String jsInteropLibraryName =
122 if (jsInteropLibraryName != null) { 122 decoder.getString(JS_INTEROP_LIBRARY_NAME, isOptional: true);
123 nativeData.jsInteropLibraryNames[element] = jsInteropLibraryName; 123 if (jsInteropLibraryName != null) {
124 } 124 nativeData.jsInteropLibraryNames[element] = jsInteropLibraryName;
125 String jsInteropClassName = 125 }
126 decoder.getString(JS_INTEROP_CLASS_NAME, isOptional: true); 126 } else if (element is ClassElement) {
127 if (jsInteropClassName != null) { 127 String jsInteropClassName =
128 nativeData.jsInteropClassNames[element] = jsInteropClassName; 128 decoder.getString(JS_INTEROP_CLASS_NAME, isOptional: true);
129 } 129 if (jsInteropClassName != null) {
130 String jsInteropMemberName = 130 nativeData.jsInteropClassNames[element] = jsInteropClassName;
131 decoder.getString(JS_INTEROP_MEMBER_NAME, isOptional: true); 131 }
132 if (jsInteropMemberName != null) { 132 String nativeClassTagInfo =
133 nativeData.jsInteropMemberNames[element] = jsInteropMemberName; 133 decoder.getString(NATIVE_CLASS_TAG_INFO, isOptional: true);
134 } 134 if (nativeClassTagInfo != null) {
135 String nativeMemberName = 135 nativeData.nativeClassTagInfo[element] = nativeClassTagInfo;
136 decoder.getString(NATIVE_MEMBER_NAME, isOptional: true); 136 }
137 if (nativeMemberName != null) { 137 } else if (element is MemberElement) {
138 nativeData.nativeMemberName[element] = nativeMemberName; 138 String jsInteropMemberName =
139 } 139 decoder.getString(JS_INTEROP_MEMBER_NAME, isOptional: true);
140 String nativeClassTagInfo = 140 if (jsInteropMemberName != null) {
141 decoder.getString(NATIVE_CLASS_TAG_INFO, isOptional: true); 141 nativeData.jsInteropMemberNames[element] = jsInteropMemberName;
142 if (nativeClassTagInfo != null) { 142 }
143 nativeData.nativeClassTagInfo[element] = nativeClassTagInfo; 143 String nativeMemberName =
144 } 144 decoder.getString(NATIVE_MEMBER_NAME, isOptional: true);
145 ObjectDecoder nativeMethodBehavior = 145 if (nativeMemberName != null) {
146 decoder.getObject(NATIVE_METHOD_BEHAVIOR, isOptional: true); 146 nativeData.nativeMemberName[element] = nativeMemberName;
147 if (nativeMethodBehavior != null) { 147 }
148 nativeData.nativeMethodBehavior[element] = NativeBehaviorSerialization 148
149 .deserializeNativeBehavior(nativeMethodBehavior); 149 if (element is MethodElement) {
150 } 150 ObjectDecoder nativeMethodBehavior =
151 ObjectDecoder nativeFieldLoadBehavior = 151 decoder.getObject(NATIVE_METHOD_BEHAVIOR, isOptional: true);
152 decoder.getObject(NATIVE_FIELD_LOAD_BEHAVIOR, isOptional: true); 152 if (nativeMethodBehavior != null) {
153 if (nativeFieldLoadBehavior != null) { 153 nativeData.nativeMethodBehavior[element] =
154 nativeData.nativeFieldLoadBehavior[element] = 154 NativeBehaviorSerialization
155 NativeBehaviorSerialization 155 .deserializeNativeBehavior(nativeMethodBehavior);
156 .deserializeNativeBehavior(nativeFieldLoadBehavior); 156 }
157 } 157 } else if (element is FieldElement) {
158 ObjectDecoder nativeFieldStoreBehavior = 158 ObjectDecoder nativeFieldLoadBehavior =
159 decoder.getObject(NATIVE_FIELD_STORE_BEHAVIOR, isOptional: true); 159 decoder.getObject(NATIVE_FIELD_LOAD_BEHAVIOR, isOptional: true);
160 if (nativeFieldStoreBehavior != null) { 160 if (nativeFieldLoadBehavior != null) {
161 nativeData.nativeFieldStoreBehavior[element] = 161 nativeData.nativeFieldLoadBehavior[element] =
162 NativeBehaviorSerialization 162 NativeBehaviorSerialization
163 .deserializeNativeBehavior(nativeFieldStoreBehavior); 163 .deserializeNativeBehavior(nativeFieldLoadBehavior);
164 }
165 ObjectDecoder nativeFieldStoreBehavior =
166 decoder.getObject(NATIVE_FIELD_STORE_BEHAVIOR, isOptional: true);
167 if (nativeFieldStoreBehavior != null) {
168 nativeData.nativeFieldStoreBehavior[element] =
169 NativeBehaviorSerialization
170 .deserializeNativeBehavior(nativeFieldStoreBehavior);
171 }
172 }
164 } 173 }
165 } 174 }
166 } 175 }
167 176
168 @override 177 @override
169 NativeBehavior onData(ObjectDecoder decoder) { 178 NativeBehavior onData(ObjectDecoder decoder) {
170 return NativeBehaviorSerialization.deserializeNativeBehavior(decoder); 179 return NativeBehaviorSerialization.deserializeNativeBehavior(decoder);
171 } 180 }
172 } 181 }
173 182
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 behavior.codeTemplate = js.js.parseForeignJS(behavior.codeTemplateText); 279 behavior.codeTemplate = js.js.parseForeignJS(behavior.codeTemplateText);
271 } 280 }
272 281
273 behavior.throwBehavior = 282 behavior.throwBehavior =
274 decoder.getEnum(THROW_BEHAVIOR, NativeThrowBehavior.values); 283 decoder.getEnum(THROW_BEHAVIOR, NativeThrowBehavior.values);
275 behavior.isAllocation = decoder.getBool(IS_ALLOCATION); 284 behavior.isAllocation = decoder.getBool(IS_ALLOCATION);
276 behavior.useGvn = decoder.getBool(USE_GVN); 285 behavior.useGvn = decoder.getBool(USE_GVN);
277 return behavior; 286 return behavior;
278 } 287 }
279 } 288 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698