Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart

Issue 1245573002: dart2js: Use JS_GET_NAME instead of magic constant for catch-all function. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Added a comment on where the catch-all property for closures comes from. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart ('k') | sdk/lib/_internal/js_runtime/lib/js_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698