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 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 | 360 |
361 String visitInvokeSuper(HInvokeSuper invoke) { | 361 String visitInvokeSuper(HInvokeSuper invoke) { |
362 String target = invoke.element.name.slowToString(); | 362 String target = invoke.element.name.slowToString(); |
363 int offset = HInvoke.ARGUMENTS_OFFSET + 1; | 363 int offset = HInvoke.ARGUMENTS_OFFSET + 1; |
364 List arguments = invoke.inputs.sublist(offset); | 364 List arguments = invoke.inputs.sublist(offset); |
365 return visitGenericInvoke("Invoke super", target, arguments); | 365 return visitGenericInvoke("Invoke super", target, arguments); |
366 } | 366 } |
367 | 367 |
368 String visitInvokeConstructorBody(HInvokeConstructorBody invoke) { | 368 String visitInvokeConstructorBody(HInvokeConstructorBody invoke) { |
369 String target = invoke.element.name.slowToString(); | 369 String target = invoke.element.name.slowToString(); |
370 int offset = HInvoke.ARGUMENTS_OFFSET + 1; | 370 return visitGenericInvoke("Invoke constructor body", target, invoke.inputs); |
371 List arguments = invoke.inputs.sublist(offset); | |
372 return visitGenericInvoke("Invoke constructor body", target, arguments); | |
373 } | 371 } |
374 | 372 |
375 String visitForeign(HForeign foreign) { | 373 String visitForeign(HForeign foreign) { |
376 return visitGenericInvoke("Foreign", "${foreign.codeAst}", foreign.inputs); | 374 return visitGenericInvoke("Foreign", "${foreign.codeAst}", foreign.inputs); |
377 } | 375 } |
378 | 376 |
379 String visitForeignNew(HForeignNew node) { | 377 String visitForeignNew(HForeignNew node) { |
380 return visitGenericInvoke("New", | 378 return visitGenericInvoke("New", |
381 "${node.element.name.slowToString()}", | 379 "${node.element.name.slowToString()}", |
382 node.inputs); | 380 node.inputs); |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 return "TypeGuard($on): $guardedId is $type bailout: $bailoutId " | 544 return "TypeGuard($on): $guardedId is $type bailout: $bailoutId " |
547 "env: $envBuffer"; | 545 "env: $envBuffer"; |
548 } | 546 } |
549 | 547 |
550 String visitIs(HIs node) { | 548 String visitIs(HIs node) { |
551 String type = node.typeExpression.toString(); | 549 String type = node.typeExpression.toString(); |
552 return "TypeTest: ${temporaryId(node.expression)} is $type"; | 550 return "TypeTest: ${temporaryId(node.expression)} is $type"; |
553 } | 551 } |
554 | 552 |
555 String visitTypeConversion(HTypeConversion node) { | 553 String visitTypeConversion(HTypeConversion node) { |
| 554 assert(node.inputs.length <= 2); |
| 555 String otherInput = (node.inputs.length == 2) |
| 556 ? temporaryId(node.inputs[1]) |
| 557 : ''; |
556 return "TypeConversion: ${temporaryId(node.checkedInput)} to " | 558 return "TypeConversion: ${temporaryId(node.checkedInput)} to " |
557 "${node.instructionType}"; | 559 "${node.instructionType} $otherInput"; |
558 } | 560 } |
559 | 561 |
560 String visitRangeConversion(HRangeConversion node) { | 562 String visitRangeConversion(HRangeConversion node) { |
561 return "RangeConversion: ${node.checkedInput}"; | 563 return "RangeConversion: ${node.checkedInput}"; |
562 } | 564 } |
563 } | 565 } |
OLD | NEW |