| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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.js_emitter; | 5 part of dart2js.js_emitter; |
| 6 | 6 |
| 7 | 7 |
| 8 class OldEmitter implements Emitter { | 8 class OldEmitter implements Emitter { |
| 9 final Compiler compiler; | 9 final Compiler compiler; |
| 10 final CodeEmitterTask task; | 10 final CodeEmitterTask task; |
| 11 | 11 |
| 12 final ContainerBuilder containerBuilder = new ContainerBuilder(); | 12 final ContainerBuilder containerBuilder = new ContainerBuilder(); |
| 13 final ClassEmitter classEmitter = new ClassEmitter(); | 13 final ClassEmitter classEmitter = new ClassEmitter(); |
| 14 final NsmEmitter nsmEmitter = new NsmEmitter(); | 14 final NsmEmitter nsmEmitter = new NsmEmitter(); |
| 15 final TypeTestEmitter typeTestEmitter = new TypeTestEmitter(); | 15 final TypeTestEmitter typeTestEmitter = new TypeTestEmitter(); |
| 16 final InterceptorEmitter interceptorEmitter = new InterceptorEmitter(); | 16 final InterceptorEmitter interceptorEmitter = new InterceptorEmitter(); |
| 17 final MetadataEmitter metadataEmitter = new MetadataEmitter(); | 17 final MetadataEmitter metadataEmitter = new MetadataEmitter(); |
| 18 | 18 |
| 19 final Set<ConstantValue> cachedEmittedConstants; | 19 final Set<ConstantValue> cachedEmittedConstants; |
| 20 final CodeBuffer cachedEmittedConstantsBuffer = new CodeBuffer(); | 20 final CodeBuffer cachedEmittedConstantsBuffer = new CodeBuffer(); |
| 21 final Map<Element, ClassBuilder> cachedClassBuilders; | 21 final Map<Element, ClassBuilder> cachedClassBuilders; |
| 22 final Set<Element> cachedElements; | 22 final Set<Element> cachedElements; |
| 23 | 23 |
| 24 bool needsClassSupport = false; | 24 bool needsClassSupport = false; |
| 25 bool needsMixinSupport = false; | 25 bool needsMixinSupport = false; |
| 26 bool needsLazyInitializer = false; | 26 bool needsLazyInitializer = false; |
| 27 /// This is set to true in ContainerBuilder if the program contains | 27 |
| 28 /// function elements that need extra handling. In this case the element is | 28 /// True if [ContainerBuilder.addMemberMethodFromInfo] used "structured info", |
| 29 /// stored along with an array containing the needed information. | 29 /// that is, some function was needed for reflection, had stubs, or had a |
| 30 bool needsArrayInitializerSupport = false; | 30 /// super alias. |
| 31 bool needsStructuredMemberInfo = false; |
| 32 |
| 31 final Namer namer; | 33 final Namer namer; |
| 32 ConstantEmitter constantEmitter; | 34 ConstantEmitter constantEmitter; |
| 33 NativeEmitter get nativeEmitter => task.nativeEmitter; | 35 NativeEmitter get nativeEmitter => task.nativeEmitter; |
| 34 TypeTestRegistry get typeTestRegistry => task.typeTestRegistry; | 36 TypeTestRegistry get typeTestRegistry => task.typeTestRegistry; |
| 35 | 37 |
| 36 // The full code that is written to each hunk part-file. | 38 // The full code that is written to each hunk part-file. |
| 37 Map<OutputUnit, CodeBuffer> outputBuffers = new Map<OutputUnit, CodeBuffer>(); | 39 Map<OutputUnit, CodeBuffer> outputBuffers = new Map<OutputUnit, CodeBuffer>(); |
| 38 final CodeBuffer deferredConstants = new CodeBuffer(); | 40 final CodeBuffer deferredConstants = new CodeBuffer(); |
| 39 | 41 |
| 40 /** Shorter access to [isolatePropertiesName]. Both here in the code, as | 42 /** Shorter access to [isolatePropertiesName]. Both here in the code, as |
| (...skipping 1992 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2033 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { | 2035 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { |
| 2034 if (element.isInstanceMember) { | 2036 if (element.isInstanceMember) { |
| 2035 cachedClassBuilders.remove(element.enclosingClass); | 2037 cachedClassBuilders.remove(element.enclosingClass); |
| 2036 | 2038 |
| 2037 nativeEmitter.cachedBuilders.remove(element.enclosingClass); | 2039 nativeEmitter.cachedBuilders.remove(element.enclosingClass); |
| 2038 | 2040 |
| 2039 } | 2041 } |
| 2040 } | 2042 } |
| 2041 } | 2043 } |
| 2042 } | 2044 } |
| OLD | NEW |