Test for Debugger.evaluateOnCallFrame

Running test: testFoo
Set breakpoint before a = x.
foo()
x = 
{
    type : undefined
}
a = 
{
    type : undefined
}

foo("Hello, world!")
x = 
{
    type : string
    value : Hello, world!
}
a = 
{
    type : undefined
}

Set breakpoint after a = x.
foo("Hello, world!")
x = 
{
    type : string
    value : Hello, world!
}
a = 
{
    type : string
    value : Hello, world!
}


Running test: testZoo
Set breakpoint before y = 0.
zoo("Hello, world!")
x = 
{
    type : string
    value : Hello, world!
}
a = 
{
    type : undefined
}


Running test: testBar
Set breakpoint before a = x.
bar(undefined, "Hello, world!")
x = 
{
    type : undefined
}
a = 
{
    type : undefined
}

Set breakpoint after a = x.
bar(undefined, "Hello, world!")
x = 
{
    type : string
    value : Hello, world!
}
a = 
{
    type : string
    value : Hello, world!
}

