| Index: pkg/compiler/lib/src/ssa/builder.dart
|
| diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
|
| index 452553f1020c8c6bdba1db168f9589750b27edc8..6021ffcbecdb4207af86a1ec257d66a322da61fe 100644
|
| --- a/pkg/compiler/lib/src/ssa/builder.dart
|
| +++ b/pkg/compiler/lib/src/ssa/builder.dart
|
| @@ -1762,6 +1762,7 @@ class SsaBuilder extends ast.Visitor
|
| stack = <HInstruction>[];
|
|
|
| insertTraceCall(function);
|
| + insertCoverageCall(function);
|
| }
|
|
|
| void restoreState(AstInliningState state) {
|
| @@ -2400,10 +2401,11 @@ class SsaBuilder extends ast.Visitor
|
| }
|
|
|
| insertTraceCall(element);
|
| + insertCoverageCall(element);
|
| }
|
|
|
| insertTraceCall(Element element) {
|
| - if (JavaScriptBackend.TRACE_CALLS) {
|
| + if (JavaScriptBackend.TRACE_METHOD == 'console') {
|
| if (element == backend.traceHelper) return;
|
| n(e) => e == null ? '' : e.name;
|
| String name = "${n(element.library)}:${n(element.enclosingClass)}."
|
| @@ -2415,6 +2417,18 @@ class SsaBuilder extends ast.Visitor
|
| }
|
| }
|
|
|
| + insertCoverageCall(Element element) {
|
| + if (JavaScriptBackend.TRACE_METHOD == 'post') {
|
| + if (element == backend.traceHelper) return;
|
| + // TODO(sigmund): create a better uuid for elements.
|
| + HConstant idConstant = graph.addConstantInt(element.hashCode, compiler);
|
| + HConstant nameConstant = addConstantString(element.name);
|
| + add(new HInvokeStatic(backend.traceHelper,
|
| + <HInstruction>[idConstant, nameConstant],
|
| + backend.dynamicType));
|
| + }
|
| + }
|
| +
|
| /// Check that [type] is valid in the context of `localsHandler.contextClass`.
|
| /// This should only be called in assertions.
|
| bool assertTypeInContext(DartType type, [Spannable spannable]) {
|
|
|