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

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

Issue 2929643002: Introduce JsStrategy skeleton (Closed)
Patch Set: Updated cf. comments Created 3 years, 6 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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 library dart2js.js_model.elements;
6
7 import '../common_elements.dart';
8 import '../constants/constant_system.dart';
9 import '../elements/elements.dart';
10 import '../elements/entities.dart';
11 import '../elements/types.dart';
12 import '../js_backend/backend_usage.dart';
13 import '../js_backend/interceptor_data.dart';
14 import '../js_backend/native_data.dart';
15 import '../native/behavior.dart';
16 import '../ordered_typeset.dart';
17 import '../universe/class_set.dart';
18 import '../universe/function_set.dart';
19 import '../universe/selector.dart';
20 import '../universe/world_builder.dart';
21 import '../world.dart';
22
23 /// Bidirectional map between 'frontend' and 'backend' elements.
24 ///
25 /// Frontend elements are what we read in, these typically represents concepts
26 /// in Dart. Backend elements are what we generate, these may include elements
27 /// that do not correspond to a Dart concept, such as closure classes.
28 ///
29 /// Querying for the frontend element for a backend-only element throws an
30 /// exception.
31 class JsToFrontendMap {
32 LibraryEntity toBackendLibrary(LibraryEntity library) => library;
33 LibraryEntity toFrontendLibrary(LibraryEntity library) => library;
34
35 ClassEntity toBackendClass(ClassEntity cls) => cls;
36 ClassEntity toFrontendClass(ClassEntity cls) => cls;
37
38 MemberEntity toBackendMember(MemberEntity member) => member;
39 MemberEntity toFrontendMember(MemberEntity member) => member;
40
41 DartType toBackendType(DartType type) => type;
42 DartType fromFrontendType(DartType type) => type;
43 }
44
45 class JsClosedWorld extends ClosedWorldBase {
46 JsClosedWorld(
47 {CommonElements commonElements,
48 ConstantSystem constantSystem,
49 NativeData nativeData,
50 InterceptorData interceptorData,
51 BackendUsage backendUsage,
52 ResolutionWorldBuilder resolutionWorldBuilder,
53 Set<ClassEntity> implementedClasses,
54 FunctionSet functionSet,
55 Set<TypedefElement> allTypedefs,
56 Map<ClassEntity, Set<ClassEntity>> mixinUses,
57 Map<ClassEntity, Set<ClassEntity>> typesImplementedBySubclasses,
58 Map<ClassEntity, ClassHierarchyNode> classHierarchyNodes,
59 Map<ClassEntity, ClassSet> classSets})
60 : super(
61 commonElements: commonElements,
62 constantSystem: constantSystem,
63 nativeData: nativeData,
64 interceptorData: interceptorData,
65 backendUsage: backendUsage,
66 resolutionWorldBuilder: resolutionWorldBuilder,
67 implementedClasses: implementedClasses,
68 functionSet: functionSet,
69 allTypedefs: allTypedefs,
70 mixinUses: mixinUses,
71 typesImplementedBySubclasses: typesImplementedBySubclasses,
72 classHierarchyNodes: classHierarchyNodes,
73 classSets: classSets);
74
75 @override
76 bool hasConcreteMatch(ClassEntity cls, Selector selector,
77 {ClassEntity stopAtSuperclass}) {
78 throw new UnimplementedError('JsClosedWorld.hasConcreteMatch');
79 }
80
81 @override
82 void registerClosureClass(ClassElement cls) {
83 throw new UnimplementedError('JsClosedWorld.registerClosureClass');
84 }
85
86 @override
87 bool hasElementIn(ClassEntity cls, Selector selector, Entity element) {
88 throw new UnimplementedError('JsClosedWorld.hasElementIn');
89 }
90
91 @override
92 bool checkEntity(Entity element) => true;
93
94 @override
95 bool checkClass(ClassEntity cls) => true;
96
97 @override
98 bool checkInvariants(ClassEntity cls, {bool mustBeInstantiated: true}) {
99 return true;
100 }
101
102 @override
103 OrderedTypeSet getOrderedTypeSet(ClassEntity cls) {
104 throw new UnimplementedError('JsClosedWorld.getOrderedTypeSet');
105 }
106
107 @override
108 int getHierarchyDepth(ClassEntity cls) {
109 throw new UnimplementedError('JsClosedWorld.getHierarchyDepth');
110 }
111
112 @override
113 ClassEntity getSuperClass(ClassEntity cls) {
114 throw new UnimplementedError('JsClosedWorld.getSuperClass');
115 }
116
117 @override
118 Iterable<ClassEntity> getInterfaces(ClassEntity cls) {
119 throw new UnimplementedError('JsClosedWorld.getInterfaces');
120 }
121
122 @override
123 ClassEntity getAppliedMixin(ClassEntity cls) {
124 throw new UnimplementedError('JsClosedWorld.getAppliedMixin');
125 }
126
127 @override
128 bool isNamedMixinApplication(ClassEntity cls) {
129 throw new UnimplementedError('JsClosedWorld.isNamedMixinApplication');
130 }
131 }
132
133 class JsNativeData implements NativeData {
134 final JsToFrontendMap _map;
135 final NativeData _nativeData;
136
137 JsNativeData(this._map, this._nativeData);
138
139 @override
140 bool isNativeClass(ClassEntity element) {
141 return _nativeData.isNativeClass(_map.toFrontendClass(element));
142 }
143
144 @override
145 String computeUnescapedJSInteropName(String name) {
146 return _nativeData.computeUnescapedJSInteropName(name);
147 }
148
149 @override
150 String getJsInteropMemberName(MemberEntity element) {
151 return _nativeData.getJsInteropMemberName(_map.toFrontendMember(element));
152 }
153
154 @override
155 String getJsInteropClassName(ClassEntity element) {
156 return _nativeData.getJsInteropClassName(_map.toFrontendClass(element));
157 }
158
159 @override
160 bool isAnonymousJsInteropClass(ClassEntity element) {
161 return _nativeData.isAnonymousJsInteropClass(_map.toFrontendClass(element));
162 }
163
164 @override
165 String getJsInteropLibraryName(LibraryEntity element) {
166 return _nativeData.getJsInteropLibraryName(_map.toFrontendLibrary(element));
167 }
168
169 @override
170 bool isJsInteropMember(MemberEntity element) {
171 return _nativeData.isJsInteropMember(_map.toFrontendMember(element));
172 }
173
174 @override
175 String getFixedBackendMethodPath(FunctionEntity element) {
176 return _nativeData
177 .getFixedBackendMethodPath(_map.toFrontendMember(element));
178 }
179
180 @override
181 String getFixedBackendName(MemberEntity element) {
182 return _nativeData.getFixedBackendName(_map.toFrontendMember(element));
183 }
184
185 @override
186 bool hasFixedBackendName(MemberEntity element) {
187 return _nativeData.hasFixedBackendName(_map.toFrontendMember(element));
188 }
189
190 @override
191 NativeBehavior getNativeFieldStoreBehavior(FieldEntity field) {
192 return _nativeData
193 .getNativeFieldStoreBehavior(_map.toFrontendMember(field));
194 }
195
196 @override
197 NativeBehavior getNativeFieldLoadBehavior(FieldEntity field) {
198 return _nativeData.getNativeFieldLoadBehavior(_map.toFrontendMember(field));
199 }
200
201 @override
202 NativeBehavior getNativeMethodBehavior(FunctionEntity method) {
203 return _nativeData.getNativeMethodBehavior(_map.toFrontendMember(method));
204 }
205
206 @override
207 bool isNativeMember(MemberEntity element) {
208 return _nativeData.isNativeMember(_map.toFrontendMember(element));
209 }
210
211 @override
212 bool isJsInteropClass(ClassEntity element) {
213 return _nativeData.isJsInteropClass(_map.toFrontendClass(element));
214 }
215
216 @override
217 bool isJsInteropLibrary(LibraryEntity element) {
218 return _nativeData.isJsInteropLibrary(_map.toFrontendLibrary(element));
219 }
220
221 @override
222 bool get isJsInteropUsed {
223 return _nativeData.isJsInteropUsed;
224 }
225
226 @override
227 bool isNativeOrExtendsNative(ClassEntity element) {
228 return _nativeData.isNativeOrExtendsNative(_map.toFrontendClass(element));
229 }
230
231 @override
232 bool hasNativeTagsForcedNonLeaf(ClassEntity cls) {
233 return _nativeData.hasNativeTagsForcedNonLeaf(_map.toFrontendClass(cls));
234 }
235
236 @override
237 List<String> getNativeTagsOfClass(ClassEntity cls) {
238 return _nativeData.getNativeTagsOfClass(_map.toFrontendClass(cls));
239 }
240 }
241
242 class JsBackendUsage implements BackendUsage {
243 final JsToFrontendMap _map;
244 final BackendUsage _backendUsage;
245
246 @override
247 bool needToInitializeIsolateAffinityTag;
248 @override
249 bool needToInitializeDispatchProperty;
250
251 JsBackendUsage(this._map, this._backendUsage) {
252 needToInitializeIsolateAffinityTag =
253 _backendUsage.needToInitializeIsolateAffinityTag;
254 needToInitializeDispatchProperty =
255 _backendUsage.needToInitializeDispatchProperty;
256 }
257
258 @override
259 bool isFunctionUsedByBackend(FunctionEntity element) {
260 return _backendUsage
261 .isFunctionUsedByBackend(_map.toFrontendMember(element));
262 }
263
264 @override
265 bool isFieldUsedByBackend(FieldEntity element) {
266 return _backendUsage.isFieldUsedByBackend(_map.toFrontendMember(element));
267 }
268
269 @override
270 Iterable<FunctionEntity> get globalFunctionDependencies {
271 return _backendUsage.globalFunctionDependencies.map(_map.toBackendMember);
272 }
273
274 @override
275 Iterable<ClassEntity> get globalClassDependencies {
276 return _backendUsage.globalClassDependencies.map(_map.toBackendClass);
277 }
278
279 @override
280 bool get requiresPreamble => _backendUsage.requiresPreamble;
281
282 @override
283 bool get isInvokeOnUsed => _backendUsage.isInvokeOnUsed;
284
285 @override
286 bool get isRuntimeTypeUsed => _backendUsage.isRuntimeTypeUsed;
287
288 @override
289 bool get isIsolateInUse => _backendUsage.isIsolateInUse;
290
291 @override
292 bool get isFunctionApplyUsed => _backendUsage.isFunctionApplyUsed;
293
294 @override
295 bool get isNoSuchMethodUsed => _backendUsage.isNoSuchMethodUsed;
296 }
297
298 class JsCommonElements implements CommonElements {
299 final JsToFrontendMap _map;
300 final CommonElements _commonElements;
301
302 JsCommonElements(this._map, this._commonElements);
303
304 @override
305 ClassEntity get objectClass =>
306 _map.toBackendClass(_commonElements.objectClass);
307
308 @override
309 ClassEntity get expectAssumeDynamicClass =>
310 _map.toBackendClass(_commonElements.expectAssumeDynamicClass);
311
312 @override
313 ClassEntity get expectTrustTypeAnnotationsClass =>
314 _map.toBackendClass(_commonElements.expectTrustTypeAnnotationsClass);
315
316 @override
317 ClassEntity get expectNoInlineClass =>
318 _map.toBackendClass(_commonElements.expectNoInlineClass);
319
320 @override
321 FunctionEntity get callInIsolate =>
322 _map.toBackendMember(_commonElements.callInIsolate);
323
324 @override
325 FunctionEntity get currentIsolate =>
326 _map.toBackendMember(_commonElements.currentIsolate);
327
328 @override
329 FunctionEntity get startRootIsolate =>
330 _map.toBackendMember(_commonElements.startRootIsolate);
331
332 @override
333 ClassEntity get jsBuiltinEnum =>
334 _map.toBackendClass(_commonElements.jsBuiltinEnum);
335
336 @override
337 ClassEntity get jsGetNameEnum =>
338 _map.toBackendClass(_commonElements.jsGetNameEnum);
339
340 @override
341 ClassEntity get typedArrayOfIntClass =>
342 _map.toBackendClass(_commonElements.typedArrayOfIntClass);
343
344 @override
345 ClassEntity get typedArrayClass =>
346 _map.toBackendClass(_commonElements.typedArrayClass);
347
348 @override
349 bool isSymbolValidatedConstructor(ConstructorEntity element) =>
350 _commonElements
351 .isSymbolValidatedConstructor(_map.toFrontendMember(element));
352
353 @override
354 FieldEntity get symbolImplementationField =>
355 _map.toBackendMember(_commonElements.symbolImplementationField);
356
357 @override
358 ConstructorEntity get symbolValidatedConstructor =>
359 _map.toBackendMember(_commonElements.symbolValidatedConstructor);
360
361 @override
362 final Selector symbolValidatedConstructorSelector = null;
363
364 @override
365 ClassEntity get symbolImplementationClass =>
366 _map.toBackendClass(_commonElements.symbolImplementationClass);
367
368 @override
369 FunctionEntity get hashCodeForNativeObject =>
370 _map.toBackendMember(_commonElements.hashCodeForNativeObject);
371
372 @override
373 FunctionEntity get toStringForNativeObject =>
374 _map.toBackendMember(_commonElements.toStringForNativeObject);
375
376 @override
377 FunctionEntity get convertRtiToRuntimeType =>
378 _map.toBackendMember(_commonElements.convertRtiToRuntimeType);
379
380 @override
381 FunctionEntity get defineProperty =>
382 _map.toBackendMember(_commonElements.defineProperty);
383
384 @override
385 FunctionEntity get cyclicThrowHelper =>
386 _map.toBackendMember(_commonElements.cyclicThrowHelper);
387
388 @override
389 FunctionEntity get createInvocationMirror =>
390 _map.toBackendMember(_commonElements.createInvocationMirror);
391
392 @override
393 FunctionEntity get fallThroughError =>
394 _map.toBackendMember(_commonElements.fallThroughError);
395
396 @override
397 FunctionEntity get createRuntimeType =>
398 _map.toBackendMember(_commonElements.createRuntimeType);
399
400 @override
401 FunctionEntity get throwNoSuchMethod =>
402 _map.toBackendMember(_commonElements.throwNoSuchMethod);
403
404 @override
405 FunctionEntity get checkDeferredIsLoaded =>
406 _map.toBackendMember(_commonElements.checkDeferredIsLoaded);
407
408 @override
409 FunctionEntity get subtypeOfRuntimeTypeCast =>
410 _map.toBackendMember(_commonElements.subtypeOfRuntimeTypeCast);
411
412 @override
413 FunctionEntity get assertSubtypeOfRuntimeType =>
414 _map.toBackendMember(_commonElements.assertSubtypeOfRuntimeType);
415
416 @override
417 FunctionEntity get checkSubtypeOfRuntimeType =>
418 _map.toBackendMember(_commonElements.checkSubtypeOfRuntimeType);
419
420 @override
421 FunctionEntity get functionTypeTest =>
422 _map.toBackendMember(_commonElements.functionTypeTest);
423
424 @override
425 FunctionEntity get subtypeCast =>
426 _map.toBackendMember(_commonElements.subtypeCast);
427
428 @override
429 FunctionEntity get assertSubtype =>
430 _map.toBackendMember(_commonElements.assertSubtype);
431
432 @override
433 FunctionEntity get checkSubtype =>
434 _map.toBackendMember(_commonElements.checkSubtype);
435
436 @override
437 FunctionEntity get assertIsSubtype =>
438 _map.toBackendMember(_commonElements.assertIsSubtype);
439
440 @override
441 FunctionEntity get runtimeTypeToString =>
442 _map.toBackendMember(_commonElements.runtimeTypeToString);
443
444 @override
445 FunctionEntity get getRuntimeTypeArgument =>
446 _map.toBackendMember(_commonElements.getRuntimeTypeArgument);
447
448 @override
449 FunctionEntity get getRuntimeTypeArguments =>
450 _map.toBackendMember(_commonElements.getRuntimeTypeArguments);
451
452 @override
453 FunctionEntity get computeSignature =>
454 _map.toBackendMember(_commonElements.computeSignature);
455
456 @override
457 FunctionEntity get getTypeArgumentByIndex =>
458 _map.toBackendMember(_commonElements.getTypeArgumentByIndex);
459
460 @override
461 FunctionEntity get getRuntimeTypeInfo =>
462 _map.toBackendMember(_commonElements.getRuntimeTypeInfo);
463
464 @override
465 FunctionEntity get setRuntimeTypeInfo =>
466 _map.toBackendMember(_commonElements.setRuntimeTypeInfo);
467
468 @override
469 FunctionEntity get traceFromException =>
470 _map.toBackendMember(_commonElements.traceFromException);
471
472 @override
473 FunctionEntity get closureConverter =>
474 _map.toBackendMember(_commonElements.closureConverter);
475
476 @override
477 FunctionEntity get throwExpressionHelper =>
478 _map.toBackendMember(_commonElements.throwExpressionHelper);
479
480 @override
481 FunctionEntity get wrapExceptionHelper =>
482 _map.toBackendMember(_commonElements.wrapExceptionHelper);
483
484 @override
485 FunctionEntity get stringInterpolationHelper =>
486 _map.toBackendMember(_commonElements.stringInterpolationHelper);
487
488 @override
489 FunctionEntity get checkString =>
490 _map.toBackendMember(_commonElements.checkString);
491
492 @override
493 FunctionEntity get checkNum => _map.toBackendMember(_commonElements.checkNum);
494
495 @override
496 FunctionEntity get checkInt => _map.toBackendMember(_commonElements.checkInt);
497
498 @override
499 FunctionEntity get throwConcurrentModificationError =>
500 _map.toBackendMember(_commonElements.throwConcurrentModificationError);
501
502 @override
503 FunctionEntity get checkConcurrentModificationError =>
504 _map.toBackendMember(_commonElements.checkConcurrentModificationError);
505
506 @override
507 FunctionEntity get throwAbstractClassInstantiationError => _map
508 .toBackendMember(_commonElements.throwAbstractClassInstantiationError);
509
510 @override
511 FunctionEntity get throwTypeError =>
512 _map.toBackendMember(_commonElements.throwTypeError);
513
514 @override
515 FunctionEntity get throwRuntimeError =>
516 _map.toBackendMember(_commonElements.throwRuntimeError);
517
518 @override
519 FunctionEntity get exceptionUnwrapper =>
520 _map.toBackendMember(_commonElements.exceptionUnwrapper);
521
522 @override
523 FunctionEntity get throwIndexOutOfRangeException =>
524 _map.toBackendMember(_commonElements.throwIndexOutOfRangeException);
525
526 @override
527 FunctionEntity get throwIllegalArgumentException =>
528 _map.toBackendMember(_commonElements.throwIllegalArgumentException);
529
530 @override
531 FunctionEntity get isJsIndexable =>
532 _map.toBackendMember(_commonElements.isJsIndexable);
533
534 @override
535 FunctionEntity get closureFromTearOff =>
536 _map.toBackendMember(_commonElements.closureFromTearOff);
537
538 @override
539 FunctionEntity get traceHelper =>
540 _map.toBackendMember(_commonElements.traceHelper);
541
542 @override
543 FunctionEntity get boolConversionCheck =>
544 _map.toBackendMember(_commonElements.boolConversionCheck);
545
546 @override
547 FunctionEntity get loadLibraryWrapper =>
548 _map.toBackendMember(_commonElements.loadLibraryWrapper);
549
550 @override
551 FunctionEntity get mainHasTooManyParameters =>
552 _map.toBackendMember(_commonElements.mainHasTooManyParameters);
553
554 @override
555 FunctionEntity get missingMain =>
556 _map.toBackendMember(_commonElements.missingMain);
557
558 @override
559 FunctionEntity get badMain => _map.toBackendMember(_commonElements.badMain);
560
561 @override
562 FunctionEntity get requiresPreambleMarker =>
563 _map.toBackendMember(_commonElements.requiresPreambleMarker);
564
565 @override
566 FunctionEntity get getIsolateAffinityTagMarker =>
567 _map.toBackendMember(_commonElements.getIsolateAffinityTagMarker);
568
569 @override
570 FunctionEntity get assertUnreachableMethod =>
571 _map.toBackendMember(_commonElements.assertUnreachableMethod);
572
573 @override
574 FunctionEntity get assertHelper =>
575 _map.toBackendMember(_commonElements.assertHelper);
576
577 @override
578 FunctionEntity get assertThrow =>
579 _map.toBackendMember(_commonElements.assertThrow);
580
581 @override
582 FunctionEntity get assertTest =>
583 _map.toBackendMember(_commonElements.assertTest);
584
585 @override
586 FunctionEntity get invokeOnMethod =>
587 _map.toBackendMember(_commonElements.invokeOnMethod);
588
589 @override
590 ConstructorEntity get typeVariableConstructor =>
591 _map.toBackendMember(_commonElements.typeVariableConstructor);
592
593 @override
594 ClassEntity get nativeAnnotationClass =>
595 _map.toBackendClass(_commonElements.nativeAnnotationClass);
596
597 @override
598 ClassEntity get patchAnnotationClass =>
599 _map.toBackendClass(_commonElements.patchAnnotationClass);
600
601 @override
602 ClassEntity get annotationJSNameClass =>
603 _map.toBackendClass(_commonElements.annotationJSNameClass);
604
605 @override
606 ClassEntity get annotationReturnsClass =>
607 _map.toBackendClass(_commonElements.annotationReturnsClass);
608
609 @override
610 ClassEntity get annotationCreatesClass =>
611 _map.toBackendClass(_commonElements.annotationCreatesClass);
612
613 @override
614 ClassEntity get generalConstantMapClass =>
615 _map.toBackendClass(_commonElements.generalConstantMapClass);
616
617 @override
618 ClassEntity get constantProtoMapClass =>
619 _map.toBackendClass(_commonElements.constantProtoMapClass);
620
621 @override
622 ClassEntity get constantStringMapClass =>
623 _map.toBackendClass(_commonElements.constantStringMapClass);
624
625 @override
626 ClassEntity get constantMapClass =>
627 _map.toBackendClass(_commonElements.constantMapClass);
628
629 @override
630 ClassEntity get stackTraceHelperClass =>
631 _map.toBackendClass(_commonElements.stackTraceHelperClass);
632
633 @override
634 ClassEntity get VoidRuntimeType =>
635 _map.toBackendClass(_commonElements.VoidRuntimeType);
636
637 @override
638 ClassEntity get jsIndexingBehaviorInterface =>
639 _map.toBackendClass(_commonElements.jsIndexingBehaviorInterface);
640
641 @override
642 ClassEntity get jsInvocationMirrorClass =>
643 _map.toBackendClass(_commonElements.jsInvocationMirrorClass);
644
645 @override
646 ClassEntity get irRepresentationClass =>
647 _map.toBackendClass(_commonElements.irRepresentationClass);
648
649 @override
650 ClassEntity get forceInlineClass =>
651 _map.toBackendClass(_commonElements.forceInlineClass);
652
653 @override
654 ClassEntity get noInlineClass =>
655 _map.toBackendClass(_commonElements.noInlineClass);
656
657 @override
658 ClassEntity get noThrowsClass =>
659 _map.toBackendClass(_commonElements.noThrowsClass);
660
661 @override
662 ClassEntity get noSideEffectsClass =>
663 _map.toBackendClass(_commonElements.noSideEffectsClass);
664
665 @override
666 ClassEntity get typeVariableClass =>
667 _map.toBackendClass(_commonElements.typeVariableClass);
668
669 @override
670 ClassEntity get constMapLiteralClass =>
671 _map.toBackendClass(_commonElements.constMapLiteralClass);
672
673 @override
674 ClassEntity get typeLiteralClass =>
675 _map.toBackendClass(_commonElements.typeLiteralClass);
676
677 @override
678 ClassEntity get boundClosureClass =>
679 _map.toBackendClass(_commonElements.boundClosureClass);
680
681 @override
682 ClassEntity get closureClass =>
683 _map.toBackendClass(_commonElements.closureClass);
684
685 @override
686 FunctionEntity findHelperFunction(String name) {
687 return _map.toBackendMember(_commonElements.findHelperFunction(name));
688 }
689
690 @override
691 ClassEntity get jsAnonymousClass =>
692 _map.toBackendClass(_commonElements.jsAnonymousClass);
693
694 @override
695 ClassEntity get jsAnnotationClass =>
696 _map.toBackendClass(_commonElements.jsAnnotationClass);
697
698 @override
699 FunctionEntity get jsStringOperatorAdd =>
700 _map.toBackendMember(_commonElements.jsStringOperatorAdd);
701
702 @override
703 FunctionEntity get jsStringToString =>
704 _map.toBackendMember(_commonElements.jsStringToString);
705
706 @override
707 FunctionEntity get jsStringSplit =>
708 _map.toBackendMember(_commonElements.jsStringSplit);
709
710 @override
711 FunctionEntity get jsArrayAdd =>
712 _map.toBackendMember(_commonElements.jsArrayAdd);
713
714 @override
715 FunctionEntity get jsArrayRemoveLast =>
716 _map.toBackendMember(_commonElements.jsArrayRemoveLast);
717
718 @override
719 ConstructorEntity get jsArrayTypedConstructor =>
720 _map.toBackendMember(_commonElements.jsArrayTypedConstructor);
721
722 @override
723 MemberEntity get jsIndexableLength =>
724 _map.toBackendMember(_commonElements.jsIndexableLength);
725
726 @override
727 FunctionEntity get getNativeInterceptorMethod =>
728 _map.toBackendMember(_commonElements.getNativeInterceptorMethod);
729
730 @override
731 FunctionEntity get getInterceptorMethod =>
732 _map.toBackendMember(_commonElements.getInterceptorMethod);
733
734 @override
735 FunctionEntity get findIndexForNativeSubclassType =>
736 _map.toBackendMember(_commonElements.findIndexForNativeSubclassType);
737
738 @override
739 ClassEntity get jsUInt31Class =>
740 _map.toBackendClass(_commonElements.jsUInt31Class);
741
742 @override
743 ClassEntity get jsUInt32Class =>
744 _map.toBackendClass(_commonElements.jsUInt32Class);
745
746 @override
747 ClassEntity get jsPositiveIntClass =>
748 _map.toBackendClass(_commonElements.jsPositiveIntClass);
749
750 @override
751 ClassEntity get jsUnmodifiableArrayClass =>
752 _map.toBackendClass(_commonElements.jsUnmodifiableArrayClass);
753
754 @override
755 ClassEntity get jsExtendableArrayClass =>
756 _map.toBackendClass(_commonElements.jsExtendableArrayClass);
757
758 @override
759 ClassEntity get jsFixedArrayClass =>
760 _map.toBackendClass(_commonElements.jsFixedArrayClass);
761
762 @override
763 ClassEntity get jsMutableArrayClass =>
764 _map.toBackendClass(_commonElements.jsMutableArrayClass);
765
766 @override
767 ClassEntity get jsMutableIndexableClass =>
768 _map.toBackendClass(_commonElements.jsMutableIndexableClass);
769
770 @override
771 ClassEntity get jsIndexableClass =>
772 _map.toBackendClass(_commonElements.jsIndexableClass);
773
774 @override
775 ClassEntity get jsJavaScriptObjectClass =>
776 _map.toBackendClass(_commonElements.jsJavaScriptObjectClass);
777
778 @override
779 ClassEntity get jsJavaScriptFunctionClass =>
780 _map.toBackendClass(_commonElements.jsJavaScriptFunctionClass);
781
782 @override
783 ClassEntity get jsUnknownJavaScriptObjectClass =>
784 _map.toBackendClass(_commonElements.jsUnknownJavaScriptObjectClass);
785
786 @override
787 ClassEntity get jsPlainJavaScriptObjectClass =>
788 _map.toBackendClass(_commonElements.jsPlainJavaScriptObjectClass);
789
790 @override
791 ClassEntity get jsBoolClass =>
792 _map.toBackendClass(_commonElements.jsBoolClass);
793
794 @override
795 ClassEntity get jsNullClass =>
796 _map.toBackendClass(_commonElements.jsNullClass);
797
798 @override
799 ClassEntity get jsDoubleClass =>
800 _map.toBackendClass(_commonElements.jsDoubleClass);
801
802 @override
803 ClassEntity get jsIntClass => _map.toBackendClass(_commonElements.jsIntClass);
804
805 @override
806 ClassEntity get jsNumberClass =>
807 _map.toBackendClass(_commonElements.jsNumberClass);
808
809 @override
810 ClassEntity get jsArrayClass =>
811 _map.toBackendClass(_commonElements.jsArrayClass);
812
813 @override
814 ClassEntity get jsStringClass =>
815 _map.toBackendClass(_commonElements.jsStringClass);
816
817 @override
818 ClassEntity get jsInterceptorClass =>
819 _map.toBackendClass(_commonElements.jsInterceptorClass);
820
821 @override
822 ClassEntity get jsConstClass =>
823 _map.toBackendClass(_commonElements.jsConstClass);
824
825 @override
826 FunctionEntity get preserveLibraryNamesMarker =>
827 _map.toBackendMember(_commonElements.preserveLibraryNamesMarker);
828
829 @override
830 FunctionEntity get preserveUrisMarker =>
831 _map.toBackendMember(_commonElements.preserveUrisMarker);
832
833 @override
834 FunctionEntity get preserveMetadataMarker =>
835 _map.toBackendMember(_commonElements.preserveMetadataMarker);
836
837 @override
838 FunctionEntity get preserveNamesMarker =>
839 _map.toBackendMember(_commonElements.preserveNamesMarker);
840
841 @override
842 FunctionEntity get disableTreeShakingMarker =>
843 _map.toBackendMember(_commonElements.disableTreeShakingMarker);
844
845 @override
846 ConstructorEntity get streamIteratorConstructor =>
847 _map.toBackendMember(_commonElements.streamIteratorConstructor);
848
849 @override
850 ConstructorEntity get asyncStarControllerConstructor =>
851 _map.toBackendMember(_commonElements.asyncStarControllerConstructor);
852
853 @override
854 ClassEntity get asyncStarController =>
855 _map.toBackendClass(_commonElements.asyncStarController);
856
857 @override
858 ConstructorEntity get syncCompleterConstructor =>
859 _map.toBackendMember(_commonElements.syncCompleterConstructor);
860
861 @override
862 ConstructorEntity get syncStarIterableConstructor =>
863 _map.toBackendMember(_commonElements.syncStarIterableConstructor);
864
865 @override
866 ClassEntity get controllerStream =>
867 _map.toBackendClass(_commonElements.controllerStream);
868
869 @override
870 ClassEntity get futureImplementation =>
871 _map.toBackendClass(_commonElements.futureImplementation);
872
873 @override
874 ClassEntity get syncStarIterable =>
875 _map.toBackendClass(_commonElements.syncStarIterable);
876
877 @override
878 FunctionEntity get endOfIteration =>
879 _map.toBackendMember(_commonElements.endOfIteration);
880
881 @override
882 FunctionEntity get streamOfController =>
883 _map.toBackendMember(_commonElements.streamOfController);
884
885 @override
886 FunctionEntity get asyncStarHelper =>
887 _map.toBackendMember(_commonElements.asyncStarHelper);
888
889 @override
890 FunctionEntity get syncStarUncaughtError =>
891 _map.toBackendMember(_commonElements.syncStarUncaughtError);
892
893 @override
894 FunctionEntity get yieldSingle =>
895 _map.toBackendMember(_commonElements.yieldSingle);
896
897 @override
898 FunctionEntity get yieldStar =>
899 _map.toBackendMember(_commonElements.yieldStar);
900
901 @override
902 FunctionEntity get wrapBody => _map.toBackendMember(_commonElements.wrapBody);
903
904 @override
905 FunctionEntity get asyncHelperAwait =>
906 _map.toBackendMember(_commonElements.asyncHelperAwait);
907
908 @override
909 FunctionEntity get asyncHelperRethrow =>
910 _map.toBackendMember(_commonElements.asyncHelperRethrow);
911
912 @override
913 FunctionEntity get asyncHelperReturn =>
914 _map.toBackendMember(_commonElements.asyncHelperReturn);
915
916 @override
917 FunctionEntity get asyncHelperStart =>
918 _map.toBackendMember(_commonElements.asyncHelperStart);
919
920 @override
921 bool isDefaultNoSuchMethodImplementation(FunctionEntity element) {
922 return _commonElements
923 .isDefaultNoSuchMethodImplementation(_map.toFrontendMember(element));
924 }
925
926 @override
927 FunctionEntity get objectNoSuchMethod =>
928 _map.toBackendMember(_commonElements.objectNoSuchMethod);
929
930 @override
931 FunctionEntity get mapLiteralUntypedEmptyMaker =>
932 _map.toBackendMember(_commonElements.mapLiteralUntypedEmptyMaker);
933
934 @override
935 FunctionEntity get mapLiteralUntypedMaker =>
936 _map.toBackendMember(_commonElements.mapLiteralUntypedMaker);
937
938 @override
939 ConstructorEntity get mapLiteralConstructorEmpty =>
940 _map.toBackendMember(_commonElements.mapLiteralConstructorEmpty);
941
942 @override
943 ConstructorEntity get mapLiteralConstructor =>
944 _map.toBackendMember(_commonElements.mapLiteralConstructor);
945
946 @override
947 ClassEntity get mapLiteralClass =>
948 _map.toBackendClass(_commonElements.mapLiteralClass);
949
950 @override
951 FunctionEntity get objectEquals =>
952 _map.toBackendMember(_commonElements.objectEquals);
953
954 @override
955 FunctionEntity get unresolvedTopLevelMethodError =>
956 _map.toBackendMember(_commonElements.unresolvedTopLevelMethodError);
957
958 @override
959 FunctionEntity get unresolvedTopLevelSetterError =>
960 _map.toBackendMember(_commonElements.unresolvedTopLevelSetterError);
961
962 @override
963 FunctionEntity get unresolvedTopLevelGetterError =>
964 _map.toBackendMember(_commonElements.unresolvedTopLevelGetterError);
965
966 @override
967 FunctionEntity get unresolvedStaticMethodError =>
968 _map.toBackendMember(_commonElements.unresolvedStaticMethodError);
969
970 @override
971 FunctionEntity get unresolvedStaticSetterError =>
972 _map.toBackendMember(_commonElements.unresolvedStaticSetterError);
973
974 @override
975 FunctionEntity get unresolvedStaticGetterError =>
976 _map.toBackendMember(_commonElements.unresolvedStaticGetterError);
977
978 @override
979 FunctionEntity get unresolvedConstructorError =>
980 _map.toBackendMember(_commonElements.unresolvedConstructorError);
981
982 @override
983 FunctionEntity get genericNoSuchMethod =>
984 _map.toBackendMember(_commonElements.genericNoSuchMethod);
985
986 @override
987 FunctionEntity get malformedTypeError =>
988 _map.toBackendMember(_commonElements.malformedTypeError);
989
990 @override
991 bool isDefaultEqualityImplementation(MemberEntity element) {
992 return _commonElements
993 .isDefaultEqualityImplementation(_map.toFrontendMember(element));
994 }
995
996 @override
997 InterfaceType get symbolImplementationType {
998 return _map.fromFrontendType(_commonElements.symbolImplementationType);
999 }
1000
1001 @override
1002 FieldEntity get symbolField =>
1003 _map.toBackendMember(_commonElements.symbolField);
1004
1005 @override
1006 InterfaceType getConstantMapTypeFor(InterfaceType sourceType,
1007 {bool hasProtoKey: false, bool onlyStringKeys: false}) {
1008 return _map.fromFrontendType(_commonElements.getConstantMapTypeFor(
1009 _map.toBackendType(sourceType),
1010 hasProtoKey: hasProtoKey,
1011 onlyStringKeys: onlyStringKeys));
1012 }
1013
1014 @override
1015 bool isListSupertype(ClassEntity element) {
1016 return _commonElements.isListSupertype(_map.toFrontendClass(element));
1017 }
1018
1019 @override
1020 bool isStringOnlySupertype(ClassEntity element) {
1021 return _commonElements.isStringOnlySupertype(_map.toFrontendClass(element));
1022 }
1023
1024 @override
1025 bool isNumberOrStringSupertype(ClassEntity element) {
1026 return _commonElements
1027 .isNumberOrStringSupertype(_map.toFrontendClass(element));
1028 }
1029
1030 @override
1031 InterfaceType streamType([DartType elementType]) {
1032 return _map.fromFrontendType(
1033 _commonElements.streamType(_map.toBackendType(elementType)));
1034 }
1035
1036 @override
1037 InterfaceType futureType([DartType elementType]) {
1038 return _map.fromFrontendType(
1039 _commonElements.futureType(_map.toBackendType(elementType)));
1040 }
1041
1042 @override
1043 InterfaceType iterableType([DartType elementType]) {
1044 return _map.fromFrontendType(
1045 _commonElements.iterableType(_map.toBackendType(elementType)));
1046 }
1047
1048 @override
1049 InterfaceType mapType([DartType keyType, DartType valueType]) {
1050 return _map.fromFrontendType(_commonElements.mapType(
1051 _map.toBackendType(keyType), _map.toBackendType(valueType)));
1052 }
1053
1054 @override
1055 InterfaceType listType([DartType elementType]) {
1056 return _map.fromFrontendType(
1057 _commonElements.listType(_map.toBackendType(elementType)));
1058 }
1059
1060 @override
1061 InterfaceType get stackTraceType =>
1062 _map.fromFrontendType(_commonElements.stackTraceType);
1063
1064 @override
1065 InterfaceType get typeLiteralType =>
1066 _map.fromFrontendType(_commonElements.typeLiteralType);
1067
1068 @override
1069 InterfaceType get typeType => _map.fromFrontendType(_commonElements.typeType);
1070
1071 @override
1072 InterfaceType get nullType => _map.fromFrontendType(_commonElements.nullType);
1073
1074 @override
1075 InterfaceType get functionType =>
1076 _map.fromFrontendType(_commonElements.functionType);
1077
1078 @override
1079 InterfaceType get symbolType =>
1080 _map.fromFrontendType(_commonElements.symbolType);
1081
1082 @override
1083 InterfaceType get stringType =>
1084 _map.fromFrontendType(_commonElements.stringType);
1085
1086 @override
1087 InterfaceType get resourceType =>
1088 _map.fromFrontendType(_commonElements.resourceType);
1089
1090 @override
1091 InterfaceType get doubleType =>
1092 _map.fromFrontendType(_commonElements.doubleType);
1093
1094 @override
1095 InterfaceType get intType => _map.fromFrontendType(_commonElements.intType);
1096
1097 @override
1098 InterfaceType get numType => _map.fromFrontendType(_commonElements.numType);
1099
1100 @override
1101 InterfaceType get boolType => _map.fromFrontendType(_commonElements.boolType);
1102
1103 @override
1104 InterfaceType get objectType =>
1105 _map.fromFrontendType(_commonElements.objectType);
1106
1107 @override
1108 DynamicType get dynamicType =>
1109 _map.fromFrontendType(_commonElements.dynamicType);
1110
1111 @override
1112 bool isFilledListConstructor(ConstructorEntity element) {
1113 return _commonElements
1114 .isFilledListConstructor(_map.toFrontendMember(element));
1115 }
1116
1117 @override
1118 bool isUnnamedListConstructor(ConstructorEntity element) {
1119 return _commonElements
1120 .isUnnamedListConstructor(_map.toFrontendMember(element));
1121 }
1122
1123 @override
1124 bool isFunctionApplyMethod(MemberEntity element) {
1125 return _commonElements
1126 .isFunctionApplyMethod(_map.toFrontendMember(element));
1127 }
1128
1129 @override
1130 FunctionEntity get functionApplyMethod =>
1131 _map.toBackendMember(_commonElements.functionApplyMethod);
1132
1133 @override
1134 FunctionEntity get identicalFunction =>
1135 _map.toBackendMember(_commonElements.identicalFunction);
1136
1137 @override
1138 ClassEntity get deferredLibraryClass =>
1139 _map.toBackendClass(_commonElements.deferredLibraryClass);
1140
1141 @override
1142 bool isMirrorsUsedConstructor(ConstructorEntity element) {
1143 return _commonElements
1144 .isMirrorsUsedConstructor(_map.toFrontendMember(element));
1145 }
1146
1147 @override
1148 ClassEntity get mirrorsUsedClass =>
1149 _map.toBackendClass(_commonElements.mirrorsUsedClass);
1150
1151 @override
1152 bool isMirrorSystemGetNameFunction(MemberEntity element) {
1153 return _commonElements
1154 .isMirrorSystemGetNameFunction(_map.toFrontendMember(element));
1155 }
1156
1157 @override
1158 ClassEntity get mirrorSystemClass =>
1159 _map.toBackendClass(_commonElements.mirrorSystemClass);
1160
1161 @override
1162 bool isSymbolConstructor(ConstructorEntity element) {
1163 return _commonElements.isSymbolConstructor(_map.toFrontendMember(element));
1164 }
1165
1166 @override
1167 ConstructorEntity get symbolConstructorTarget =>
1168 _map.toBackendMember(_commonElements.symbolConstructorTarget);
1169
1170 @override
1171 ClassEntity get typedDataClass =>
1172 _map.toBackendClass(_commonElements.typedDataClass);
1173
1174 @override
1175 LibraryEntity get internalLibrary =>
1176 _map.toBackendLibrary(_commonElements.internalLibrary);
1177
1178 @override
1179 LibraryEntity get isolateHelperLibrary =>
1180 _map.toBackendLibrary(_commonElements.isolateHelperLibrary);
1181
1182 @override
1183 LibraryEntity get foreignLibrary =>
1184 _map.toBackendLibrary(_commonElements.foreignLibrary);
1185
1186 @override
1187 LibraryEntity get interceptorsLibrary =>
1188 _map.toBackendLibrary(_commonElements.interceptorsLibrary);
1189
1190 @override
1191 LibraryEntity get jsHelperLibrary =>
1192 _map.toBackendLibrary(_commonElements.jsHelperLibrary);
1193
1194 @override
1195 LibraryEntity get typedDataLibrary =>
1196 _map.toBackendLibrary(_commonElements.typedDataLibrary);
1197
1198 @override
1199 LibraryEntity get mirrorsLibrary =>
1200 _map.toBackendLibrary(_commonElements.mirrorsLibrary);
1201
1202 @override
1203 LibraryEntity get asyncLibrary =>
1204 _map.toBackendLibrary(_commonElements.asyncLibrary);
1205
1206 @override
1207 LibraryEntity get coreLibrary =>
1208 _map.toBackendLibrary(_commonElements.coreLibrary);
1209
1210 @override
1211 ClassEntity get streamClass =>
1212 _map.toBackendClass(_commonElements.streamClass);
1213
1214 @override
1215 ClassEntity get futureClass =>
1216 _map.toBackendClass(_commonElements.futureClass);
1217
1218 @override
1219 ClassEntity get iterableClass =>
1220 _map.toBackendClass(_commonElements.iterableClass);
1221
1222 @override
1223 ClassEntity get mapClass => _map.toBackendClass(_commonElements.mapClass);
1224
1225 @override
1226 ClassEntity get listClass => _map.toBackendClass(_commonElements.listClass);
1227
1228 @override
1229 ClassEntity get stackTraceClass =>
1230 _map.toBackendClass(_commonElements.stackTraceClass);
1231
1232 @override
1233 ClassEntity get typeClass => _map.toBackendClass(_commonElements.typeClass);
1234
1235 @override
1236 ClassEntity get nullClass => _map.toBackendClass(_commonElements.nullClass);
1237
1238 @override
1239 ClassEntity get symbolClass =>
1240 _map.toBackendClass(_commonElements.symbolClass);
1241
1242 @override
1243 ClassEntity get resourceClass =>
1244 _map.toBackendClass(_commonElements.resourceClass);
1245
1246 @override
1247 ClassEntity get functionClass =>
1248 _map.toBackendClass(_commonElements.functionClass);
1249
1250 @override
1251 ClassEntity get stringClass =>
1252 _map.toBackendClass(_commonElements.stringClass);
1253
1254 @override
1255 ClassEntity get doubleClass =>
1256 _map.toBackendClass(_commonElements.doubleClass);
1257
1258 @override
1259 ClassEntity get intClass => _map.toBackendClass(_commonElements.intClass);
1260
1261 @override
1262 ClassEntity get numClass => _map.toBackendClass(_commonElements.numClass);
1263
1264 @override
1265 ClassEntity get boolClass => _map.toBackendClass(_commonElements.boolClass);
1266
1267 @override
1268 FunctionEntity get throwUnsupportedError =>
1269 _map.toBackendMember(_commonElements.throwUnsupportedError);
1270 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/common_elements.dart ('k') | pkg/compiler/lib/src/js_model/js_strategy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698