Test private class fields in scopes

Running test: testScopesPaused
[
    [0] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 16
            lineNumber : 4
            scriptId : <scriptId>
        }
        functionName : A
        location : {
            columnNumber : 6
            lineNumber : 5
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 5
                    lineNumber : 6
                    scriptId : <scriptId>
                }
                name : A
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 16
                    lineNumber : 4
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : A
            description : A
            objectId : <objectId>
            type : object
        }
        url :
    }
    [1] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 12
            lineNumber : 1
            scriptId : <scriptId>
        }
        functionName : run
        location : {
            columnNumber : 2
            lineNumber : 8
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 9
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : global
            description : global
            objectId : <objectId>
            type : object
        }
        url :
    }
    [2] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 0
            lineNumber : 0
            scriptId : <scriptId>
        }
        functionName :
        location : {
            columnNumber : 0
            lineNumber : 0
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : global
            description : global
            objectId : <objectId>
            type : object
        }
        url :
    }
]
