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

Side by Side Diff: pkg/compiler/lib/src/native/enqueue.dart

Issue 1421003004: Add CoreClasses (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comment. Created 5 years, 1 month 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) 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 part of native; 5 part of native;
6 6
7 /** 7 /**
8 * This could be an abstract class but we use it as a stub for the dart_backend. 8 * This could be an abstract class but we use it as a stub for the dart_backend.
9 */ 9 */
10 class NativeEnqueuer { 10 class NativeEnqueuer {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 91
92 /// Subclasses of [NativeEnqueuerBase] are constructed by the backend. 92 /// Subclasses of [NativeEnqueuerBase] are constructed by the backend.
93 NativeEnqueuerBase(this.world, Compiler compiler, this.enableLiveTypeAnalysis) 93 NativeEnqueuerBase(this.world, Compiler compiler, this.enableLiveTypeAnalysis)
94 : this.compiler = compiler, 94 : this.compiler = compiler,
95 processedLibraries = compiler.cacheStrategy.newSet(); 95 processedLibraries = compiler.cacheStrategy.newSet();
96 96
97 JavaScriptBackend get backend => compiler.backend; 97 JavaScriptBackend get backend => compiler.backend;
98 Resolution get resolution => compiler.resolution; 98 Resolution get resolution => compiler.resolution;
99 99
100 DiagnosticReporter get reporter => compiler.reporter; 100 DiagnosticReporter get reporter => compiler.reporter;
101 CoreTypes get coreTypes => compiler.coreTypes;
101 102
102 void processNativeClasses(Iterable<LibraryElement> libraries) { 103 void processNativeClasses(Iterable<LibraryElement> libraries) {
103 if (compiler.hasIncrementalSupport) { 104 if (compiler.hasIncrementalSupport) {
104 // Since [Set.add] returns bool if an element was added, this restricts 105 // Since [Set.add] returns bool if an element was added, this restricts
105 // [libraries] to ones that haven't already been processed. This saves 106 // [libraries] to ones that haven't already been processed. This saves
106 // time during incremental compiles. 107 // time during incremental compiles.
107 libraries = libraries.where(processedLibraries.add); 108 libraries = libraries.where(processedLibraries.add);
108 } 109 }
109 libraries.forEach(processNativeClassesInLibrary); 110 libraries.forEach(processNativeClassesInLibrary);
110 if (backend.isolateHelperLibrary != null) { 111 if (backend.isolateHelperLibrary != null) {
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 if (matchedTypeConstraints.contains(type)) continue; 465 if (matchedTypeConstraints.contains(type)) continue;
465 matchedTypeConstraints.add(type); 466 matchedTypeConstraints.add(type);
466 if (type is SpecialType) { 467 if (type is SpecialType) {
467 if (type == SpecialType.JsObject) { 468 if (type == SpecialType.JsObject) {
468 backend.registerInstantiatedType( 469 backend.registerInstantiatedType(
469 compiler.coreTypes.objectType, world, registry); 470 compiler.coreTypes.objectType, world, registry);
470 } 471 }
471 continue; 472 continue;
472 } 473 }
473 if (type is InterfaceType) { 474 if (type is InterfaceType) {
474 if (type.element == compiler.intClass) { 475 if (type == coreTypes.intType) {
475 backend.registerInstantiatedType(type, world, registry); 476 backend.registerInstantiatedType(type, world, registry);
476 } else if (type.element == compiler.doubleClass) { 477 } else if (type == coreTypes.doubleType) {
477 backend.registerInstantiatedType(type, world, registry); 478 backend.registerInstantiatedType(type, world, registry);
478 } else if (type.element == compiler.numClass) { 479 } else if (type == coreTypes.numType) {
479 backend.registerInstantiatedType( 480 backend.registerInstantiatedType(
480 compiler.coreTypes.doubleType, world, registry); 481 coreTypes.doubleType, world, registry);
481 backend.registerInstantiatedType( 482 backend.registerInstantiatedType(
482 compiler.coreTypes.intType, world, registry); 483 coreTypes.intType, world, registry);
483 } else if (type.element == compiler.stringClass) { 484 } else if (type == coreTypes.stringType) {
484 backend.registerInstantiatedType(type, world, registry); 485 backend.registerInstantiatedType(type, world, registry);
485 } else if (type.element == compiler.nullClass) { 486 } else if (type == coreTypes.nullType) {
486 backend.registerInstantiatedType(type, world, registry); 487 backend.registerInstantiatedType(type, world, registry);
487 } else if (type.element == compiler.boolClass) { 488 } else if (type == coreTypes.boolType) {
488 backend.registerInstantiatedType(type, world, registry); 489 backend.registerInstantiatedType(type, world, registry);
489 } else if (compiler.types.isSubtype( 490 } else if (compiler.types.isSubtype(
490 type, backend.listImplementation.rawType)) { 491 type, backend.listImplementation.rawType)) {
491 backend.registerInstantiatedType(type, world, registry); 492 backend.registerInstantiatedType(type, world, registry);
492 } 493 }
493 } 494 }
494 assert(type is DartType); 495 assert(type is DartType);
495 enqueueUnusedClassesMatching( 496 enqueueUnusedClassesMatching(
496 (nativeClass) => compiler.types.isSubtype(nativeClass.thisType, type), 497 (nativeClass) => compiler.types.isSubtype(nativeClass.thisType, type),
497 cause, 498 cause,
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 superclass, 681 superclass,
681 () => <ClassElement>[]); 682 () => <ClassElement>[]);
682 directSubtypes.add(cls); 683 directSubtypes.add(cls);
683 } 684 }
684 685
685 void logSummary(log(message)) { 686 void logSummary(log(message)) {
686 log('Compiled ${registeredClasses.length} native classes, ' 687 log('Compiled ${registeredClasses.length} native classes, '
687 '${unusedClasses.length} native classes omitted.'); 688 '${unusedClasses.length} native classes omitted.');
688 } 689 }
689 } 690 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/mirrors/dart2js_type_mirrors.dart ('k') | pkg/compiler/lib/src/ordered_typeset.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698