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

Unified Diff: pkg/compiler/lib/src/kernel/element_map_impl.dart

Issue 2873113004: Add equivalence check of NativeData and InterceptorData (Closed)
Patch Set: Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/kernel/element_map_impl.dart
diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
index 9b2170441b3d297402eaec147936b855f2ef4c91..9444d5505621e3afcd68396d84855ffd5a6d21d8 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -1323,3 +1323,53 @@ class WorldDeconstructionForTesting {
mixedInType.classNode, mixedInType.typeArguments);
}
}
+
+class KernelNativeMemberResolver extends NativeMemberResolverBase {
+ final KernelToElementMapImpl elementMap;
+ final NativeBasicData nativeBasicData;
+ final NativeDataBuilder nativeDataBuilder;
+
+ KernelNativeMemberResolver(
+ this.elementMap, this.nativeBasicData, this.nativeDataBuilder);
+
+ @override
+ ElementEnvironment get elementEnvironment => elementMap.elementEnvironment;
+
+ @override
+ CommonElements get commonElements => elementMap.commonElements;
+
+ @override
+ native.NativeBehavior computeNativeFieldStoreBehavior(KField field) {
+ ir.Field node = elementMap._memberList[field.memberIndex].node;
+ return elementMap.getNativeBehaviorForFieldStore(node);
+ }
+
+ @override
+ native.NativeBehavior computeNativeFieldLoadBehavior(KField field,
+ {bool isJsInterop}) {
+ ir.Field node = elementMap._memberList[field.memberIndex].node;
+ return elementMap.getNativeBehaviorForFieldLoad(node,
+ isJsInterop: isJsInterop);
+ }
+
+ @override
+ native.NativeBehavior computeNativeMethodBehavior(KFunction function,
+ {bool isJsInterop}) {
+ ir.Member node = elementMap._memberList[function.memberIndex].node;
+ return elementMap.getNativeBehaviorForMethod(node,
+ isJsInterop: isJsInterop);
+ }
+
+ @override
+ bool isNativeMethod(KFunction function) {
+ ir.Member node = elementMap._memberList[function.memberIndex].node;
+ return node.isExternal &&
+ !elementMap.isForeignLibrary(node.enclosingLibrary);
+ }
+
+ @override
+ bool isJsInteropMember(MemberEntity element) {
+ // TODO(johnniwinther): Compute this.
+ return false;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698