| 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 library dart2js.new_js_emitter.model; | 5 library dart2js.new_js_emitter.model; |
| 6 | 6 |
| 7 import '../js/js.dart' as js show Expression; | 7 import '../js/js.dart' as js show Expression; |
| 8 import '../constants/values.dart' show ConstantValue; | 8 import '../constants/values.dart' show ConstantValue; |
| 9 | 9 |
| 10 import '../deferred_load.dart' show OutputUnit; | 10 import '../deferred_load.dart' show OutputUnit; |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 /// The element should only be used during the transition to the new model. | 198 /// The element should only be used during the transition to the new model. |
| 199 /// Uses indicate missing information in the model. | 199 /// Uses indicate missing information in the model. |
| 200 final Element element; | 200 final Element element; |
| 201 | 201 |
| 202 final String name; | 202 final String name; |
| 203 final Holder holder; | 203 final Holder holder; |
| 204 Class _superclass; | 204 Class _superclass; |
| 205 final List<Method> methods; | 205 final List<Method> methods; |
| 206 final List<Field> fields; | 206 final List<Field> fields; |
| 207 final List<StubMethod> isChecks; | 207 final List<StubMethod> isChecks; |
| 208 final List<StubMethod> callStubs; | 208 |
| 209 /// Stub methods for this class that are either call stubs for getters or |
| 210 /// noSuchMethod stubs in the special case that the class is Object. |
| 211 final List<StubMethod> stubs; |
| 209 final List<Field> staticFieldsForReflection; | 212 final List<Field> staticFieldsForReflection; |
| 210 final bool onlyForRti; | 213 final bool onlyForRti; |
| 211 final bool isDirectlyInstantiated; | 214 final bool isDirectlyInstantiated; |
| 212 final bool isNative; | 215 final bool isNative; |
| 213 | 216 |
| 214 // If the class implements a function type, and the type is encoded in the | 217 // If the class implements a function type, and the type is encoded in the |
| 215 // metatada table, then this field contains the index into that field. | 218 // metatada table, then this field contains the index into that field. |
| 216 final int functionTypeIndex; | 219 final int functionTypeIndex; |
| 217 | 220 |
| 218 /// Whether the class must be evaluated eagerly. | 221 /// Whether the class must be evaluated eagerly. |
| 219 bool isEager = false; | 222 bool isEager = false; |
| 220 | 223 |
| 221 /// Data that must be emitted with the class for native interop. | 224 /// Data that must be emitted with the class for native interop. |
| 222 String nativeInfo; | 225 String nativeInfo; |
| 223 | 226 |
| 224 Class(this.element, this.name, this.holder, | 227 Class(this.element, this.name, this.holder, |
| 225 this.methods, | 228 this.methods, |
| 226 this.fields, | 229 this.fields, |
| 227 this.staticFieldsForReflection, | 230 this.staticFieldsForReflection, |
| 228 this.callStubs, | 231 this.stubs, |
| 229 this.isChecks, | 232 this.isChecks, |
| 230 this.functionTypeIndex, | 233 this.functionTypeIndex, |
| 231 {this.onlyForRti, | 234 {this.onlyForRti, |
| 232 this.isDirectlyInstantiated, | 235 this.isDirectlyInstantiated, |
| 233 this.isNative}) { | 236 this.isNative}) { |
| 234 assert(onlyForRti != null); | 237 assert(onlyForRti != null); |
| 235 assert(isDirectlyInstantiated != null); | 238 assert(isDirectlyInstantiated != null); |
| 236 assert(isNative != null); | 239 assert(isNative != null); |
| 237 } | 240 } |
| 238 | 241 |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 tearOffName : tearOffName, | 427 tearOffName : tearOffName, |
| 425 canBeApplied : canBeApplied, | 428 canBeApplied : canBeApplied, |
| 426 canBeReflected : canBeReflected); | 429 canBeReflected : canBeReflected); |
| 427 } | 430 } |
| 428 | 431 |
| 429 class StaticStubMethod extends StubMethod implements StaticMethod { | 432 class StaticStubMethod extends StubMethod implements StaticMethod { |
| 430 Holder holder; | 433 Holder holder; |
| 431 StaticStubMethod(String name, this.holder, js.Expression code) | 434 StaticStubMethod(String name, this.holder, js.Expression code) |
| 432 : super(name, code); | 435 : super(name, code); |
| 433 } | 436 } |
| OLD | NEW |