Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: pkg/compiler/lib/src/js_model/elements.dart

Issue 2992863002: Support forEachClassMember on closure classes (Closed)
Patch Set: Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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_model.elements; 5 library dart2js.js_model.elements;
6 6
7 import '../common/names.dart' show Identifiers; 7 import '../common/names.dart' show Names;
8 import '../elements/entities.dart'; 8 import '../elements/entities.dart';
9 import '../elements/names.dart'; 9 import '../elements/names.dart';
10 import '../elements/types.dart'; 10 import '../elements/types.dart';
11 import '../kernel/elements.dart'; 11 import '../kernel/elements.dart';
12 import '../kernel/element_map_impl.dart'; 12 import '../kernel/element_map_impl.dart';
13 import 'closure.dart' show KernelClosureClass; 13 import 'closure.dart' show KernelClosureClass;
14 14
15 /// Map from 'frontend' to 'backend' elements. 15 /// Map from 'frontend' to 'backend' elements.
16 /// 16 ///
17 /// Frontend elements are what we read in, these typically represents concepts 17 /// Frontend elements are what we read in, these typically represents concepts
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 JField(int memberIndex, JLibrary library, JClass enclosingClass, Name name, 513 JField(int memberIndex, JLibrary library, JClass enclosingClass, Name name,
514 {bool isStatic, this.isAssignable, this.isConst}) 514 {bool isStatic, this.isAssignable, this.isConst})
515 : super(memberIndex, library, enclosingClass, name, isStatic: isStatic); 515 : super(memberIndex, library, enclosingClass, name, isStatic: isStatic);
516 516
517 @override 517 @override
518 bool get isField => true; 518 bool get isField => true;
519 519
520 String get _kind => 'field'; 520 String get _kind => 'field';
521 } 521 }
522 522
523 class JClosureCallMethod extends JFunction { 523 class JClosureCallMethod extends JMethod {
524 JClosureCallMethod(int memberIndex, KernelClosureClass containingClass, 524 JClosureCallMethod(int memberIndex, KernelClosureClass containingClass,
525 JFunction origClosureFunctionNode) 525 ParameterStructure parameterStructure, AsyncMarker asyncMarker)
526 : super( 526 : super(memberIndex, containingClass.library, containingClass, Names.call,
527 memberIndex, 527 parameterStructure, asyncMarker,
528 containingClass.library, 528 isStatic: false, isExternal: false, isAbstract: false);
529 containingClass,
530 new Name(Identifiers.call, containingClass.library),
531 origClosureFunctionNode.parameterStructure,
532 origClosureFunctionNode.asyncMarker);
533 529
534 String get _kind => 'closure_call'; 530 String get _kind => 'closure_call';
535 } 531 }
536 532
537 class JTypeVariable implements TypeVariableEntity, IndexedTypeVariable { 533 class JTypeVariable implements TypeVariableEntity, IndexedTypeVariable {
538 final int typeVariableIndex; 534 final int typeVariableIndex;
539 final Entity typeDeclaration; 535 final Entity typeDeclaration;
540 final String name; 536 final String name;
541 final int index; 537 final int index;
542 538
543 JTypeVariable( 539 JTypeVariable(
544 this.typeVariableIndex, this.typeDeclaration, this.name, this.index); 540 this.typeVariableIndex, this.typeDeclaration, this.name, this.index);
545 541
546 String toString() => 542 String toString() =>
547 '${jsElementPrefix}type_variable(${typeDeclaration.name}.$name)'; 543 '${jsElementPrefix}type_variable(${typeDeclaration.name}.$name)';
548 } 544 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698