Test class fields scopes

Running test: testScopesPaused
[
    [0] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 14
            lineNumber : 2
            scriptId : <scriptId>
        }
        functionName : foo
        location : {
            columnNumber : 4
            lineNumber : 3
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 3
                    lineNumber : 5
                    scriptId : <scriptId>
                }
                name : foo
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 14
                    lineNumber : 2
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : closure
            }
            [2] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : global
            description : global
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [1] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 12
            lineNumber : 1
            scriptId : <scriptId>
        }
        functionName : run
        location : {
            columnNumber : 5
            lineNumber : 13
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 3
                    lineNumber : 15
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 9
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                type : block
            }
            [1] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : local
            }
            [2] : {
                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 : 
    }
]
[
    [0] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 4
            lineNumber : 12
            scriptId : <scriptId>
        }
        functionName : <instance_fields_initializer>
        location : {
            columnNumber : 8
            lineNumber : 12
            scriptId : <scriptId>
        }
        scopeChain : [
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [1] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        functionName : X
        location : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                name : X
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : closure
            }
            [2] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [2] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 12
            lineNumber : 1
            scriptId : <scriptId>
        }
        functionName : run
        location : {
            columnNumber : 2
            lineNumber : 18
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    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 : 
    }
    [3] : {
        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 : 
    }
]
[
    [0] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 4
            lineNumber : 12
            scriptId : <scriptId>
        }
        functionName : <instance_fields_initializer>
        location : {
            columnNumber : 14
            lineNumber : 13
            scriptId : <scriptId>
        }
        scopeChain : [
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [1] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        functionName : X
        location : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                name : X
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : closure
            }
            [2] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [2] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 12
            lineNumber : 1
            scriptId : <scriptId>
        }
        functionName : run
        location : {
            columnNumber : 2
            lineNumber : 18
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    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 : 
    }
    [3] : {
        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 : 
    }
]
[
    [0] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 4
            lineNumber : 12
            scriptId : <scriptId>
        }
        functionName : <instance_fields_initializer>
        location : {
            columnNumber : 8
            lineNumber : 14
            scriptId : <scriptId>
        }
        scopeChain : [
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [1] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        functionName : X
        location : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                name : X
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : closure
            }
            [2] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [2] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 12
            lineNumber : 1
            scriptId : <scriptId>
        }
        functionName : run
        location : {
            columnNumber : 2
            lineNumber : 18
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    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 : 
    }
    [3] : {
        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 : 
    }
]
[
    [0] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 14
            lineNumber : 7
            scriptId : <scriptId>
        }
        functionName : bar
        location : {
            columnNumber : 4
            lineNumber : 8
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 3
                    lineNumber : 9
                    scriptId : <scriptId>
                }
                name : bar
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 14
                    lineNumber : 7
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : closure
            }
            [2] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : global
            description : global
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [1] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 4
            lineNumber : 12
            scriptId : <scriptId>
        }
        functionName : <instance_fields_initializer>
        location : {
            columnNumber : 8
            lineNumber : 14
            scriptId : <scriptId>
        }
        scopeChain : [
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [2] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        functionName : X
        location : {
            columnNumber : 2
            lineNumber : 11
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                name : X
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 2
                    lineNumber : 11
                    scriptId : <scriptId>
                }
                type : local
            }
            [1] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    scriptId : <scriptId>
                }
                name : run
                object : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                startLocation : {
                    columnNumber : 12
                    lineNumber : 1
                    scriptId : <scriptId>
                }
                type : closure
            }
            [2] : {
                object : {
                    className : global
                    description : global
                    objectId : <objectId>
                    type : object
                }
                type : global
            }
        ]
        this : {
            className : X
            description : X
            objectId : <objectId>
            type : object
        }
        url : 
    }
    [3] : {
        callFrameId : <callFrameId>
        functionLocation : {
            columnNumber : 12
            lineNumber : 1
            scriptId : <scriptId>
        }
        functionName : run
        location : {
            columnNumber : 2
            lineNumber : 18
            scriptId : <scriptId>
        }
        scopeChain : [
            [0] : {
                endLocation : {
                    columnNumber : 1
                    lineNumber : 19
                    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 : 
    }
    [4] : {
        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 : 
    }
]
