Test for Debugger.getPossibleBreakpoints

Running test: getPossibleBreakpointsInRange
Test start.scriptId != end.scriptId.
{
    error : {
        code : -32000
        message : Locations should contain the same scriptId
    }
    id : <messageId>
}
Test not existing scriptId.
{
    error : {
        code : -32000
        message : Script not found
    }
    id : <messageId>
}
Test end < start.
function foo(){ return Promise.resolve(); }
function boo(){ return Promise.resolve().then(() => 42); }


Test empty range in first line.
function foo(){ return Promise.resolve(); }
function boo(){ return Promise.resolve().then(() => 42); }


Test one character range in first line.
function foo(){ #return Promise.resolve(); }
function boo(){ return Promise.resolve().then(() => 42); }


Test empty range in not first line.
function foo(){ return Promise.resolve(); }
function boo(){ return Promise.resolve().then(() => 42); }


Test one character range in not first line.
function foo(){ return Promise.resolve(); }
function boo(){ #return Promise.resolve().then(() => 42); }


Test end is undefined
function foo(){ #return Promise.#resolve();# }
function boo(){ #return Promise.#resolve().#then(() => #42#);# }
#

Test end.lineNumber > scripts.lineCount()
function foo(){ #return Promise.#resolve();# }
function boo(){ #return Promise.#resolve().#then(() => #42#);# }
#

Test one string
function foo(){ #return Promise.#resolve();# }
function boo(){ return Promise.resolve().then(() => 42); }


Test end.columnNumber > end.line.length(), should be the same as previous.
function foo(){ #return Promise.#resolve();# }
function boo(){ return Promise.resolve().then(() => 42); }



Running test: getPossibleBreakpointsInArrow
function foo() { #return Promise.#resolve().#then(() => #239#).#then(() => #42#).#then(() => #() => #42#)# #}

Running test: arrowFunctionFirstLine
function foo1() { #Promise.#resolve().#then(() => #42#) #}
function foo2() { Promise.resolve().then(() => 42) }
paused in foo1
function foo1() { ^Promise.resolve().then(() => 42) }
function foo2() { Promise.resolve().then(() => 42) }
paused in foo1
function foo1() { Promise.^resolve().then(() => 42) }
function foo2() { Promise.resolve().then(() => 42) }
paused in foo1
function foo1() { Promise.resolve().^then(() => 42) }
function foo2() { Promise.resolve().then(() => 42) }
paused in foo1
function foo1() { Promise.resolve().then(() => 42) ^}
function foo2() { Promise.resolve().then(() => 42) }
paused in Promise.resolve.then
function foo1() { Promise.resolve().then(() => ^42) }
function foo2() { Promise.resolve().then(() => 42) }
paused in Promise.resolve.then
function foo1() { Promise.resolve().then(() => 42^) }
function foo2() { Promise.resolve().then(() => 42) }

Running test: arrowFunctionOnPause
#debugger; function foo3() { #Promise.#resolve().#then(() => #42#) #}
function foo4() { #Promise.#resolve().#then(() => #42#) #};
#foo3();
#foo4()#;
paused in 
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => 42) };
^foo3();
foo4();
paused in foo3
debugger; function foo3() { ^Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => 42) };
foo3();
foo4();
paused in foo3
debugger; function foo3() { Promise.^resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => 42) };
foo3();
foo4();
paused in foo3
debugger; function foo3() { Promise.resolve().^then(() => 42) }
function foo4() { Promise.resolve().then(() => 42) };
foo3();
foo4();
paused in foo3
debugger; function foo3() { Promise.resolve().then(() => 42) ^}
function foo4() { Promise.resolve().then(() => 42) };
foo3();
foo4();
paused in 
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => 42) };
foo3();
^foo4();
paused in foo4
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { ^Promise.resolve().then(() => 42) };
foo3();
foo4();
paused in foo4
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.^resolve().then(() => 42) };
foo3();
foo4();
paused in foo4
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().^then(() => 42) };
foo3();
foo4();
paused in foo4
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => 42) ^};
foo3();
foo4();
paused in 
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => 42) };
foo3();
foo4()^;
paused in Promise.resolve.then
debugger; function foo3() { Promise.resolve().then(() => ^42) }
function foo4() { Promise.resolve().then(() => 42) };
foo3();
foo4();
paused in Promise.resolve.then
debugger; function foo3() { Promise.resolve().then(() => 42^) }
function foo4() { Promise.resolve().then(() => 42) };
foo3();
foo4();
paused in Promise.resolve.then
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => ^42) };
foo3();
foo4();
paused in Promise.resolve.then
debugger; function foo3() { Promise.resolve().then(() => 42) }
function foo4() { Promise.resolve().then(() => 42^) };
foo3();
foo4();

