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
|
/* 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 { getFrames, getSymbols } from "../../selectors";
import { findClosestFunction } from "../../utils/ast";
function mapDisplayName(frame, { getState }) {
if (frame.isOriginal) {
return frame;
}
const symbols = getSymbols(getState(), frame.location);
if (!symbols || !symbols.functions) {
return frame;
}
const originalFunction = findClosestFunction(symbols, frame.location);
if (!originalFunction) {
return frame;
}
const originalDisplayName = originalFunction.name;
return { ...frame, originalDisplayName };
}
export function mapDisplayNames(cx) {
return function ({ dispatch, getState }) {
const frames = getFrames(getState(), cx.thread);
if (!frames) {
return;
}
const mappedFrames = frames.map(frame =>
mapDisplayName(frame, { getState })
);
dispatch({
type: "MAP_FRAME_DISPLAY_NAMES",
cx,
thread: cx.thread,
frames: mappedFrames,
});
};
}
|