Test collecting code coverage data with Profiler.collectCoverage.

Running test: testPreciseCountBaseline
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}

Running test: testPreciseCountCoverage
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 15
                                endOffset : 73
                                startOffset : 1
                            }
                            [1] : {
                                count : 8
                                endOffset : 41
                                startOffset : 32
                            }
                            [2] : {
                                count : 7
                                endOffset : 72
                                startOffset : 41
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoverage
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}

Running test: testPreciseCountCoverageIncremental
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 15
                                endOffset : 73
                                startOffset : 1
                            }
                            [1] : {
                                count : 8
                                endOffset : 41
                                startOffset : 32
                            }
                            [2] : {
                                count : 7
                                endOffset : 72
                                startOffset : 41
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoverageIncremental
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : unoptimized
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            description : 10946
            type : number
            value : 10946
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : optimized
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : fib
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 21891
                                endOffset : 73
                                startOffset : 1
                            }
                            [1] : {
                                count : 10946
                                endOffset : 41
                                startOffset : 32
                            }
                            [2] : {
                                count : 10945
                                endOffset : 72
                                startOffset : 41
                            }
                        ]
                    }
                    [1] : {
                        functionName : is_optimized
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 2
                                endOffset : 175
                                startOffset : 74
                            }
                            [1] : {
                                count : 1
                                endOffset : 156
                                startOffset : 143
                            }
                            [2] : {
                                count : 1
                                endOffset : 172
                                startOffset : 157
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoverageIncremental
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 2
                                endOffset : 17
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
            [2] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 7
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}

Running test: testPreciseCoverageFail
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    error : {
        code : -32000
        message : Precise coverage has not been started.
    }
    id : <messageId>
}

Running test: testBestEffortCoverage
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}

Running test: testBestEffortCoverageWithPreciseBinaryEnabled
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseBinaryEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseBinaryEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}

Running test: testBestEffortCoverageWithPreciseCountEnabled
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseCountEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testBestEffortCoverageWithPreciseCountEnabled
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}

Running test: testEnablePreciseCountCoverageAtPause
{
    id : <messageId>
    result : {
        result : {
            type : undefined
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}

Running test: testPreciseBinaryCoverage
{
    id : <messageId>
    result : {
        result : {
            description : 8
            type : number
            value : 8
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 73
                                startOffset : 1
                            }
                        ]
                    }
                    [2] : {
                        functionName : is_optimized
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                    [3] : {
                        functionName : iife
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 208
                                startOffset : 177
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseBinaryCoverage
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : unoptimized
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            description : 10946
            type : number
            value : 10946
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : optimized
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : is_optimized
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseBinaryCoverage
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 17
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
            [2] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 7
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}

Running test: testPreciseEmptyScriptCoverageEntries
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}

Running test: testPreciseCountCoveragePartial
{
    id : <messageId>
    result : {
        result : {
            type : undefined
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 238
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : outer
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 224
                                startOffset : 10
                            }
                        ]
                    }
                    [2] : {
                        functionName : nested_0
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 176
                                startOffset : 31
                            }
                        ]
                    }
                    [3] : {
                        functionName : nested_1
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 172
                                startOffset : 64
                            }
                        ]
                    }
                    [4] : {
                        functionName : nested_2
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 166
                                startOffset : 99
                            }
                        ]
                    }
                    [5] : {
                        functionName : nested_3
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 158
                                startOffset : 136
                            }
                        ]
                    }
                    [6] : {
                        functionName : nested_4
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 201
                                startOffset : 179
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoveragePartial
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                functions : [
                    [0] : {
                        functionName : nested_1
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 172
                                startOffset : 64
                            }
                        ]
                    }
                    [1] : {
                        functionName : nested_2
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 166
                                startOffset : 99
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoveragePartial
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : true
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 3
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
