Index: sdk/lib/_internal/compiler/implementation/native_handler.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/native_handler.dart b/sdk/lib/_internal/compiler/implementation/native_handler.dart |
index c0af4bf09d038b30e783aab7607d3964f8f58072..2429763f877f5af97c9cd6c6a843cf3d387993f9 100644 |
--- a/sdk/lib/_internal/compiler/implementation/native_handler.dart |
+++ b/sdk/lib/_internal/compiler/implementation/native_handler.dart |
@@ -223,18 +223,20 @@ abstract class NativeEnqueuerBase implements NativeEnqueuer { |
} |
registerElement(Element element) { |
- if (element.isFunction() || element.isGetter() || element.isSetter()) { |
- handleMethodAnnotations(element); |
- if (element.isNative()) { |
- registerMethodUsed(element); |
- } |
- } else if (element.isField()) { |
- handleFieldAnnotations(element); |
- if (element.isNative()) { |
- registerFieldLoad(element); |
- registerFieldStore(element); |
+ compiler.withCurrentElement(element, () { |
+ if (element.isFunction() || element.isGetter() || element.isSetter()) { |
+ handleMethodAnnotations(element); |
+ if (element.isNative()) { |
+ registerMethodUsed(element); |
+ } |
+ } else if (element.isField()) { |
+ handleFieldAnnotations(element); |
+ if (element.isNative()) { |
+ registerFieldLoad(element); |
+ registerFieldStore(element); |
+ } |
} |
- } |
+ }); |
} |
handleFieldAnnotations(Element element) { |
@@ -449,9 +451,8 @@ class NativeCodegenEnqueuer extends NativeEnqueuerBase { |
} |
void maybeEnableNative(Compiler compiler, |
- LibraryElement library, |
- Uri uri) { |
- String libraryName = uri.toString(); |
+ LibraryElement library) { |
+ String libraryName = library.uri.toString(); |
if (library.entryCompilationUnit.script.name.contains( |
'dart/tests/compiler/dart2js_native') |
|| libraryName == 'dart:async' |