| 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 1085 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1096   } | 1096   } | 
| 1097 | 1097 | 
| 1098   HType optimisticFieldType(Element element) { | 1098   HType optimisticFieldType(Element element) { | 
| 1099     return fieldTypes.optimisticFieldType(element); | 1099     return fieldTypes.optimisticFieldType(element); | 
| 1100   } | 1100   } | 
| 1101 | 1101 | 
| 1102   SourceString getCheckedModeHelper(DartType type) { | 1102   SourceString getCheckedModeHelper(DartType type) { | 
| 1103     Element element = type.element; | 1103     Element element = type.element; | 
| 1104     bool nativeCheck = | 1104     bool nativeCheck = | 
| 1105           emitter.nativeEmitter.requiresNativeIsCheck(element); | 1105           emitter.nativeEmitter.requiresNativeIsCheck(element); | 
| 1106     if (type == compiler.types.voidType) { | 1106     if (type.isMalformed) { | 
|  | 1107       // Check for malformed types first, because the type may be a list type | 
|  | 1108       // with a malformed argument type. | 
|  | 1109       return const SourceString('malformedTypeCheck'); | 
|  | 1110     } else if (type == compiler.types.voidType) { | 
| 1107       return const SourceString('voidTypeCheck'); | 1111       return const SourceString('voidTypeCheck'); | 
| 1108     } else if (element == compiler.stringClass) { | 1112     } else if (element == compiler.stringClass) { | 
| 1109       return const SourceString('stringTypeCheck'); | 1113       return const SourceString('stringTypeCheck'); | 
| 1110     } else if (element == compiler.doubleClass) { | 1114     } else if (element == compiler.doubleClass) { | 
| 1111       return const SourceString('doubleTypeCheck'); | 1115       return const SourceString('doubleTypeCheck'); | 
| 1112     } else if (element == compiler.numClass) { | 1116     } else if (element == compiler.numClass) { | 
| 1113       return const SourceString('numTypeCheck'); | 1117       return const SourceString('numTypeCheck'); | 
| 1114     } else if (element == compiler.boolClass) { | 1118     } else if (element == compiler.boolClass) { | 
| 1115       return const SourceString('boolTypeCheck'); | 1119       return const SourceString('boolTypeCheck'); | 
| 1116     } else if (element == compiler.functionClass) { | 1120     } else if (element == compiler.functionClass) { | 
| 1117       return const SourceString('functionTypeCheck'); | 1121       return const SourceString('functionTypeCheck'); | 
| 1118     } else if (element == compiler.intClass) { | 1122     } else if (element == compiler.intClass) { | 
| 1119       return const SourceString('intTypeCheck'); | 1123       return const SourceString('intTypeCheck'); | 
| 1120     } else if (Elements.isNumberOrStringSupertype(element, compiler)) { | 1124     } else if (Elements.isNumberOrStringSupertype(element, compiler)) { | 
| 1121       return nativeCheck | 1125       return nativeCheck | 
| 1122           ? const SourceString('numberOrStringSuperNativeTypeCheck') | 1126           ? const SourceString('numberOrStringSuperNativeTypeCheck') | 
| 1123           : const SourceString('numberOrStringSuperTypeCheck'); | 1127           : const SourceString('numberOrStringSuperTypeCheck'); | 
| 1124     } else if (Elements.isStringOnlySupertype(element, compiler)) { | 1128     } else if (Elements.isStringOnlySupertype(element, compiler)) { | 
| 1125       return nativeCheck | 1129       return nativeCheck | 
| 1126           ? const SourceString('stringSuperNativeTypeCheck') | 1130           ? const SourceString('stringSuperNativeTypeCheck') | 
| 1127           : const SourceString('stringSuperTypeCheck'); | 1131           : const SourceString('stringSuperTypeCheck'); | 
| 1128     } else if (identical(element, compiler.listClass)) { | 1132     } else if (identical(element, compiler.listClass)) { | 
| 1129       return const SourceString('listTypeCheck'); | 1133       return const SourceString('listTypeCheck'); | 
| 1130     } else if (type.isMalformed) { |  | 
| 1131       return const SourceString('malformedTypeCheck'); |  | 
| 1132     } else { | 1134     } else { | 
| 1133       if (Elements.isListSupertype(element, compiler)) { | 1135       if (Elements.isListSupertype(element, compiler)) { | 
| 1134         return nativeCheck | 1136         return nativeCheck | 
| 1135             ? const SourceString('listSuperNativeTypeCheck') | 1137             ? const SourceString('listSuperNativeTypeCheck') | 
| 1136             : const SourceString('listSuperTypeCheck'); | 1138             : const SourceString('listSuperTypeCheck'); | 
| 1137       } else { | 1139       } else { | 
| 1138         return nativeCheck | 1140         return nativeCheck | 
| 1139             ? const SourceString('callTypeCheck') | 1141             ? const SourceString('callTypeCheck') | 
| 1140             : const SourceString('propertyTypeCheck'); | 1142             : const SourceString('propertyTypeCheck'); | 
| 1141       } | 1143       } | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1188   } | 1190   } | 
| 1189 | 1191 | 
| 1190   Element getSetRuntimeTypeInfo() { | 1192   Element getSetRuntimeTypeInfo() { | 
| 1191     return compiler.findHelper(const SourceString('setRuntimeTypeInfo')); | 1193     return compiler.findHelper(const SourceString('setRuntimeTypeInfo')); | 
| 1192   } | 1194   } | 
| 1193 | 1195 | 
| 1194   Element getGetRuntimeTypeInfo() { | 1196   Element getGetRuntimeTypeInfo() { | 
| 1195     return compiler.findHelper(const SourceString('getRuntimeTypeInfo')); | 1197     return compiler.findHelper(const SourceString('getRuntimeTypeInfo')); | 
| 1196   } | 1198   } | 
| 1197 } | 1199 } | 
| OLD | NEW | 
|---|