| 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 | 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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 _backend.compiler.frontendStrategy.nativeBasicData; | 58 _backend.compiler.frontendStrategy.nativeBasicData; |
| 59 NativeDataBuilderImpl get nativeData => _backend.nativeDataBuilder; | 59 NativeDataBuilderImpl get nativeData => _backend.nativeDataBuilder; |
| 60 | 60 |
| 61 @override | 61 @override |
| 62 void onElement(Element element, ObjectEncoder createEncoder(String tag)) { | 62 void onElement(Element element, ObjectEncoder createEncoder(String tag)) { |
| 63 ObjectEncoder encoder; | 63 ObjectEncoder encoder; |
| 64 ObjectEncoder getEncoder() { | 64 ObjectEncoder getEncoder() { |
| 65 return encoder ??= createEncoder(_BACKEND_DATA_TAG); | 65 return encoder ??= createEncoder(_BACKEND_DATA_TAG); |
| 66 } | 66 } |
| 67 | 67 |
| 68 String jsInteropLibraryName = nativeData.jsInteropLibraryNames[element]; | 68 String jsInteropLibraryName = nativeData.jsInteropLibraries[element]; |
| 69 if (jsInteropLibraryName != null) { | 69 if (jsInteropLibraryName != null) { |
| 70 getEncoder().setString(JS_INTEROP_LIBRARY_NAME, jsInteropLibraryName); | 70 getEncoder().setString(JS_INTEROP_LIBRARY_NAME, jsInteropLibraryName); |
| 71 } | 71 } |
| 72 String jsInteropClassName = nativeData.jsInteropClassNames[element]; | 72 String jsInteropClassName = nativeData.jsInteropClasses[element]; |
| 73 if (jsInteropClassName != null) { | 73 if (jsInteropClassName != null) { |
| 74 getEncoder().setString(JS_INTEROP_CLASS_NAME, jsInteropClassName); | 74 getEncoder().setString(JS_INTEROP_CLASS_NAME, jsInteropClassName); |
| 75 } | 75 } |
| 76 String jsInteropMemberName = nativeData.jsInteropMemberNames[element]; | 76 String jsInteropMemberName = nativeData.jsInteropMembers[element]; |
| 77 if (jsInteropMemberName != null) { | 77 if (jsInteropMemberName != null) { |
| 78 getEncoder().setString(JS_INTEROP_MEMBER_NAME, jsInteropMemberName); | 78 getEncoder().setString(JS_INTEROP_MEMBER_NAME, jsInteropMemberName); |
| 79 } | 79 } |
| 80 String nativeMemberName = nativeData.nativeMemberName[element]; | 80 String nativeMemberName = nativeData.nativeMemberName[element]; |
| 81 if (nativeMemberName != null) { | 81 if (nativeMemberName != null) { |
| 82 getEncoder().setString(NATIVE_MEMBER_NAME, nativeMemberName); | 82 getEncoder().setString(NATIVE_MEMBER_NAME, nativeMemberName); |
| 83 } | 83 } |
| 84 NativeClassTag nativeClassTagInfo = | 84 NativeClassTag nativeClassTagInfo = |
| 85 nativeBasicData.nativeClassTagInfo[element]; | 85 nativeBasicData.nativeClassTagInfo[element]; |
| 86 if (nativeClassTagInfo != null) { | 86 if (nativeClassTagInfo != null) { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 NativeDataBuilderImpl get nativeData => _backend.nativeDataBuilder; | 128 NativeDataBuilderImpl get nativeData => _backend.nativeDataBuilder; |
| 129 | 129 |
| 130 @override | 130 @override |
| 131 void onElement(Element element, ObjectDecoder getDecoder(String tag)) { | 131 void onElement(Element element, ObjectDecoder getDecoder(String tag)) { |
| 132 ObjectDecoder decoder = getDecoder(_BACKEND_DATA_TAG); | 132 ObjectDecoder decoder = getDecoder(_BACKEND_DATA_TAG); |
| 133 if (decoder != null) { | 133 if (decoder != null) { |
| 134 if (element is LibraryElement) { | 134 if (element is LibraryElement) { |
| 135 String jsInteropLibraryName = | 135 String jsInteropLibraryName = |
| 136 decoder.getString(JS_INTEROP_LIBRARY_NAME, isOptional: true); | 136 decoder.getString(JS_INTEROP_LIBRARY_NAME, isOptional: true); |
| 137 if (jsInteropLibraryName != null) { | 137 if (jsInteropLibraryName != null) { |
| 138 nativeData.jsInteropLibraryNames[element] = jsInteropLibraryName; | 138 nativeData.jsInteropLibraries[element] = jsInteropLibraryName; |
| 139 } | 139 } |
| 140 } else if (element is ClassElement) { | 140 } else if (element is ClassElement) { |
| 141 String jsInteropClassName = | 141 String jsInteropClassName = |
| 142 decoder.getString(JS_INTEROP_CLASS_NAME, isOptional: true); | 142 decoder.getString(JS_INTEROP_CLASS_NAME, isOptional: true); |
| 143 if (jsInteropClassName != null) { | 143 if (jsInteropClassName != null) { |
| 144 nativeData.jsInteropClassNames[element] = jsInteropClassName; | 144 nativeData.jsInteropClasses[element] = jsInteropClassName; |
| 145 } | 145 } |
| 146 String nativeClassTagInfo = | 146 String nativeClassTagInfo = |
| 147 decoder.getString(NATIVE_CLASS_TAG_INFO, isOptional: true); | 147 decoder.getString(NATIVE_CLASS_TAG_INFO, isOptional: true); |
| 148 if (nativeClassTagInfo != null) { | 148 if (nativeClassTagInfo != null) { |
| 149 nativeBasicData.nativeClassTagInfo[element] = | 149 nativeBasicData.nativeClassTagInfo[element] = |
| 150 new NativeClassTag(nativeClassTagInfo); | 150 new NativeClassTag(nativeClassTagInfo); |
| 151 } | 151 } |
| 152 } else if (element is MemberElement) { | 152 } else if (element is MemberElement) { |
| 153 String jsInteropMemberName = | 153 String jsInteropMemberName = |
| 154 decoder.getString(JS_INTEROP_MEMBER_NAME, isOptional: true); | 154 decoder.getString(JS_INTEROP_MEMBER_NAME, isOptional: true); |
| 155 if (jsInteropMemberName != null) { | 155 if (jsInteropMemberName != null) { |
| 156 nativeData.jsInteropMemberNames[element] = jsInteropMemberName; | 156 nativeData.jsInteropMembers[element] = jsInteropMemberName; |
| 157 } | 157 } |
| 158 String nativeMemberName = | 158 String nativeMemberName = |
| 159 decoder.getString(NATIVE_MEMBER_NAME, isOptional: true); | 159 decoder.getString(NATIVE_MEMBER_NAME, isOptional: true); |
| 160 if (nativeMemberName != null) { | 160 if (nativeMemberName != null) { |
| 161 nativeData.nativeMemberName[element] = nativeMemberName; | 161 nativeData.nativeMemberName[element] = nativeMemberName; |
| 162 } | 162 } |
| 163 | 163 |
| 164 if (element is MethodElement) { | 164 if (element is MethodElement) { |
| 165 ObjectDecoder nativeMethodBehavior = | 165 ObjectDecoder nativeMethodBehavior = |
| 166 decoder.getObject(NATIVE_METHOD_BEHAVIOR, isOptional: true); | 166 decoder.getObject(NATIVE_METHOD_BEHAVIOR, isOptional: true); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 behavior.codeTemplate = js.js.parseForeignJS(behavior.codeTemplateText); | 294 behavior.codeTemplate = js.js.parseForeignJS(behavior.codeTemplateText); |
| 295 } | 295 } |
| 296 | 296 |
| 297 behavior.throwBehavior = | 297 behavior.throwBehavior = |
| 298 decoder.getEnum(THROW_BEHAVIOR, NativeThrowBehavior.values); | 298 decoder.getEnum(THROW_BEHAVIOR, NativeThrowBehavior.values); |
| 299 behavior.isAllocation = decoder.getBool(IS_ALLOCATION); | 299 behavior.isAllocation = decoder.getBool(IS_ALLOCATION); |
| 300 behavior.useGvn = decoder.getBool(USE_GVN); | 300 behavior.useGvn = decoder.getBool(USE_GVN); |
| 301 return behavior; | 301 return behavior; |
| 302 } | 302 } |
| 303 } | 303 } |
| OLD | NEW |