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 
function foo1() { Promise.resolve().then(() => ^42) }
function foo2() { Promise.resolve().then(() => 42) }
paused in 
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 
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 
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();

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 
function foo5() { Promise.resolve().then(() => ^42) }
function foo6() { Promise.resolve().then(() => 42) }

paused in 
function foo5() { Promise.resolve().then(() => 42^) }
function foo6() { Promise.resolve().then(() => 42) }

paused in 
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { Promise.resolve().then(() => ^42) }

paused in 
function foo5() { Promise.resolve().then(() => 42) }
function foo6() { Promise.resolve().then(() => 42^) }


Running test: arrowFunctionReturn
#() => #239#
#
function foo() { function boo() { return 239 }  #}
#
function foo() { function boo() { #return 239# }; #boo #}
#
function foo() { let boo = #function() { #return 239# }; #}
#
#() => { #239 #}
#
function foo() { #239 #}
#
#() => #239#
#() => { #return 239# }#

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