Chromium Code Reviews| Index: dart/sdk/lib/_internal/compiler/implementation/native_handler.dart |
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/native_handler.dart b/dart/sdk/lib/_internal/compiler/implementation/native_handler.dart |
| index f53d34846da48259480446a986da66d29ce0e4ef..08be6035b252dc8d27182e3fcbb4928164bf6c84 100644 |
| --- a/dart/sdk/lib/_internal/compiler/implementation/native_handler.dart |
| +++ b/dart/sdk/lib/_internal/compiler/implementation/native_handler.dart |
| @@ -90,6 +90,9 @@ abstract class NativeEnqueuerBase implements NativeEnqueuer { |
| final Set<ClassElement> pendingClasses = new Set<ClassElement>(); |
| final Set<ClassElement> unusedClasses = new Set<ClassElement>(); |
| + final Set<LibraryElement> processedLibraries = |
| + new Set<LibraryElement>.identity(); |
| + |
| bool hasInstantiatedNativeClasses() => !registeredClasses.isEmpty; |
| final Set<ClassElement> nativeClassesAndSubclasses = new Set<ClassElement>(); |
| @@ -124,6 +127,9 @@ abstract class NativeEnqueuerBase implements NativeEnqueuer { |
| NativeEnqueuerBase(this.world, this.compiler, this.enableLiveTypeAnalysis); |
| void processNativeClasses(Iterable<LibraryElement> libraries) { |
| + if (compiler.hasIncrementalSupport) { |
| + libraries = libraries.where((library) => processedLibraries.add(library)); |
|
floitsch
2014/06/19 12:00:24
where(processedLibraries.add)
It's ok without, bu
ahe
2014/06/19 13:50:10
Done.
|
| + } |
| libraries.forEach(processNativeClassesInLibrary); |
| if (compiler.isolateHelperLibrary != null) { |
| processNativeClassesInLibrary(compiler.isolateHelperLibrary); |