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 '../constants/values.dart' show ConstantValue; | 7 import '../constants/values.dart' show ConstantValue; |
8 import '../deferred_load.dart' show OutputUnit; | 8 import '../deferred_load.dart' show OutputUnit; |
9 import '../elements/entities.dart'; | 9 import '../elements/entities.dart'; |
10 import '../js/js.dart' as js show Expression, Name, Statement, TokenFinalizer; | 10 import '../js/js.dart' as js show Expression, Name, Statement, TokenFinalizer; |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 final Holder holder; | 216 final Holder holder; |
217 Class _superclass; | 217 Class _superclass; |
218 final List<Method> methods; | 218 final List<Method> methods; |
219 final List<Field> fields; | 219 final List<Field> fields; |
220 final List<StubMethod> isChecks; | 220 final List<StubMethod> isChecks; |
221 final List<StubMethod> checkedSetters; | 221 final List<StubMethod> checkedSetters; |
222 | 222 |
223 /// Stub methods for this class that are call stubs for getters. | 223 /// Stub methods for this class that are call stubs for getters. |
224 final List<StubMethod> callStubs; | 224 final List<StubMethod> callStubs; |
225 | 225 |
226 /// Stub methods for this class handling reads to type variables. | |
227 final List<StubMethod> typeVariableReaderStubs; | |
228 | |
229 /// noSuchMethod stubs in the special case that the class is Object. | 226 /// noSuchMethod stubs in the special case that the class is Object. |
230 final List<StubMethod> noSuchMethodStubs; | 227 final List<StubMethod> noSuchMethodStubs; |
231 final List<Field> staticFieldsForReflection; | 228 final List<Field> staticFieldsForReflection; |
232 final bool hasRtiField; // Per-instance runtime type information pseudo-field. | 229 final bool hasRtiField; // Per-instance runtime type information pseudo-field. |
233 final bool onlyForRti; | 230 final bool onlyForRti; |
234 final bool isDirectlyInstantiated; | 231 final bool isDirectlyInstantiated; |
235 final bool isNative; | 232 final bool isNative; |
236 | 233 |
237 // If the class implements a function type, and the type is encoded in the | 234 // If the class implements a function type, and the type is encoded in the |
238 // metatada table, then this field contains the index into that field. | 235 // metatada table, then this field contains the index into that field. |
(...skipping 12 matching lines...) Expand all Loading... |
251 List<Class> nativeExtensions; | 248 List<Class> nativeExtensions; |
252 | 249 |
253 Class( | 250 Class( |
254 this.element, | 251 this.element, |
255 this.name, | 252 this.name, |
256 this.holder, | 253 this.holder, |
257 this.methods, | 254 this.methods, |
258 this.fields, | 255 this.fields, |
259 this.staticFieldsForReflection, | 256 this.staticFieldsForReflection, |
260 this.callStubs, | 257 this.callStubs, |
261 this.typeVariableReaderStubs, | |
262 this.noSuchMethodStubs, | 258 this.noSuchMethodStubs, |
263 this.checkedSetters, | 259 this.checkedSetters, |
264 this.isChecks, | 260 this.isChecks, |
265 this.functionTypeIndex, | 261 this.functionTypeIndex, |
266 {this.hasRtiField, | 262 {this.hasRtiField, |
267 this.onlyForRti, | 263 this.onlyForRti, |
268 this.isDirectlyInstantiated, | 264 this.isDirectlyInstantiated, |
269 this.isNative}) { | 265 this.isNative}) { |
270 assert(onlyForRti != null); | 266 assert(onlyForRti != null); |
271 assert(isDirectlyInstantiated != null); | 267 assert(isDirectlyInstantiated != null); |
(...skipping 16 matching lines...) Expand all Loading... |
288 class MixinApplication extends Class { | 284 class MixinApplication extends Class { |
289 Class _mixinClass; | 285 Class _mixinClass; |
290 | 286 |
291 MixinApplication( | 287 MixinApplication( |
292 ClassEntity element, | 288 ClassEntity element, |
293 js.Name name, | 289 js.Name name, |
294 Holder holder, | 290 Holder holder, |
295 List<Field> instanceFields, | 291 List<Field> instanceFields, |
296 List<Field> staticFieldsForReflection, | 292 List<Field> staticFieldsForReflection, |
297 List<StubMethod> callStubs, | 293 List<StubMethod> callStubs, |
298 List<StubMethod> typeVariableReaderStubs, | |
299 List<StubMethod> checkedSetters, | 294 List<StubMethod> checkedSetters, |
300 List<StubMethod> isChecks, | 295 List<StubMethod> isChecks, |
301 js.Expression functionTypeIndex, | 296 js.Expression functionTypeIndex, |
302 {bool hasRtiField, | 297 {bool hasRtiField, |
303 bool onlyForRti, | 298 bool onlyForRti, |
304 bool isDirectlyInstantiated}) | 299 bool isDirectlyInstantiated}) |
305 : super( | 300 : super( |
306 element, | 301 element, |
307 name, | 302 name, |
308 holder, | 303 holder, |
309 const <Method>[], | 304 const <Method>[], |
310 instanceFields, | 305 instanceFields, |
311 staticFieldsForReflection, | 306 staticFieldsForReflection, |
312 callStubs, | 307 callStubs, |
313 typeVariableReaderStubs, | |
314 const <StubMethod>[], | 308 const <StubMethod>[], |
315 checkedSetters, | 309 checkedSetters, |
316 isChecks, | 310 isChecks, |
317 functionTypeIndex, | 311 functionTypeIndex, |
318 hasRtiField: hasRtiField, | 312 hasRtiField: hasRtiField, |
319 onlyForRti: onlyForRti, | 313 onlyForRti: onlyForRti, |
320 isDirectlyInstantiated: isDirectlyInstantiated, | 314 isDirectlyInstantiated: isDirectlyInstantiated, |
321 isNative: false); | 315 isNative: false); |
322 | 316 |
323 bool get isMixinApplication => true; | 317 bool get isMixinApplication => true; |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 functionType: functionType); | 523 functionType: functionType); |
530 | 524 |
531 bool get isStatic => true; | 525 bool get isStatic => true; |
532 } | 526 } |
533 | 527 |
534 class StaticStubMethod extends StubMethod implements StaticMethod { | 528 class StaticStubMethod extends StubMethod implements StaticMethod { |
535 Holder holder; | 529 Holder holder; |
536 StaticStubMethod(js.Name name, this.holder, js.Expression code) | 530 StaticStubMethod(js.Name name, this.holder, js.Expression code) |
537 : super(name, code); | 531 : super(name, code); |
538 } | 532 } |
OLD | NEW |