| 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 1354b9ec833a275d4cd7062e10a05e394e9961b7..60cf714f5d1d063b31ad182ff5f7243c6dd5afe9 100644
|
| --- a/pkg/compiler/lib/src/js_backend/backend_serialization.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/backend_serialization.dart
|
| @@ -34,12 +34,9 @@ class JavaScriptBackendSerialization implements BackendSerialization {
|
| final JavaScriptBackendSerializer serializer;
|
| final JavaScriptBackendDeserializer deserializer;
|
|
|
| - JavaScriptBackendSerialization(
|
| - NativeBasicData nativeBaseData, NativeData nativeData)
|
| - : serializer =
|
| - new JavaScriptBackendSerializer(nativeBaseData, nativeData),
|
| - deserializer =
|
| - new JavaScriptBackendDeserializer(nativeBaseData, nativeData);
|
| + JavaScriptBackendSerialization(JavaScriptBackend backend)
|
| + : serializer = new JavaScriptBackendSerializer(backend),
|
| + deserializer = new JavaScriptBackendDeserializer(backend);
|
| }
|
|
|
| const Key JS_INTEROP_LIBRARY_NAME = const Key('jsInteropLibraryName');
|
| @@ -52,10 +49,12 @@ const Key NATIVE_FIELD_LOAD_BEHAVIOR = const Key('nativeFieldLoadBehavior');
|
| const Key NATIVE_FIELD_STORE_BEHAVIOR = const Key('nativeFieldStoreBehavior');
|
|
|
| class JavaScriptBackendSerializer implements SerializerPlugin {
|
| - final NativeBasicDataImpl nativeBaseData;
|
| - final NativeDataImpl nativeData;
|
| + final JavaScriptBackend _backend;
|
|
|
| - JavaScriptBackendSerializer(this.nativeBaseData, this.nativeData);
|
| + JavaScriptBackendSerializer(this._backend);
|
| +
|
| + NativeBasicDataImpl get nativeBasicData => _backend.nativeBasicData;
|
| + NativeDataImpl get nativeData => _backend.nativeData;
|
|
|
| @override
|
| void onElement(Element element, ObjectEncoder createEncoder(String tag)) {
|
| @@ -81,7 +80,7 @@ class JavaScriptBackendSerializer implements SerializerPlugin {
|
| getEncoder().setString(NATIVE_MEMBER_NAME, nativeMemberName);
|
| }
|
| NativeClassTag nativeClassTagInfo =
|
| - nativeBaseData.nativeClassTagInfo[element];
|
| + nativeBasicData.nativeClassTagInfo[element];
|
| if (nativeClassTagInfo != null) {
|
| getEncoder().setString(NATIVE_CLASS_TAG_INFO, nativeClassTagInfo.text);
|
| }
|
| @@ -114,10 +113,13 @@ class JavaScriptBackendSerializer implements SerializerPlugin {
|
| }
|
|
|
| class JavaScriptBackendDeserializer implements DeserializerPlugin {
|
| - final NativeBasicDataImpl nativeBaseData;
|
| - final NativeDataImpl nativeData;
|
| + final JavaScriptBackend _backend;
|
| +
|
| + JavaScriptBackendDeserializer(this._backend);
|
|
|
| - JavaScriptBackendDeserializer(this.nativeBaseData, this.nativeData);
|
| + NativeBasicDataBuilderImpl get nativeBasicData =>
|
| + _backend.nativeBasicDataBuilder;
|
| + NativeDataImpl get nativeData => _backend.nativeData;
|
|
|
| @override
|
| void onElement(Element element, ObjectDecoder getDecoder(String tag)) {
|
| @@ -138,7 +140,7 @@ class JavaScriptBackendDeserializer implements DeserializerPlugin {
|
| String nativeClassTagInfo =
|
| decoder.getString(NATIVE_CLASS_TAG_INFO, isOptional: true);
|
| if (nativeClassTagInfo != null) {
|
| - nativeBaseData.nativeClassTagInfo[element] =
|
| + nativeBasicData.nativeClassTagInfo[element] =
|
| new NativeClassTag(nativeClassTagInfo);
|
| }
|
| } else if (element is MemberElement) {
|
|
|