| 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 f0c82013a66f3118a424fe816480dfbae1461e03..2eaa4af5f13df4d43059ebf794b00f8d0f6d48a7 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/native_handler.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/native_handler.dart
|
| @@ -224,18 +224,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) {
|
| @@ -450,9 +452,8 @@ class NativeCodegenEnqueuer extends NativeEnqueuerBase {
|
| }
|
|
|
| void maybeEnableNative(Compiler compiler,
|
| - LibraryElement library,
|
| - Uri uri) {
|
| - String libraryName = uri.toString();
|
| + LibraryElement library) {
|
| + String libraryName = library.canonicalUri.toString();
|
| if (library.entryCompilationUnit.script.name.contains(
|
| 'dart/tests/compiler/dart2js_native')
|
| || libraryName == 'dart:async'
|
|
|