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

Side by Side Diff: pkg/compiler/lib/src/js_backend/backend.dart

Issue 2927093002: Support user class in compile_from_dill_test (Closed)
Patch Set: 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
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 js_backend.backend; 5 library js_backend.backend;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/backend_api.dart' 8 import '../common/backend_api.dart'
9 show ForeignResolver, NativeRegistry, ImpactTransformer; 9 show ForeignResolver, NativeRegistry, ImpactTransformer;
10 import '../common/codegen.dart' show CodegenWorkItem; 10 import '../common/codegen.dart' show CodegenWorkItem;
11 import '../common/names.dart' show Uris; 11 import '../common/names.dart' show Uris;
12 import '../common/resolution.dart' show Resolution, Target; 12 import '../common/resolution.dart' show Resolution, Target;
13 import '../common/tasks.dart' show CompilerTask; 13 import '../common/tasks.dart' show CompilerTask;
14 import '../compiler.dart' show Compiler; 14 import '../compiler.dart' show Compiler;
15 import '../constants/constant_system.dart'; 15 import '../constants/constant_system.dart';
16 import '../constants/expressions.dart'; 16 import '../constants/expressions.dart';
17 import '../constants/values.dart'; 17 import '../constants/values.dart';
18 import '../common_elements.dart' show CommonElements; 18 import '../common_elements.dart' show CommonElements;
19 import '../deferred_load.dart' show DeferredLoadTask; 19 import '../deferred_load.dart' show DeferredLoadTask;
20 import '../dump_info.dart' show DumpInfoTask; 20 import '../dump_info.dart' show DumpInfoTask;
21 import '../elements/elements.dart'; 21 import '../elements/elements.dart';
22 import '../elements/entities.dart'; 22 import '../elements/entities.dart';
23 import '../elements/names.dart'; 23 import '../elements/names.dart';
24 import '../elements/resolution_types.dart'; 24 import '../elements/resolution_types.dart';
25 import '../elements/types.dart';
25 import '../enqueue.dart' 26 import '../enqueue.dart'
26 show 27 show
27 DirectEnqueuerStrategy, 28 DirectEnqueuerStrategy,
28 Enqueuer, 29 Enqueuer,
29 EnqueueTask, 30 EnqueueTask,
30 ResolutionEnqueuer, 31 ResolutionEnqueuer,
31 TreeShakingEnqueuerStrategy; 32 TreeShakingEnqueuerStrategy;
32 import '../frontend_strategy.dart'; 33 import '../frontend_strategy.dart';
33 import '../io/source_information.dart' show SourceInformationStrategy; 34 import '../io/source_information.dart' show SourceInformationStrategy;
34 import '../js/js.dart' as jsAst; 35 import '../js/js.dart' as jsAst;
(...skipping 965 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 } 1001 }
1001 reporter.reportHint(hint, infos); 1002 reporter.reportHint(hint, infos);
1002 } 1003 }
1003 return programSize; 1004 return programSize;
1004 } 1005 }
1005 1006
1006 /** 1007 /**
1007 * Returns [:true:] if the checking of [type] is performed directly on the 1008 * Returns [:true:] if the checking of [type] is performed directly on the
1008 * object and not on an interceptor. 1009 * object and not on an interceptor.
1009 */ 1010 */
1010 bool hasDirectCheckFor(ResolutionDartType type) { 1011 bool hasDirectCheckFor(DartType type) {
1011 Element element = type.element; 1012 if (!type.isInterfaceType) return false;
1013 InterfaceType interfaceType = type;
1014 ClassEntity element = interfaceType.element;
1012 return element == commonElements.stringClass || 1015 return element == commonElements.stringClass ||
1013 element == commonElements.boolClass || 1016 element == commonElements.boolClass ||
1014 element == commonElements.numClass || 1017 element == commonElements.numClass ||
1015 element == commonElements.intClass || 1018 element == commonElements.intClass ||
1016 element == commonElements.doubleClass || 1019 element == commonElements.doubleClass ||
1017 element == commonElements.jsArrayClass || 1020 element == commonElements.jsArrayClass ||
1018 element == commonElements.jsMutableArrayClass || 1021 element == commonElements.jsMutableArrayClass ||
1019 element == commonElements.jsExtendableArrayClass || 1022 element == commonElements.jsExtendableArrayClass ||
1020 element == commonElements.jsFixedArrayClass || 1023 element == commonElements.jsFixedArrayClass ||
1021 element == commonElements.jsUnmodifiableArrayClass; 1024 element == commonElements.jsUnmodifiableArrayClass;
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 1397
1395 bool canUseAliasedSuperMember(MemberEntity member, Selector selector) { 1398 bool canUseAliasedSuperMember(MemberEntity member, Selector selector) {
1396 return !selector.isGetter; 1399 return !selector.isGetter;
1397 } 1400 }
1398 1401
1399 /// Returns `true` if [member] is called from a subclass via `super`. 1402 /// Returns `true` if [member] is called from a subclass via `super`.
1400 bool isAliasedSuperMember(MemberEntity member) { 1403 bool isAliasedSuperMember(MemberEntity member) {
1401 return _aliasedSuperMembers.contains(member); 1404 return _aliasedSuperMembers.contains(member);
1402 } 1405 }
1403 } 1406 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698