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 : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 221
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : fib
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 15
                                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 : testPreciseCountCoverage
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 38
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}

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 : false
                        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 : 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 : 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 : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 175
                                startOffset : 74
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseBinaryCoverage
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 17
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
            [2] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        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 : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 238
                                startOffset : 0
                            }
                        ]
                    }
                    [1] : {
                        functionName : outer
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 224
                                startOffset : 10
                            }
                        ]
                    }
                    [2] : {
                        functionName : nested_0
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 176
                                startOffset : 31
                            }
                        ]
                    }
                    [3] : {
                        functionName : nested_1
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 172
                                startOffset : 64
                            }
                        ]
                    }
                    [4] : {
                        functionName : nested_2
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 166
                                startOffset : 99
                            }
                        ]
                    }
                    [5] : {
                        functionName : nested_3
                        isBlockCoverage : false
                        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 : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 172
                                startOffset : 64
                            }
                        ]
                    }
                    [1] : {
                        functionName : nested_2
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 0
                                endOffset : 166
                                startOffset : 99
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : testPreciseCountCoveragePartial
            }
            [1] : {
                functions : [
                    [0] : {
                        functionName : 
                        isBlockCoverage : false
                        ranges : [
                            [0] : {
                                count : 1
                                endOffset : 3
                                startOffset : 0
                            }
                        ]
                    }
                ]
                scriptId : <scriptId>
                url : 
            }
        ]
    }
}
