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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart

Issue 87783003: Add UInt32 and UInt31 types to better infer bit operations. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years 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 | Annotate | Revision Log
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 part of dart2js.js_emitter; 5 part of dart2js.js_emitter;
6 6
7 /** 7 /**
8 * Generates the code for all used classes in the program. Static fields (even 8 * Generates the code for all used classes in the program. Static fields (even
9 * in classes) are ignored, since they can be treated as non-class elements. 9 * in classes) are ignored, since they can be treated as non-class elements.
10 * 10 *
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 needed.addAll(interceptorEmitter.interceptorsReferencedFromConstants()); 787 needed.addAll(interceptorEmitter.interceptorsReferencedFromConstants());
788 788
789 // Add unneeded interceptors to the [unneededClasses] set. 789 // Add unneeded interceptors to the [unneededClasses] set.
790 for (ClassElement interceptor in backend.interceptedClasses) { 790 for (ClassElement interceptor in backend.interceptedClasses) {
791 if (!needed.contains(interceptor) 791 if (!needed.contains(interceptor)
792 && interceptor != compiler.objectClass) { 792 && interceptor != compiler.objectClass) {
793 unneededClasses.add(interceptor); 793 unneededClasses.add(interceptor);
794 } 794 }
795 } 795 }
796 796
797 // These classes are just helpers for the backend's type system.
798 unneededClasses.add(backend.jsMutableArrayClass);
799 unneededClasses.add(backend.jsFixedArrayClass);
800 unneededClasses.add(backend.jsExtendableArrayClass);
801 unneededClasses.add(backend.jsUInt32Class);
802 unneededClasses.add(backend.jsUInt31Class);
803
797 return (ClassElement cls) => !unneededClasses.contains(cls); 804 return (ClassElement cls) => !unneededClasses.contains(cls);
798 } 805 }
799 806
800 void emitFinishClassesInvocationIfNecessary(CodeBuffer buffer) { 807 void emitFinishClassesInvocationIfNecessary(CodeBuffer buffer) {
801 if (needsDefineClass) { 808 if (needsDefineClass) {
802 buffer.write('$finishClassesName($classesCollector,' 809 buffer.write('$finishClassesName($classesCollector,'
803 '$_$isolateProperties,' 810 '$_$isolateProperties,'
804 '${_}null)$N'); 811 '${_}null)$N');
805 812
806 // Reset the map. 813 // Reset the map.
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1592 } 1599 }
1593 1600
1594 bool isDeferred(Element element) { 1601 bool isDeferred(Element element) {
1595 return compiler.deferredLoadTask.isDeferred(element); 1602 return compiler.deferredLoadTask.isDeferred(element);
1596 } 1603 }
1597 1604
1598 bool get areAnyElementsDeferred { 1605 bool get areAnyElementsDeferred {
1599 return compiler.deferredLoadTask.areAnyElementsDeferred; 1606 return compiler.deferredLoadTask.areAnyElementsDeferred;
1600 } 1607 }
1601 } 1608 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698