summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/xpcshell/test_breakpoint-23.js
blob: 19023c5bb67292f4fe4f63409e69874a5d5fa5ef (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
/* eslint-disable max-nested-callbacks */
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

/**
 * Bug 1552453 - Verify that breakpoints are hit for evaluated
 * scripts that contain a source url pragma.
 */
add_task(
  threadFrontTest(async ({ threadFront, targetFront }) => {
    await threadFront.setBreakpoint(
      { sourceUrl: "http://example.com/code.js", line: 2, column: 1 },
      {}
    );

    info("Create a new script with the displayUrl code.js");
    const consoleFront = await targetFront.getFront("console");
    let onEvaluationResult = consoleFront.once("evaluationResult");
    const onNewSource = waitForEvent(threadFront, "newSource");
    consoleFront.evaluateJSAsync(
      "function f() {\n return 5; \n}\n//# sourceURL=http://example.com/code.js"
    );
    await onEvaluationResult;
    const sourcePacket = await onNewSource;

    equal(sourcePacket.source.url, "http://example.com/code.js");

    info("Evaluate f() and pause at line 2");
    onEvaluationResult = consoleFront.once("evaluationResult");
    consoleFront.evaluateJSAsync("f()");
    const pausedPacket = await waitForPause(threadFront);
    equal(pausedPacket.why.type, "breakpoint");
    equal(pausedPacket.frame.where.line, 2);
    resume(threadFront);
    await onEvaluationResult;
  })
);