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

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

Issue 16830002: Be smarter about when to disable global type inference. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged with HEAD Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | dart/sdk/lib/_internal/compiler/implementation/js_backend/backend.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 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 static const int PHASE_SCANNING = 0; 446 static const int PHASE_SCANNING = 0;
447 static const int PHASE_RESOLVING = 1; 447 static const int PHASE_RESOLVING = 1;
448 static const int PHASE_DONE_RESOLVING = 2; 448 static const int PHASE_DONE_RESOLVING = 2;
449 static const int PHASE_COMPILING = 3; 449 static const int PHASE_COMPILING = 3;
450 int phase; 450 int phase;
451 451
452 bool compilationFailed = false; 452 bool compilationFailed = false;
453 453
454 bool hasCrashed = false; 454 bool hasCrashed = false;
455 455
456 /// Set by the backend if real reflection is detected in use of dart:mirrors.
457 bool disableTypeInferenceForMirrors = false;
458
456 Compiler({this.tracer: const Tracer(), 459 Compiler({this.tracer: const Tracer(),
457 this.enableTypeAssertions: false, 460 this.enableTypeAssertions: false,
458 this.enableUserAssertions: false, 461 this.enableUserAssertions: false,
459 this.trustTypeAnnotations: false, 462 this.trustTypeAnnotations: false,
460 this.enableConcreteTypeInference: false, 463 this.enableConcreteTypeInference: false,
461 this.disableTypeInferenceFlag: false, 464 this.disableTypeInferenceFlag: false,
462 this.maxConcreteTypeSize: 5, 465 this.maxConcreteTypeSize: 5,
463 this.enableMinification: false, 466 this.enableMinification: false,
464 this.enableNativeLiveTypeAnalysis: false, 467 this.enableNativeLiveTypeAnalysis: false,
465 bool emitJavaScript: true, 468 bool emitJavaScript: true,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 Universe get codegenWorld => enqueuer.codegen.universe; 526 Universe get codegenWorld => enqueuer.codegen.universe;
524 527
525 bool get hasBuildId => buildId != UNDETERMINED_BUILD_ID; 528 bool get hasBuildId => buildId != UNDETERMINED_BUILD_ID;
526 529
527 bool get mirrorsEnabled => mirrorSystemClass != null; 530 bool get mirrorsEnabled => mirrorSystemClass != null;
528 531
529 bool get analyzeAll => analyzeAllFlag || compileAll; 532 bool get analyzeAll => analyzeAllFlag || compileAll;
530 533
531 bool get compileAll => false; 534 bool get compileAll => false;
532 535
533 bool get disableTypeInference => disableTypeInferenceFlag || mirrorsEnabled; 536 bool get disableTypeInference {
537 return disableTypeInferenceFlag || disableTypeInferenceForMirrors;
538 }
534 539
535 int getNextFreeClassId() => nextFreeClassId++; 540 int getNextFreeClassId() => nextFreeClassId++;
536 541
537 void ensure(bool condition) { 542 void ensure(bool condition) {
538 if (!condition) cancel('failed assertion in leg'); 543 if (!condition) cancel('failed assertion in leg');
539 } 544 }
540 545
541 void unimplemented(String methodName, 546 void unimplemented(String methodName,
542 {Node node, Token token, HInstruction instruction, 547 {Node node, Token token, HInstruction instruction,
543 Element element}) { 548 Element element}) {
(...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after
1392 1397
1393 void close() {} 1398 void close() {}
1394 1399
1395 toString() => name; 1400 toString() => name;
1396 1401
1397 /// Convenience method for getting an [api.CompilerOutputProvider]. 1402 /// Convenience method for getting an [api.CompilerOutputProvider].
1398 static NullSink outputProvider(String name, String extension) { 1403 static NullSink outputProvider(String name, String extension) {
1399 return new NullSink('$name.$extension'); 1404 return new NullSink('$name.$extension');
1400 } 1405 }
1401 } 1406 }
OLDNEW
« no previous file with comments | « no previous file | dart/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698