OLD | NEW |
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 library tracer; | 5 library tracer; |
6 | 6 |
7 import 'dart:io'; | 7 import 'dart:io'; |
8 import 'ssa.dart'; | 8 import 'ssa.dart'; |
9 import '../js_backend/js_backend.dart'; | 9 import '../js_backend/js_backend.dart'; |
10 import '../dart2jslib.dart'; | 10 import '../dart2jslib.dart'; |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 } | 341 } |
342 | 342 |
343 String visitInvokeClosure(HInvokeClosure node) | 343 String visitInvokeClosure(HInvokeClosure node) |
344 => visitInvokeDynamic(node, "closure"); | 344 => visitInvokeDynamic(node, "closure"); |
345 | 345 |
346 String visitInvokeDynamic(HInvokeDynamic invoke, String kind) { | 346 String visitInvokeDynamic(HInvokeDynamic invoke, String kind) { |
347 String receiver = temporaryId(invoke.receiver); | 347 String receiver = temporaryId(invoke.receiver); |
348 String name = invoke.selector.name.slowToString(); | 348 String name = invoke.selector.name.slowToString(); |
349 String target = "($kind) $receiver.$name"; | 349 String target = "($kind) $receiver.$name"; |
350 int offset = HInvoke.ARGUMENTS_OFFSET; | 350 int offset = HInvoke.ARGUMENTS_OFFSET; |
351 List arguments = | 351 List arguments = invoke.inputs.sublist(offset); |
352 invoke.inputs.getRange(offset, invoke.inputs.length - offset); | |
353 return visitGenericInvoke("Invoke", target, arguments); | 352 return visitGenericInvoke("Invoke", target, arguments); |
354 } | 353 } |
355 | 354 |
356 String visitInvokeDynamicMethod(HInvokeDynamicMethod node) | 355 String visitInvokeDynamicMethod(HInvokeDynamicMethod node) |
357 => visitInvokeDynamic(node, "method"); | 356 => visitInvokeDynamic(node, "method"); |
358 String visitInvokeDynamicGetter(HInvokeDynamicGetter node) | 357 String visitInvokeDynamicGetter(HInvokeDynamicGetter node) |
359 => visitInvokeDynamic(node, "get"); | 358 => visitInvokeDynamic(node, "get"); |
360 String visitInvokeDynamicSetter(HInvokeDynamicSetter node) | 359 String visitInvokeDynamicSetter(HInvokeDynamicSetter node) |
361 => visitInvokeDynamic(node, "set"); | 360 => visitInvokeDynamic(node, "set"); |
362 | 361 |
363 String visitInvokeStatic(HInvokeStatic invoke) { | 362 String visitInvokeStatic(HInvokeStatic invoke) { |
364 String target = temporaryId(invoke.target); | 363 String target = temporaryId(invoke.target); |
365 int offset = HInvoke.ARGUMENTS_OFFSET; | 364 int offset = HInvoke.ARGUMENTS_OFFSET; |
366 List arguments = | 365 List arguments = invoke.inputs.sublist(offset); |
367 invoke.inputs.getRange(offset, invoke.inputs.length - offset); | |
368 return visitGenericInvoke("Invoke", target, arguments); | 366 return visitGenericInvoke("Invoke", target, arguments); |
369 } | 367 } |
370 | 368 |
371 String visitInvokeSuper(HInvokeSuper invoke) { | 369 String visitInvokeSuper(HInvokeSuper invoke) { |
372 String target = temporaryId(invoke.target); | 370 String target = temporaryId(invoke.target); |
373 int offset = HInvoke.ARGUMENTS_OFFSET + 1; | 371 int offset = HInvoke.ARGUMENTS_OFFSET + 1; |
374 List arguments = | 372 List arguments = invoke.inputs.sublist(offset); |
375 invoke.inputs.getRange(offset, invoke.inputs.length - offset); | |
376 return visitGenericInvoke("Invoke super", target, arguments); | 373 return visitGenericInvoke("Invoke super", target, arguments); |
377 } | 374 } |
378 | 375 |
379 String visitForeign(HForeign foreign) { | 376 String visitForeign(HForeign foreign) { |
380 return visitGenericInvoke("Foreign", "${foreign.code}", foreign.inputs); | 377 return visitGenericInvoke("Foreign", "${foreign.code}", foreign.inputs); |
381 } | 378 } |
382 | 379 |
383 String visitForeignNew(HForeignNew node) { | 380 String visitForeignNew(HForeignNew node) { |
384 return visitGenericInvoke("New", | 381 return visitGenericInvoke("New", |
385 "${node.element.name.slowToString()}", | 382 "${node.element.name.slowToString()}", |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 | 547 |
551 String visitTypeConversion(HTypeConversion node) { | 548 String visitTypeConversion(HTypeConversion node) { |
552 return "TypeConversion: ${temporaryId(node.checkedInput)} to " | 549 return "TypeConversion: ${temporaryId(node.checkedInput)} to " |
553 "${node.instructionType}"; | 550 "${node.instructionType}"; |
554 } | 551 } |
555 | 552 |
556 String visitRangeConversion(HRangeConversion node) { | 553 String visitRangeConversion(HRangeConversion node) { |
557 return "RangeConversion: ${node.checkedInput}"; | 554 return "RangeConversion: ${node.checkedInput}"; |
558 } | 555 } |
559 } | 556 } |
OLD | NEW |