| OLD | NEW |
| 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 js_backend; | 5 part of js_backend; |
| 6 | 6 |
| 7 typedef void Recompile(Element element); | 7 typedef void Recompile(Element element); |
| 8 | 8 |
| 9 class ReturnInfo { | 9 class ReturnInfo { |
| 10 HType returnType; | 10 HType returnType; |
| (...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 void registerInstantiatedClass(ClassElement cls, Enqueuer enqueuer) { | 828 void registerInstantiatedClass(ClassElement cls, Enqueuer enqueuer) { |
| 829 ClassElement result = null; | 829 ClassElement result = null; |
| 830 if (!_interceptorsAreInitialized) { | 830 if (!_interceptorsAreInitialized) { |
| 831 initializeInterceptorElements(); | 831 initializeInterceptorElements(); |
| 832 _interceptorsAreInitialized = true; | 832 _interceptorsAreInitialized = true; |
| 833 } | 833 } |
| 834 if (cls == compiler.stringClass) { | 834 if (cls == compiler.stringClass) { |
| 835 result = jsStringClass; | 835 result = jsStringClass; |
| 836 } else if (cls == compiler.listClass) { | 836 } else if (cls == compiler.listClass) { |
| 837 result = jsArrayClass; | 837 result = jsArrayClass; |
| 838 // The backend will try to optimize array access and use the |
| 839 // [:ioore:] and [:iae:] helpers directly. |
| 840 enqueuer.registerStaticUse( |
| 841 compiler.findHelper(const SourceString('ioore'))); |
| 842 enqueuer.registerStaticUse( |
| 843 compiler.findHelper(const SourceString('iae'))); |
| 838 } else if (cls == compiler.intClass) { | 844 } else if (cls == compiler.intClass) { |
| 839 result = jsIntClass; | 845 result = jsIntClass; |
| 840 enqueuer.registerInstantiatedClass(jsNumberClass); | 846 enqueuer.registerInstantiatedClass(jsNumberClass); |
| 841 } else if (cls == compiler.doubleClass) { | 847 } else if (cls == compiler.doubleClass) { |
| 842 result = jsDoubleClass; | 848 result = jsDoubleClass; |
| 843 enqueuer.registerInstantiatedClass(jsNumberClass); | 849 enqueuer.registerInstantiatedClass(jsNumberClass); |
| 844 } else if (cls == compiler.functionClass) { | 850 } else if (cls == compiler.functionClass) { |
| 845 result = jsFunctionClass; | 851 result = jsFunctionClass; |
| 846 } else if (cls == compiler.boolClass) { | 852 } else if (cls == compiler.boolClass) { |
| 847 result = jsBoolClass; | 853 result = jsBoolClass; |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1116 print("Inferred return types:"); | 1122 print("Inferred return types:"); |
| 1117 print("----------------------"); | 1123 print("----------------------"); |
| 1118 dumpReturnTypes(); | 1124 dumpReturnTypes(); |
| 1119 print(""); | 1125 print(""); |
| 1120 print("Inferred field types:"); | 1126 print("Inferred field types:"); |
| 1121 print("------------------------"); | 1127 print("------------------------"); |
| 1122 fieldTypes.dump(); | 1128 fieldTypes.dump(); |
| 1123 print(""); | 1129 print(""); |
| 1124 } | 1130 } |
| 1125 } | 1131 } |
| OLD | NEW |