Ensure setting and removing a breakpoint affects all Workers sharing a resource by URL.


== Running test suite: Worker.Debugger.SharedBreakpoint
-- Running test case: Worker.Debugger.SharedBreakpoint.CreateWorkers
PASS: Two Workers created.
PASS: Two Workers ready.

-- Running test case: Worker.Debugger.SharedBreakpoint.BreakpointAdded
PASS: All Targets paused.
PASS: Active CalleFrame should be in a Worker.
PASS: Pause reason should be a breakpoint.
PAUSE AT triggerBreakpoint:9:5
      5
      6    function triggerBreakpoint() {
      7        let alpha = 1;
 ->   8        |let beta = 2; // BREAKPOINT
      9        let gamma = 3;
     10    }
     11



-- Running test case: Worker.Debugger.SharedBreakpoint.BreakpointRemoved
PASS: Worker 1 should not have paused.
PASS: Worker 2 should not have paused.

