Chromium Code Reviews| Index: lib/compiler/implementation/js_backend/backend.dart |
| =================================================================== |
| --- lib/compiler/implementation/js_backend/backend.dart (revision 11610) |
| +++ lib/compiler/implementation/js_backend/backend.dart (working copy) |
| @@ -544,4 +544,45 @@ |
| } |
| return info.returnType; |
| } |
| + |
| + SourceString getCheckedModeHelper(Type type) { |
| + Element element = type.element; |
| + bool nativeCheck = |
| + emitter.nativeEmitter.requiresNativeIsCheck(element); |
| + SourceString helper; |
|
kasperl
2012/08/30 14:36:08
Wouldn't it be simpler just to return instead of a
ngeoffray
2012/08/30 17:10:21
Done.
|
| + if (element == compiler.stringClass) { |
| + helper = const SourceString('stringTypeCheck'); |
| + } else if (element == compiler.doubleClass) { |
| + helper = const SourceString('doubleTypeCheck'); |
| + } else if (element == compiler.numClass) { |
| + helper = const SourceString('numTypeCheck'); |
| + } else if (element == compiler.boolClass) { |
| + helper = const SourceString('boolTypeCheck'); |
| + } else if (element == compiler.functionClass || element.isTypedef()) { |
| + helper = const SourceString('functionTypeCheck'); |
| + } else if (element == compiler.intClass) { |
| + helper = const SourceString('intTypeCheck'); |
| + } else if (Elements.isStringSupertype(element, compiler)) { |
| + if (nativeCheck) { |
| + helper = const SourceString('stringSuperNativeTypeCheck'); |
| + } else { |
| + helper = const SourceString('stringSuperTypeCheck'); |
| + } |
| + } else if (element === compiler.listClass) { |
| + helper = const SourceString('listTypeCheck'); |
| + } else { |
| + if (Elements.isListSupertype(element, compiler)) { |
| + if (nativeCheck) { |
| + helper = const SourceString('listSuperNativeTypeCheck'); |
| + } else { |
| + helper = const SourceString('listSuperTypeCheck'); |
| + } |
| + } else if (nativeCheck) { |
| + helper = const SourceString('callTypeCheck'); |
| + } else { |
| + helper = const SourceString('propertyTypeCheck'); |
| + } |
| + } |
| + return helper; |
| + } |
| } |