| 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 974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 985 enqueuer.registerInstantiatedClass(compiler.closureClass, elements); | 985 enqueuer.registerInstantiatedClass(compiler.closureClass, elements); |
| 986 } else if (cls == compiler.mapClass) { | 986 } else if (cls == compiler.mapClass) { |
| 987 // The backend will use a literal list to initialize the entries | 987 // The backend will use a literal list to initialize the entries |
| 988 // of the map. | 988 // of the map. |
| 989 enqueuer.registerInstantiatedClass(compiler.listClass, elements); | 989 enqueuer.registerInstantiatedClass(compiler.listClass, elements); |
| 990 enqueuer.registerInstantiatedClass(mapLiteralClass, elements); | 990 enqueuer.registerInstantiatedClass(mapLiteralClass, elements); |
| 991 enqueueInResolution(getMapMaker(), elements); | 991 enqueueInResolution(getMapMaker(), elements); |
| 992 } | 992 } |
| 993 } | 993 } |
| 994 ClassElement result = null; | 994 ClassElement result = null; |
| 995 if (cls == compiler.stringClass) { | 995 if (cls == compiler.stringClass || cls == jsStringClass) { |
| 996 addInterceptors(jsStringClass, enqueuer, elements); | 996 addInterceptors(jsStringClass, enqueuer, elements); |
| 997 } else if (cls == compiler.listClass) { | 997 } else if (cls == compiler.listClass |
| 998 || cls == jsArrayClass |
| 999 || cls == jsFixedArrayClass |
| 1000 || cls == jsExtendableArrayClass) { |
| 998 addInterceptors(jsArrayClass, enqueuer, elements); | 1001 addInterceptors(jsArrayClass, enqueuer, elements); |
| 999 enqueuer.registerInstantiatedClass(jsFixedArrayClass, elements); | 1002 enqueuer.registerInstantiatedClass(jsFixedArrayClass, elements); |
| 1000 enqueuer.registerInstantiatedClass(jsExtendableArrayClass, elements); | 1003 enqueuer.registerInstantiatedClass(jsExtendableArrayClass, elements); |
| 1001 } else if (cls == compiler.intClass) { | 1004 } else if (cls == compiler.intClass || cls == jsIntClass) { |
| 1002 addInterceptors(jsIntClass, enqueuer, elements); | 1005 addInterceptors(jsIntClass, enqueuer, elements); |
| 1003 addInterceptors(jsNumberClass, enqueuer, elements); | 1006 addInterceptors(jsNumberClass, enqueuer, elements); |
| 1004 } else if (cls == compiler.doubleClass) { | 1007 } else if (cls == compiler.doubleClass || cls == jsDoubleClass) { |
| 1005 addInterceptors(jsDoubleClass, enqueuer, elements); | 1008 addInterceptors(jsDoubleClass, enqueuer, elements); |
| 1006 addInterceptors(jsNumberClass, enqueuer, elements); | 1009 addInterceptors(jsNumberClass, enqueuer, elements); |
| 1007 } else if (cls == compiler.functionClass) { | 1010 } else if (cls == compiler.functionClass || cls == jsFunctionClass) { |
| 1008 addInterceptors(jsFunctionClass, enqueuer, elements); | 1011 addInterceptors(jsFunctionClass, enqueuer, elements); |
| 1009 } else if (cls == compiler.boolClass) { | 1012 } else if (cls == compiler.boolClass || cls == jsBoolClass) { |
| 1010 addInterceptors(jsBoolClass, enqueuer, elements); | 1013 addInterceptors(jsBoolClass, enqueuer, elements); |
| 1011 } else if (cls == compiler.nullClass) { | 1014 } else if (cls == compiler.nullClass || cls == jsNullClass) { |
| 1012 addInterceptors(jsNullClass, enqueuer, elements); | 1015 addInterceptors(jsNullClass, enqueuer, elements); |
| 1013 } else if (cls == compiler.numClass) { | 1016 } else if (cls == compiler.numClass || cls == jsNumberClass) { |
| 1014 addInterceptors(jsIntClass, enqueuer, elements); | 1017 addInterceptors(jsIntClass, enqueuer, elements); |
| 1015 addInterceptors(jsDoubleClass, enqueuer, elements); | 1018 addInterceptors(jsDoubleClass, enqueuer, elements); |
| 1016 addInterceptors(jsNumberClass, enqueuer, elements); | 1019 addInterceptors(jsNumberClass, enqueuer, elements); |
| 1017 } else if (cls == compiler.mapClass) { | |
| 1018 } else if (cls.isNative()) { | 1020 } else if (cls.isNative()) { |
| 1019 addInterceptorsForNativeClassMembers(cls, enqueuer); | 1021 addInterceptorsForNativeClassMembers(cls, enqueuer); |
| 1020 } | 1022 } |
| 1021 | 1023 |
| 1022 if (compiler.enableTypeAssertions) { | 1024 if (compiler.enableTypeAssertions) { |
| 1023 // We need to register is checks for assignments to fields. | 1025 // We need to register is checks for assignments to fields. |
| 1024 cls.forEachLocalMember((Element member) { | 1026 cls.forEachLocalMember((Element member) { |
| 1025 if (!member.isInstanceMember() || !member.isField()) return; | 1027 if (!member.isInstanceMember() || !member.isField()) return; |
| 1026 DartType type = member.computeType(compiler); | 1028 DartType type = member.computeType(compiler); |
| 1027 enqueuer.registerIsCheck(type, elements); | 1029 enqueuer.registerIsCheck(type, elements); |
| (...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1667 ClassElement get constListImplementation => jsArrayClass; | 1669 ClassElement get constListImplementation => jsArrayClass; |
| 1668 ClassElement get fixedListImplementation => jsFixedArrayClass; | 1670 ClassElement get fixedListImplementation => jsFixedArrayClass; |
| 1669 ClassElement get growableListImplementation => jsExtendableArrayClass; | 1671 ClassElement get growableListImplementation => jsExtendableArrayClass; |
| 1670 ClassElement get mapImplementation => mapLiteralClass; | 1672 ClassElement get mapImplementation => mapLiteralClass; |
| 1671 ClassElement get constMapImplementation => constMapLiteralClass; | 1673 ClassElement get constMapImplementation => constMapLiteralClass; |
| 1672 ClassElement get functionImplementation => jsFunctionClass; | 1674 ClassElement get functionImplementation => jsFunctionClass; |
| 1673 ClassElement get typeImplementation => typeLiteralClass; | 1675 ClassElement get typeImplementation => typeLiteralClass; |
| 1674 ClassElement get boolImplementation => jsBoolClass; | 1676 ClassElement get boolImplementation => jsBoolClass; |
| 1675 ClassElement get nullImplementation => jsNullClass; | 1677 ClassElement get nullImplementation => jsNullClass; |
| 1676 } | 1678 } |
| OLD | NEW |