| Index: pkg/compiler/lib/src/js_backend/backend_serialization.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/backend_serialization.dart b/pkg/compiler/lib/src/js_backend/backend_serialization.dart
|
| index eacdf1bcdf311e2a3bc5a4a27675e48fe6d2f453..eb4bd6da55b8811f2e3688f99c6fb158ca9dc434 100644
|
| --- a/pkg/compiler/lib/src/js_backend/backend_serialization.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/backend_serialization.dart
|
| @@ -117,50 +117,59 @@ class JavaScriptBackendDeserializer implements DeserializerPlugin {
|
| void onElement(Element element, ObjectDecoder getDecoder(String tag)) {
|
| ObjectDecoder decoder = getDecoder(_BACKEND_DATA_TAG);
|
| if (decoder != null) {
|
| - String jsInteropLibraryName =
|
| - decoder.getString(JS_INTEROP_LIBRARY_NAME, isOptional: true);
|
| - if (jsInteropLibraryName != null) {
|
| - nativeData.jsInteropLibraryNames[element] = jsInteropLibraryName;
|
| - }
|
| - String jsInteropClassName =
|
| - decoder.getString(JS_INTEROP_CLASS_NAME, isOptional: true);
|
| - if (jsInteropClassName != null) {
|
| - nativeData.jsInteropClassNames[element] = jsInteropClassName;
|
| - }
|
| - String jsInteropMemberName =
|
| - decoder.getString(JS_INTEROP_MEMBER_NAME, isOptional: true);
|
| - if (jsInteropMemberName != null) {
|
| - nativeData.jsInteropMemberNames[element] = jsInteropMemberName;
|
| - }
|
| - String nativeMemberName =
|
| - decoder.getString(NATIVE_MEMBER_NAME, isOptional: true);
|
| - if (nativeMemberName != null) {
|
| - nativeData.nativeMemberName[element] = nativeMemberName;
|
| - }
|
| - String nativeClassTagInfo =
|
| - decoder.getString(NATIVE_CLASS_TAG_INFO, isOptional: true);
|
| - if (nativeClassTagInfo != null) {
|
| - nativeData.nativeClassTagInfo[element] = nativeClassTagInfo;
|
| - }
|
| - ObjectDecoder nativeMethodBehavior =
|
| - decoder.getObject(NATIVE_METHOD_BEHAVIOR, isOptional: true);
|
| - if (nativeMethodBehavior != null) {
|
| - nativeData.nativeMethodBehavior[element] = NativeBehaviorSerialization
|
| - .deserializeNativeBehavior(nativeMethodBehavior);
|
| - }
|
| - ObjectDecoder nativeFieldLoadBehavior =
|
| - decoder.getObject(NATIVE_FIELD_LOAD_BEHAVIOR, isOptional: true);
|
| - if (nativeFieldLoadBehavior != null) {
|
| - nativeData.nativeFieldLoadBehavior[element] =
|
| - NativeBehaviorSerialization
|
| - .deserializeNativeBehavior(nativeFieldLoadBehavior);
|
| - }
|
| - ObjectDecoder nativeFieldStoreBehavior =
|
| - decoder.getObject(NATIVE_FIELD_STORE_BEHAVIOR, isOptional: true);
|
| - if (nativeFieldStoreBehavior != null) {
|
| - nativeData.nativeFieldStoreBehavior[element] =
|
| - NativeBehaviorSerialization
|
| - .deserializeNativeBehavior(nativeFieldStoreBehavior);
|
| + if (element is LibraryElement) {
|
| + String jsInteropLibraryName =
|
| + decoder.getString(JS_INTEROP_LIBRARY_NAME, isOptional: true);
|
| + if (jsInteropLibraryName != null) {
|
| + nativeData.jsInteropLibraryNames[element] = jsInteropLibraryName;
|
| + }
|
| + } else if (element is ClassElement) {
|
| + String jsInteropClassName =
|
| + decoder.getString(JS_INTEROP_CLASS_NAME, isOptional: true);
|
| + if (jsInteropClassName != null) {
|
| + nativeData.jsInteropClassNames[element] = jsInteropClassName;
|
| + }
|
| + String nativeClassTagInfo =
|
| + decoder.getString(NATIVE_CLASS_TAG_INFO, isOptional: true);
|
| + if (nativeClassTagInfo != null) {
|
| + nativeData.nativeClassTagInfo[element] = nativeClassTagInfo;
|
| + }
|
| + } else if (element is MemberElement) {
|
| + String jsInteropMemberName =
|
| + decoder.getString(JS_INTEROP_MEMBER_NAME, isOptional: true);
|
| + if (jsInteropMemberName != null) {
|
| + nativeData.jsInteropMemberNames[element] = jsInteropMemberName;
|
| + }
|
| + String nativeMemberName =
|
| + decoder.getString(NATIVE_MEMBER_NAME, isOptional: true);
|
| + if (nativeMemberName != null) {
|
| + nativeData.nativeMemberName[element] = nativeMemberName;
|
| + }
|
| +
|
| + if (element is MethodElement) {
|
| + ObjectDecoder nativeMethodBehavior =
|
| + decoder.getObject(NATIVE_METHOD_BEHAVIOR, isOptional: true);
|
| + if (nativeMethodBehavior != null) {
|
| + nativeData.nativeMethodBehavior[element] =
|
| + NativeBehaviorSerialization
|
| + .deserializeNativeBehavior(nativeMethodBehavior);
|
| + }
|
| + } else if (element is FieldElement) {
|
| + ObjectDecoder nativeFieldLoadBehavior =
|
| + decoder.getObject(NATIVE_FIELD_LOAD_BEHAVIOR, isOptional: true);
|
| + if (nativeFieldLoadBehavior != null) {
|
| + nativeData.nativeFieldLoadBehavior[element] =
|
| + NativeBehaviorSerialization
|
| + .deserializeNativeBehavior(nativeFieldLoadBehavior);
|
| + }
|
| + ObjectDecoder nativeFieldStoreBehavior =
|
| + decoder.getObject(NATIVE_FIELD_STORE_BEHAVIOR, isOptional: true);
|
| + if (nativeFieldStoreBehavior != null) {
|
| + nativeData.nativeFieldStoreBehavior[element] =
|
| + NativeBehaviorSerialization
|
| + .deserializeNativeBehavior(nativeFieldStoreBehavior);
|
| + }
|
| + }
|
| }
|
| }
|
| }
|
|
|