forked from firefox-devtools/debugger
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
53 lines (42 loc) · 1.01 KB
/
index.js
File metadata and controls
53 lines (42 loc) · 1.01 KB
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/>. */
// @flow
import { getScope, type RenderableScope } from "./getScope";
import type { Frame, Why, BindingContents } from "../../../types";
export type NamedValue = {
name: string,
generatedName?: string,
path: string,
contents: BindingContents | NamedValue[]
};
export function getScopes(
why: Why,
selectedFrame: Frame,
frameScopes: ?RenderableScope
): ?(NamedValue[]) {
if (!why || !selectedFrame) {
return null;
}
if (!frameScopes) {
return null;
}
const scopes = [];
let scope = frameScopes;
let scopeIndex = 1;
while (scope) {
const scopeItem = getScope(
scope,
selectedFrame,
frameScopes,
why,
scopeIndex
);
if (scopeItem) {
scopes.push(scopeItem);
}
scopeIndex++;
scope = scope.parent;
}
return scopes;
}