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
46
47
48
49
50
51
52
53
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
import { getSelectedSource } from "./sources";
import { getBlackBoxRanges } from "./source-blackbox";
import { getCurrentThreadFrames } from "./pause";
import { annotateFrames } from "../utils/pause/frames";
import { isFrameBlackBoxed } from "../utils/source";
import { createSelector } from "reselect";
function getLocation(frame, isGeneratedSource) {
return isGeneratedSource
? frame.generatedLocation || frame.location
: frame.location;
}
function getSourceForFrame(frame, isGeneratedSource) {
return getLocation(frame, isGeneratedSource).source;
}
function appendSource(frame, selectedSource) {
const isGeneratedSource = selectedSource && !selectedSource.isOriginal;
return {
...frame,
location: getLocation(frame, isGeneratedSource),
source: getSourceForFrame(frame, isGeneratedSource),
};
}
export function formatCallStackFrames(
frames,
selectedSource,
blackboxedRanges
) {
if (!frames) {
return null;
}
const formattedFrames = frames
.filter(frame => getSourceForFrame(frame))
.map(frame => appendSource(frame, selectedSource))
.filter(frame => !isFrameBlackBoxed(frame, blackboxedRanges));
return annotateFrames(formattedFrames);
}
export const getCallStackFrames = createSelector(
getCurrentThreadFrames,
getSelectedSource,
getBlackBoxRanges,
formatCallStackFrames
);
|