OLD | NEW |
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 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 return "Continue ${node.label.labelName}: (B${target.id})"; | 256 return "Continue ${node.label.labelName}: (B${target.id})"; |
257 } | 257 } |
258 return "Continue: (B${target.id})"; | 258 return "Continue: (B${target.id})"; |
259 } | 259 } |
260 | 260 |
261 String visitDivide(HDivide node) => handleInvokeBinary(node, '/'); | 261 String visitDivide(HDivide node) => handleInvokeBinary(node, '/'); |
262 | 262 |
263 String visitExit(HExit node) => "exit"; | 263 String visitExit(HExit node) => "exit"; |
264 | 264 |
265 String visitFieldGet(HFieldGet node) { | 265 String visitFieldGet(HFieldGet node) { |
| 266 if (node.isNullCheck) { |
| 267 return 'null check on ${temporaryId(node.receiver)}'; |
| 268 } |
266 String fieldName = node.element.name; | 269 String fieldName = node.element.name; |
267 return 'field get ${temporaryId(node.receiver)}.$fieldName'; | 270 return 'field get ${temporaryId(node.receiver)}.$fieldName'; |
268 } | 271 } |
269 | 272 |
270 String visitFieldSet(HFieldSet node) { | 273 String visitFieldSet(HFieldSet node) { |
271 String valueId = temporaryId(node.value); | 274 String valueId = temporaryId(node.value); |
272 String fieldName = node.element.name; | 275 String fieldName = node.element.name; |
273 return 'field set ${temporaryId(node.receiver)}.$fieldName to $valueId'; | 276 return 'field set ${temporaryId(node.receiver)}.$fieldName to $valueId'; |
274 } | 277 } |
275 | 278 |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
512 | 515 |
513 String visitTypeKnown(HTypeKnown node) { | 516 String visitTypeKnown(HTypeKnown node) { |
514 assert(node.inputs.length == 1); | 517 assert(node.inputs.length == 1); |
515 return "TypeKnown: ${temporaryId(node.checkedInput)} is ${node.knownType}"; | 518 return "TypeKnown: ${temporaryId(node.checkedInput)} is ${node.knownType}"; |
516 } | 519 } |
517 | 520 |
518 String visitRangeConversion(HRangeConversion node) { | 521 String visitRangeConversion(HRangeConversion node) { |
519 return "RangeConversion: ${node.checkedInput}"; | 522 return "RangeConversion: ${node.checkedInput}"; |
520 } | 523 } |
521 } | 524 } |
OLD | NEW |