Running test: getPossibleBreakpointsInRangeWithOffset
Test empty range in first line.
function foo(){ return Promise.resolve(); }
function boo(){ return Promise.resolve().then(() => 42); }


Test one character range in first line.
function foo(){ #return Promise.resolve(); }
function boo(){ return Promise.resolve().then(() => 42); }


Test empty range in not first line.
function foo(){ return Promise.resolve(); }
function boo(){ return Promise.resolve().then(() => 42); }


Test one character range in not first line.
function foo(){ return Promise.resolve(); }
function boo(){ #return Promise.resolve().then(() => 42); }


Test end is undefined
function foo(){ #return Promise.#resolve();# }
function boo(){ #return Promise.#resolve().#then(() => #42#);# }
#

Test end.lineNumber > scripts.lineCount()
function foo(){ #return Promise.#resolve();# }
function boo(){ #return Promise.#resolve().#then(() => #42#);# }
#

Test one string
function foo(){ #return Promise.#resolve();# }
function boo(){ return Promise.resolve().then(() => 42); }


Test end.columnNumber > end.line.length(), should be the same as previous.
function foo(){ #return Promise.#resolve();# }
function boo(){ return Promise.resolve().then(() => 42); }



Running test: withOffset
function foo5() { #Promise.#resolve().#then(() => #42#) #}
function foo6() { #Promise.#resolve().#then(() => #42#) #}
paused in foo5
function foo5() { ^Promise.resolve().then(() => 42) }
function foo6() { Promise.resolve().then(() => 42) }
paused in foo5
function foo5() { Promise.^resolve().then(() => 42) }
function foo6() { Promise.resolve().then(() => 42) }
paused in foo5
function foo5() { Promise.resolve().^then(() => 42) }
function foo6() { Promise.resolve().then(() => 42) }
paused in foo5
function foo5() { Promise.resolve().then(() => 42) ^}
function foo6() { Promise.resolve().then(() => 42) }
paused in foo6
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { ^Promise.resolve().then(() => 42) }
paused in foo6
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { Promise.^resolve().then(() => 42) }
paused in foo6
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { Promise.resolve().^then(() => 42) }
paused in foo6
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { Promise.resolve().then(() => 42) ^}
paused in Promise.resolve.then
function foo5() { Promise.resolve().then(() => ^42) }
function foo6() { Promise.resolve().then(() => 42) }
paused in Promise.resolve.then
function foo5() { Promise.resolve().then(() => 42^) }
function foo6() { Promise.resolve().then(() => 42) }
paused in Promise.resolve.then
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { Promise.resolve().then(() => ^42) }
paused in Promise.resolve.then
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { Promise.resolve().then(() => 42^) }

Running test: arrowFunctionReturn
#() => #239#

function foo() { function boo() { #return 239# }  #}#

#() => { #239 #}#

function foo() { #239 #}#

#() => #23#9#
#() => { #return 239# #}

Running test: argumentsAsCalls
function foo(){#}
function boo(){#}
function main(f1,f2){#}
#main(#foo(), #boo());#

