| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of dart2js; | 5 part of dart2js; |
| 6 | 6 |
| 7 typedef ItemCompilationContext ItemCompilationContextCreator(); | 7 typedef ItemCompilationContext ItemCompilationContextCreator(); |
| 8 | 8 |
| 9 class EnqueueTask extends CompilerTask { | 9 class EnqueueTask extends CompilerTask { |
| 10 final ResolutionEnqueuer resolution; | 10 final ResolutionEnqueuer resolution; |
| (...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 * | 850 * |
| 851 * For code generation, we rely on the precomputed set of elements that takes | 851 * For code generation, we rely on the precomputed set of elements that takes |
| 852 * subtyping constraints into account. | 852 * subtyping constraints into account. |
| 853 */ | 853 */ |
| 854 bool shouldIncludeElementDueToMirrors(Element element, | 854 bool shouldIncludeElementDueToMirrors(Element element, |
| 855 {bool includedEnclosing}) { | 855 {bool includedEnclosing}) { |
| 856 return compiler.backend.isAccessibleByReflection(element); | 856 return compiler.backend.isAccessibleByReflection(element); |
| 857 } | 857 } |
| 858 | 858 |
| 859 bool internalAddToWorkList(Element element) { | 859 bool internalAddToWorkList(Element element) { |
| 860 if (compiler.hasIncrementalSupport) { | |
| 861 newlyEnqueuedElements.add(element); | |
| 862 } | |
| 863 // Don't generate code for foreign elements. | 860 // Don't generate code for foreign elements. |
| 864 if (element.isForeign(compiler.backend)) return false; | 861 if (element.isForeign(compiler.backend)) return false; |
| 865 | 862 |
| 866 // Codegen inlines field initializers. It only needs to generate | 863 // Codegen inlines field initializers. It only needs to generate |
| 867 // code for checked setters. | 864 // code for checked setters. |
| 868 if (element.isField && element.isInstanceMember) { | 865 if (element.isField && element.isInstanceMember) { |
| 869 if (!compiler.enableTypeAssertions | 866 if (!compiler.enableTypeAssertions |
| 870 || element.enclosingElement.isClosure) { | 867 || element.enclosingElement.isClosure) { |
| 871 return false; | 868 return false; |
| 872 } | 869 } |
| 873 } | 870 } |
| 874 | 871 |
| 872 if (compiler.hasIncrementalSupport && !isProcessed(element)) { |
| 873 newlyEnqueuedElements.add(element); |
| 874 } |
| 875 |
| 875 if (queueIsClosed) { | 876 if (queueIsClosed) { |
| 876 throw new SpannableAssertionFailure(element, | 877 throw new SpannableAssertionFailure(element, |
| 877 "Codegen work list is closed. Trying to add $element"); | 878 "Codegen work list is closed. Trying to add $element"); |
| 878 } | 879 } |
| 879 CodegenWorkItem workItem = new CodegenWorkItem( | 880 CodegenWorkItem workItem = new CodegenWorkItem( |
| 880 element, itemCompilationContextCreator()); | 881 element, itemCompilationContextCreator()); |
| 881 queue.add(workItem); | 882 queue.add(workItem); |
| 882 return true; | 883 return true; |
| 883 } | 884 } |
| 884 | 885 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 918 void processWorkItem(void f(WorkItem work), WorkItem work) { | 919 void processWorkItem(void f(WorkItem work), WorkItem work) { |
| 919 f(work); | 920 f(work); |
| 920 } | 921 } |
| 921 } | 922 } |
| 922 | 923 |
| 923 void removeFromSet(Map<String, Set<Element>> map, Element element) { | 924 void removeFromSet(Map<String, Set<Element>> map, Element element) { |
| 924 Set<Element> set = map[element.name]; | 925 Set<Element> set = map[element.name]; |
| 925 if (set == null) return; | 926 if (set == null) return; |
| 926 set.remove(element); | 927 set.remove(element); |
| 927 } | 928 } |
| OLD | NEW |