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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/compiler.dart

Issue 11415287: noSuchMethod generated for super calls (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 dart2js; 5 part of dart2js;
6 6
7 /** 7 /**
8 * If true, print a warning for each method that was resolved, but not 8 * If true, print a warning for each method that was resolved, but not
9 * compiled. 9 * compiled.
10 */ 10 */
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 Backend backend; 199 Backend backend;
200 ConstantHandler constantHandler; 200 ConstantHandler constantHandler;
201 ConstantHandler metadataHandler; 201 ConstantHandler metadataHandler;
202 EnqueueTask enqueuer; 202 EnqueueTask enqueuer;
203 CompilerTask fileReadingTask; 203 CompilerTask fileReadingTask;
204 204
205 static const SourceString MAIN = const SourceString('main'); 205 static const SourceString MAIN = const SourceString('main');
206 static const SourceString CALL_OPERATOR_NAME = const SourceString('call'); 206 static const SourceString CALL_OPERATOR_NAME = const SourceString('call');
207 static const SourceString NO_SUCH_METHOD = const SourceString('noSuchMethod'); 207 static const SourceString NO_SUCH_METHOD = const SourceString('noSuchMethod');
208 static const int NO_SUCH_METHOD_ARG_COUNT = 1; 208 static const int NO_SUCH_METHOD_ARG_COUNT = 1;
209 static const SourceString CREATE_INVOCATION_MIRROR =
210 const SourceString('createInvocationMirror');
209 static const SourceString INVOKE_ON = const SourceString('invokeOn'); 211 static const SourceString INVOKE_ON = const SourceString('invokeOn');
210 static const SourceString RUNTIME_TYPE = const SourceString('runtimeType'); 212 static const SourceString RUNTIME_TYPE = const SourceString('runtimeType');
211 static const SourceString START_ROOT_ISOLATE = 213 static const SourceString START_ROOT_ISOLATE =
212 const SourceString('startRootIsolate'); 214 const SourceString('startRootIsolate');
213 bool enabledNoSuchMethod = false; 215 bool enabledNoSuchMethod = false;
214 bool enabledRuntimeType = false; 216 bool enabledRuntimeType = false;
215 bool enabledFunctionApply = false; 217 bool enabledFunctionApply = false;
216 bool enabledInvokeOn = false; 218 bool enabledInvokeOn = false;
217 219
218 Stopwatch progress; 220 Stopwatch progress;
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 if (identical(element.getEnclosingClass(), objectClass)) { 381 if (identical(element.getEnclosingClass(), objectClass)) {
380 enqueuer.resolution.registerDynamicInvocationOf(element); 382 enqueuer.resolution.registerDynamicInvocationOf(element);
381 return; 383 return;
382 } 384 }
383 enabledNoSuchMethod = true; 385 enabledNoSuchMethod = true;
384 Selector selector = new Selector.noSuchMethod(); 386 Selector selector = new Selector.noSuchMethod();
385 enqueuer.resolution.registerInvocation(NO_SUCH_METHOD, selector); 387 enqueuer.resolution.registerInvocation(NO_SUCH_METHOD, selector);
386 enqueuer.codegen.registerInvocation(NO_SUCH_METHOD, selector); 388 enqueuer.codegen.registerInvocation(NO_SUCH_METHOD, selector);
387 389
388 createInvocationMirrorElement = 390 createInvocationMirrorElement =
389 findHelper(const SourceString('createInvocationMirror')); 391 findHelper(CREATE_INVOCATION_MIRROR);
390 enqueuer.resolution.addToWorkList(createInvocationMirrorElement); 392 enqueuer.resolution.addToWorkList(createInvocationMirrorElement);
391 enqueuer.codegen.addToWorkList(createInvocationMirrorElement); 393 enqueuer.codegen.addToWorkList(createInvocationMirrorElement);
392 } 394 }
393 395
394 void enableIsolateSupport(LibraryElement element) { 396 void enableIsolateSupport(LibraryElement element) {
395 // TODO(ahe): Move this method to Enqueuer. 397 // TODO(ahe): Move this method to Enqueuer.
396 isolateLibrary = element.patch; 398 isolateLibrary = element.patch;
397 enqueuer.resolution.addToWorkList(isolateLibrary.find(START_ROOT_ISOLATE)); 399 enqueuer.resolution.addToWorkList(isolateLibrary.find(START_ROOT_ISOLATE));
398 enqueuer.resolution.addToWorkList( 400 enqueuer.resolution.addToWorkList(
399 isolateLibrary.find(const SourceString('_currentIsolate'))); 401 isolateLibrary.find(const SourceString('_currentIsolate')));
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 // TODO(johnniwinther): Use [spannable] and [message] to provide better 949 // TODO(johnniwinther): Use [spannable] and [message] to provide better
948 // information on assertion errors. 950 // information on assertion errors.
949 if (condition is Function){ 951 if (condition is Function){
950 condition = condition(); 952 condition = condition();
951 } 953 }
952 if (spannable == null || !condition) { 954 if (spannable == null || !condition) {
953 throw new SpannableAssertionFailure(spannable, message); 955 throw new SpannableAssertionFailure(spannable, message);
954 } 956 }
955 return true; 957 return true;
956 } 958 }
OLDNEW
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698