summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/xpcshell/test_breakpoint-19.js
blob: 013acdfaf17ec67acee0e2132bcf33f8abf923c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

/**
 * Make sure that setting a breakpoint in a not-yet-existing script doesn't throw
 * an error (see bug 897567). Also make sure that this breakpoint works.
 */

const URL = "test.js";

function setUpCode(debuggee) {
  /* eslint-disable mozilla/var-only-at-top-level, no-unused-vars */
  // prettier-ignore
  Cu.evalInSandbox(
    "" + function test() { // 1
      var a = 1;           // 2
      debugger;            // 3
    } +                    // 4
    "\ndebugger;",         // 5
    debuggee,
    "1.8",
    URL
  );
  /* eslint-enable mozilla/var-only-at-top-level, no-unused-vars */
}

add_task(
  threadFrontTest(async ({ threadFront, debuggee }) => {
    setBreakpoint(threadFront, { sourceUrl: URL, line: 2 });

    await executeOnNextTickAndWaitForPause(
      () => setUpCode(debuggee),
      threadFront
    );
    await resume(threadFront);

    const packet = await executeOnNextTickAndWaitForPause(
      debuggee.test,
      threadFront
    );
    equal(packet.why.type, "breakpoint");
  })
);