Tests that exercise Debugger.setVariableValue

Running test: testSetVariableValueMain
{
    id : <messageId>
    result : {
        result : {
            description : 5
            type : number
            value : 5
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            description : 10
            type : number
            value : 10
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            description : NaN
            type : number
            unserializableValue : NaN
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : boolean
            value : true
        }
    }
}
{
    id : <messageId>
    result : {
        result : {
            className : Object
            description : Object
            objectId : <objectId>
            type : object
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                configurable : true
                enumerable : true
                isOwn : true
                name : a
                value : {
                    description : 3
                    type : number
                    value : 3
                }
                writable : true
            }
            [1] : {
                configurable : true
                enumerable : false
                isOwn : true
                name : __proto__
                value : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                writable : true
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : {
            className : Array
            description : Array(3)
            objectId : <objectId>
            subtype : array
            type : object
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                configurable : true
                enumerable : true
                isOwn : true
                name : 0
                value : {
                    type : string
                    value : 1
                }
                writable : true
            }
            [1] : {
                configurable : true
                enumerable : true
                isOwn : true
                name : 1
                value : {
                    type : string
                    value : 2
                }
                writable : true
            }
            [2] : {
                configurable : true
                enumerable : true
                isOwn : true
                name : 2
                value : {
                    type : string
                    value : 3
                }
                writable : true
            }
            [3] : {
                configurable : false
                enumerable : false
                isOwn : true
                name : length
                value : {
                    description : 3
                    type : number
                    value : 3
                }
                writable : true
            }
            [4] : {
                configurable : true
                enumerable : false
                isOwn : true
                name : __proto__
                value : {
                    className : Array
                    description : Array(0)
                    objectId : <objectId>
                    subtype : array
                    type : object
                }
                writable : true
            }
        ]
    }
}
{
    id : <messageId>
    result : {
        result : {
            className : Object
            description : Object
            objectId : <objectId>
            type : object
        }
    }
}
{
    id : <messageId>
    result : {
        result : [
            [0] : {
                configurable : true
                enumerable : true
                isOwn : true
                name : b
                value : {
                    description : 4
                    type : number
                    value : 4
                }
                writable : true
            }
            [1] : {
                configurable : true
                enumerable : false
                isOwn : true
                name : __proto__
                value : {
                    className : Object
                    description : Object
                    objectId : <objectId>
                    type : object
                }
                writable : true
            }
        ]
    }
}

Running test: testInvalidFrame
setVariableValue with invalid callFrameId
{
    error : {
        code : -32000
        message : Invalid call frame id
    }
    id : <messageId>
}
setVariableValue with invalid scopeNumber
{
    error : {
        code : -32602
        data : Failed to deserialize params.scopeNumber - BINDINGS: int32 value expected at <some position>
        message : Invalid parameters
    }
    id : <messageId>
}
setVariableValue with invalid scopeNumber
{
    error : {
        code : -32000
        message : Could not find scope with given number
    }
    id : <messageId>
}
setVariableValue with invalid variableName
{
    error : {
        code : -32603
        message : Internal error
    }
    id : <messageId>
}

Running test: testNewValueErrors
setVariableValue with invalid unserializableValue
{
    error : {
        code : -32000
        message : Couldn't parse value object in call argument
    }
    id : <messageId>
}
setVariableValue with invalid objectId
{
    error : {
        code : -32602
        data : Failed to deserialize params.newValue.objectId - BINDINGS: string value expected at <some position>
        message : Invalid parameters
    }
    id : <messageId>
}
