OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library dart2js.js_emitter.full_emitter.class_emitter; | 5 library dart2js.js_emitter.full_emitter.class_emitter; |
6 | 6 |
7 import '../../common.dart'; | 7 import '../../common.dart'; |
8 import '../../common/names.dart' show Names; | 8 import '../../common/names.dart' show Names; |
9 import '../../common_elements.dart'; | 9 import '../../common_elements.dart'; |
10 import '../../elements/resolution_types.dart' show ResolutionDartType; | 10 import '../../elements/resolution_types.dart' show ResolutionDartType; |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 bool needsSetter = field.needsUncheckedSetter; | 137 bool needsSetter = field.needsUncheckedSetter; |
138 | 138 |
139 // Ignore needsCheckedSetter - that is handled below. | 139 // Ignore needsCheckedSetter - that is handled below. |
140 bool needsAccessor = (needsGetter || needsSetter); | 140 bool needsAccessor = (needsGetter || needsSetter); |
141 // We need to output the fields for non-native classes so we can auto- | 141 // We need to output the fields for non-native classes so we can auto- |
142 // generate the constructor. For native classes there are no | 142 // generate the constructor. For native classes there are no |
143 // constructors, so we don't need the fields unless we are generating | 143 // constructors, so we don't need the fields unless we are generating |
144 // accessors at runtime. | 144 // accessors at runtime. |
145 bool needsFieldsForConstructor = !emitStatics && !classIsNative; | 145 bool needsFieldsForConstructor = !emitStatics && !classIsNative; |
146 if (needsFieldsForConstructor || needsAccessor) { | 146 if (needsFieldsForConstructor || needsAccessor) { |
147 var metadata = | 147 dynamic metadata = |
148 task.metadataCollector.buildFieldMetadataFunction(fieldElement); | 148 task.metadataCollector.buildFieldMetadataFunction(fieldElement); |
149 if (metadata != null) { | 149 if (metadata != null) { |
150 hasMetadata = true; | 150 hasMetadata = true; |
151 } else { | 151 } else { |
152 metadata = new jsAst.LiteralNull(); | 152 metadata = new jsAst.LiteralNull(); |
153 } | 153 } |
154 fieldMetadata.add(metadata); | 154 fieldMetadata.add(metadata); |
155 recordMangledField(fieldElement, accessorName, | 155 recordMangledField(fieldElement, accessorName, |
156 namer.privateName(fieldElement.memberName)); | 156 namer.privateName(fieldElement.memberName)); |
157 List<jsAst.Literal> fieldNameParts = <jsAst.Literal>[]; | 157 List<jsAst.Literal> fieldNameParts = <jsAst.Literal>[]; |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 String reflectionName = emitter.getReflectionSelectorName(selector, name); | 454 String reflectionName = emitter.getReflectionSelectorName(selector, name); |
455 if (reflectionName != null) { | 455 if (reflectionName != null) { |
456 var reflectable = js( | 456 var reflectable = js( |
457 backend.mirrorsData.isMemberAccessibleByReflection(member) | 457 backend.mirrorsData.isMemberAccessibleByReflection(member) |
458 ? '1' | 458 ? '1' |
459 : '0'); | 459 : '0'); |
460 builder.addPropertyByName('+$reflectionName', reflectable); | 460 builder.addPropertyByName('+$reflectionName', reflectable); |
461 } | 461 } |
462 } | 462 } |
463 } | 463 } |
OLD | NEW |