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

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

Issue 190763013: Detect total switches to prevent type pollution by default cases. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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
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 library tracer; 5 library tracer;
6 6
7 import 'dart:async' show EventSink; 7 import 'dart:async' show EventSink;
8 8
9 import 'ssa.dart'; 9 import 'ssa.dart';
10 import '../js_backend/js_backend.dart'; 10 import '../js_backend/js_backend.dart';
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 buf.write("Switch: ("); 459 buf.write("Switch: (");
460 buf.write(temporaryId(node.inputs[0])); 460 buf.write(temporaryId(node.inputs[0]));
461 buf.write(") "); 461 buf.write(") ");
462 for (int i = 1; i < node.inputs.length; i++) { 462 for (int i = 1; i < node.inputs.length; i++) {
463 buf.write(temporaryId(node.inputs[i])); 463 buf.write(temporaryId(node.inputs[i]));
464 buf.write(": B"); 464 buf.write(": B");
465 buf.write(node.block.successors[i - 1].id); 465 buf.write(node.block.successors[i - 1].id);
466 buf.write(", "); 466 buf.write(", ");
467 } 467 }
468 buf.write("default: B"); 468 buf.write("default: B");
469 buf.write(node.block.successors.last.id); 469 buf.write(node.defaultTarget.id);
470 return buf.toString(); 470 return buf.toString();
471 } 471 }
472 472
473 String visitThis(HThis node) => "this"; 473 String visitThis(HThis node) => "this";
474 474
475 String visitThrow(HThrow node) => "Throw ${temporaryId(node.inputs[0])}"; 475 String visitThrow(HThrow node) => "Throw ${temporaryId(node.inputs[0])}";
476 476
477 String visitThrowExpression(HThrowExpression node) { 477 String visitThrowExpression(HThrowExpression node) {
478 return "ThrowExpression ${temporaryId(node.inputs[0])}"; 478 return "ThrowExpression ${temporaryId(node.inputs[0])}";
479 } 479 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 } 539 }
540 540
541 String visitInterfaceType(HInterfaceType node) { 541 String visitInterfaceType(HInterfaceType node) {
542 return "InterfaceType: ${node.dartType}"; 542 return "InterfaceType: ${node.dartType}";
543 } 543 }
544 544
545 String visitDynamicType(HDynamicType node) { 545 String visitDynamicType(HDynamicType node) {
546 return "DynamicType"; 546 return "DynamicType";
547 } 547 }
548 } 548 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698