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

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

Issue 2960723004: Handle super-method call (Closed)
Patch Set: Created 3 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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 'needsNativeSupport': program.needsNativeSupport, 131 'needsNativeSupport': program.needsNativeSupport,
132 'enabledJsInterop': backend.nativeBasicData.isJsInteropUsed, 132 'enabledJsInterop': backend.nativeBasicData.isJsInteropUsed,
133 'jsInteropBoostrap': backend.jsInteropAnalysis.buildJsInteropBootstrap(), 133 'jsInteropBoostrap': backend.jsInteropAnalysis.buildJsInteropBootstrap(),
134 'isInterceptorClass': 134 'isInterceptorClass':
135 namer.operatorIs(closedWorld.commonElements.jsInterceptorClass), 135 namer.operatorIs(closedWorld.commonElements.jsInterceptorClass),
136 'isObject': namer.operatorIs(closedWorld.commonElements.objectClass), 136 'isObject': namer.operatorIs(closedWorld.commonElements.objectClass),
137 'specProperty': js.string(namer.nativeSpecProperty), 137 'specProperty': js.string(namer.nativeSpecProperty),
138 'trivialNsmHandlers': emitter.buildTrivialNsmHandlers(), 138 'trivialNsmHandlers': emitter.buildTrivialNsmHandlers(),
139 'hasRetainedMetadata': backend.mirrorsData.hasRetainedMetadata, 139 'hasRetainedMetadata': backend.mirrorsData.hasRetainedMetadata,
140 'types': typesAccess, 140 'types': typesAccess,
141 'objectClassName': js.quoteName(namer.runtimeTypeName( 141 'objectClassName': js.quoteName(
142 // ignore: UNNECESSARY_CAST 142 namer.runtimeTypeName(closedWorld.commonElements.objectClass)),
Siggi Cherem (dart-lang) 2017/06/27 20:12:57 I thought this was needed to keep the code strong
Johnni Winther 2017/06/28 08:03:03 runtimeTypeName has since changed to take an Entit
143 closedWorld.commonElements.objectClass as Entity)),
144 'needsStructuredMemberInfo': emitter.needsStructuredMemberInfo, 143 'needsStructuredMemberInfo': emitter.needsStructuredMemberInfo,
145 'usesMangledNames': closedWorld.commonElements.mirrorsLibrary != null || 144 'usesMangledNames': closedWorld.backendUsage.isMirrorsUsed ||
Johnni Winther 2017/06/28 08:03:03 This was `true` after adding super-calls.... that'
Siggi Cherem (dart-lang) 2017/06/28 15:57:02 super-calls are pulling in mirrors? This actually
Johnni Winther 2017/06/30 08:18:46 Add super-methods sets `needsStructuredMemberInfo`
Siggi Cherem (dart-lang) 2017/06/30 17:34:24 I see - thanks for clarifying.
146 closedWorld.backendUsage.isFunctionApplyUsed, 145 closedWorld.backendUsage.isFunctionApplyUsed,
147 'tearOffCode': buildTearOffCode( 146 'tearOffCode': buildTearOffCode(
148 compiler.options, emitter, namer, closedWorld.commonElements), 147 compiler.options, emitter, namer, closedWorld.commonElements),
149 'nativeInfoHandler': nativeInfoHandler, 148 'nativeInfoHandler': nativeInfoHandler,
150 'operatorIsPrefix': js.string(namer.operatorIsPrefix), 149 'operatorIsPrefix': js.string(namer.operatorIsPrefix),
151 'deferredActionString': js.string(namer.deferredAction) 150 'deferredActionString': js.string(namer.deferredAction)
152 }; 151 };
153 String skeleton = ''' 152 String skeleton = '''
154 function $setupProgramName(programData, typesOffset) { 153 function $setupProgramName(programData, typesOffset) {
155 "use strict"; 154 "use strict";
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 (function() { 848 (function() {
850 var result = $array[$index]; 849 var result = $array[$index];
851 if ($check) { 850 if ($check) {
852 throw new Error( 851 throw new Error(
853 name + ": expected value of type \'$type\' at index " + ($index) + 852 name + ": expected value of type \'$type\' at index " + ($index) +
854 " but got " + (typeof result)); 853 " but got " + (typeof result));
855 } 854 }
856 return result; 855 return result;
857 })()'''; 856 })()''';
858 } 857 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698