OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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.full_emitter; | 5 part of dart2js.js_emitter.full_emitter; |
6 | 6 |
7 // TODO(ahe): Share these with js_helper.dart. | 7 // TODO(ahe): Share these with js_helper.dart. |
8 const FUNCTION_INDEX = 0; | 8 const FUNCTION_INDEX = 0; |
9 const NAME_INDEX = 1; | 9 const NAME_INDEX = 1; |
10 const CALL_NAME_INDEX = 2; | 10 const CALL_NAME_INDEX = 2; |
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
740 if (getterStubName) mangledNames[getterStubName] = reflectionName; | 740 if (getterStubName) mangledNames[getterStubName] = reflectionName; |
741 if (isSetter) { | 741 if (isSetter) { |
742 reflectionName += "="; | 742 reflectionName += "="; |
743 } else if (!isGetter) { | 743 } else if (!isGetter) { |
744 reflectionName += ":" + | 744 reflectionName += ":" + |
745 (requiredParameterCount + optionalParameterCount); | 745 (requiredParameterCount + optionalParameterCount); |
746 } | 746 } |
747 mangledNames[name] = reflectionName; | 747 mangledNames[name] = reflectionName; |
748 funcs[0].$reflectionNameField = reflectionName; | 748 funcs[0].$reflectionNameField = reflectionName; |
749 funcs[0].$metadataIndexField = unmangledNameIndex + 1; | 749 funcs[0].$metadataIndexField = unmangledNameIndex + 1; |
| 750 // The following line installs the [${JsGetName.CALL_CATCH_ALL}] |
| 751 // property for closures. |
750 if (optionalParameterCount) prototype[unmangledName + "*"] = funcs[0]; | 752 if (optionalParameterCount) prototype[unmangledName + "*"] = funcs[0]; |
751 } | 753 } |
752 } | 754 } |
753 } | 755 } |
754 | 756 |
755 #tearOffCode; | 757 #tearOffCode; |
756 } | 758 } |
757 | 759 |
758 if (#hasIncrementalSupport) { | 760 if (#hasIncrementalSupport) { |
759 #incrementalHelper.addStubs = addStubs; | 761 #incrementalHelper.addStubs = addStubs; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 (function() { | 848 (function() { |
847 var result = $array[$index]; | 849 var result = $array[$index]; |
848 if ($check) { | 850 if ($check) { |
849 throw new Error( | 851 throw new Error( |
850 name + ": expected value of type \'$type\' at index " + ($index) + | 852 name + ": expected value of type \'$type\' at index " + ($index) + |
851 " but got " + (typeof result)); | 853 " but got " + (typeof result)); |
852 } | 854 } |
853 return result; | 855 return result; |
854 })()'''; | 856 })()'''; |
855 } | 857 } |
OLD | NEW |