Bug 1551218 - Part 3: Add a top-level .prettierrc and reformat the debugger, r=jlast
authorVictor Porof <vporof@mozilla.com>
Fri, 17 May 2019 15:51:36 +0000
changeset 474345 88358b362c57617c0c18926a8ead7337efe9c86a
parent 474344 de264ab1edfb54409ebbdd184b54a058ef7faa4f
child 474346 43baeaf538692336539ed241b32f25a9a8f1b69a
push id36030
push userrgurzau@mozilla.com
push dateFri, 17 May 2019 21:41:01 +0000
treeherdermozilla-central@7c540586aedb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjlast
bugs1551218
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1551218 - Part 3: Add a top-level .prettierrc and reformat the debugger, r=jlast Differential Revision: https://phabricator.services.mozilla.com/D30928
.prettierrc
devtools/client/debugger/jest-test.config.js
devtools/client/debugger/jest.config.js
devtools/client/debugger/packages/devtools-components/index.js
devtools/client/debugger/packages/devtools-components/jest.config.js
devtools/client/debugger/packages/devtools-components/postcss.config.js
devtools/client/debugger/packages/devtools-components/src/tests/tree.js
devtools/client/debugger/packages/devtools-components/src/tree.js
devtools/client/debugger/packages/devtools-components/stories/index.js
devtools/client/debugger/packages/devtools-components/stories/tree.js
devtools/client/debugger/packages/devtools-components/webpack.config.js
devtools/client/debugger/packages/devtools-reps/bin/dev-server.js
devtools/client/debugger/packages/devtools-reps/config.js
devtools/client/debugger/packages/devtools-reps/jest.config.js
devtools/client/debugger/packages/devtools-reps/postcss.config.js
devtools/client/debugger/packages/devtools-reps/src/index.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/expressions.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/index.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/input.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Console.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Header.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/components/QuickLinks.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Result.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/components/ResultsList.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/constants.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/index.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/reducers/index.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/reducers/input.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/samples.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/selectors/index.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/store.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/utils/redux/middleware/promise.js
devtools/client/debugger/packages/devtools-reps/src/launchpad/utils/utils.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/actions.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/components/ObjectInspector.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/reducer.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/grip.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/map.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/performance.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/long-string-client.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/object-client.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/basic.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/classnames.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/create-long-string-client.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/create-object-client.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/entries.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/events.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/expand.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/function.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/getter-setter.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/keyboard-navigation.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/properties.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/proxy.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/release-actors.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/should-item-update.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/window.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/test-utils.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/create-node.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/get-children.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/get-closest-grip-node.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/get-value.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/make-node-for-properties.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/make-numerical-buckets.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/node-has-all-entries-in-preview.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/node-supports-numerical-bucketing.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/promises.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/should-load-item-entries.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/should-load-item-full-text.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/should-load-item-indexed-properties.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/should-load-item-non-indexed-properties.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/should-load-item-prototype.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/should-load-item-symbols.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/utils/should-render-roots-in-reps.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/types.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/utils/client.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/utils/index.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/utils/load-properties.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/utils/node.js
devtools/client/debugger/packages/devtools-reps/src/object-inspector/utils/selection.js
devtools/client/debugger/packages/devtools-reps/src/reps/accessible.js
devtools/client/debugger/packages/devtools-reps/src/reps/accessor.js
devtools/client/debugger/packages/devtools-reps/src/reps/array.js
devtools/client/debugger/packages/devtools-reps/src/reps/attribute.js
devtools/client/debugger/packages/devtools-reps/src/reps/big-int.js
devtools/client/debugger/packages/devtools-reps/src/reps/caption.js
devtools/client/debugger/packages/devtools-reps/src/reps/comment-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/constants.js
devtools/client/debugger/packages/devtools-reps/src/reps/date-time.js
devtools/client/debugger/packages/devtools-reps/src/reps/document-type.js
devtools/client/debugger/packages/devtools-reps/src/reps/document.js
devtools/client/debugger/packages/devtools-reps/src/reps/element-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/error.js
devtools/client/debugger/packages/devtools-reps/src/reps/event.js
devtools/client/debugger/packages/devtools-reps/src/reps/function.js
devtools/client/debugger/packages/devtools-reps/src/reps/grip-array.js
devtools/client/debugger/packages/devtools-reps/src/reps/grip-map-entry.js
devtools/client/debugger/packages/devtools-reps/src/reps/grip-map.js
devtools/client/debugger/packages/devtools-reps/src/reps/grip.js
devtools/client/debugger/packages/devtools-reps/src/reps/infinity.js
devtools/client/debugger/packages/devtools-reps/src/reps/nan.js
devtools/client/debugger/packages/devtools-reps/src/reps/null.js
devtools/client/debugger/packages/devtools-reps/src/reps/number.js
devtools/client/debugger/packages/devtools-reps/src/reps/object-with-text.js
devtools/client/debugger/packages/devtools-reps/src/reps/object-with-url.js
devtools/client/debugger/packages/devtools-reps/src/reps/object.js
devtools/client/debugger/packages/devtools-reps/src/reps/promise.js
devtools/client/debugger/packages/devtools-reps/src/reps/prop-rep.js
devtools/client/debugger/packages/devtools-reps/src/reps/regexp.js
devtools/client/debugger/packages/devtools-reps/src/reps/rep-utils.js
devtools/client/debugger/packages/devtools-reps/src/reps/rep.js
devtools/client/debugger/packages/devtools-reps/src/reps/string.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/accessible.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/accessor.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/attribute.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/big-int.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/comment-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/date-time.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/document-type.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/document.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/element-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/error.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/event.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/failure.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/function.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/grip-array.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/grip-map-entry.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/grip-map.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/grip.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/infinity.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/long-string.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/nan.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/null.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/number.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/object-with-text.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/object-with-url.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/promise.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/regexp.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/stylesheet.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/symbol.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/text-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/undefined.js
devtools/client/debugger/packages/devtools-reps/src/reps/stubs/window.js
devtools/client/debugger/packages/devtools-reps/src/reps/stylesheet.js
devtools/client/debugger/packages/devtools-reps/src/reps/symbol.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/accessible.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/accessor.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/array.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/attribute.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/big-int.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/comment-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/date-time.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/document-type.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/document.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/element-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/error.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/event.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/failure.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/function.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/grip-array.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/grip-map-entry.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/grip-map.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/grip.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/helper-tests.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/infinity.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/long-string.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/nan.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/null.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/number.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/object-with-text.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/object-with-url.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/object.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/promise.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/regexp.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/string-with-url.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/string.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/stylesheet.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/symbol.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/test-helpers.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/text-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/undefined.js
devtools/client/debugger/packages/devtools-reps/src/reps/tests/window.js
devtools/client/debugger/packages/devtools-reps/src/reps/text-node.js
devtools/client/debugger/packages/devtools-reps/src/reps/undefined.js
devtools/client/debugger/packages/devtools-reps/src/reps/window.js
devtools/client/debugger/packages/devtools-reps/src/shared/dom-node-constants.js
devtools/client/debugger/packages/devtools-reps/src/shared/grip-length-bubble.js
devtools/client/debugger/packages/devtools-reps/src/shared/redux/middleware/waitUntilService.js
devtools/client/debugger/packages/devtools-reps/src/test/__mocks__/selection.js
devtools/client/debugger/packages/devtools-reps/webpack.config.js
devtools/client/debugger/packages/devtools-source-map/assets.js
devtools/client/debugger/packages/devtools-source-map/jest.config.js
devtools/client/debugger/packages/devtools-source-map/src/index.js
devtools/client/debugger/packages/devtools-source-map/src/source-map.js
devtools/client/debugger/packages/devtools-source-map/src/tests/helpers.js
devtools/client/debugger/packages/devtools-source-map/src/tests/locations.js
devtools/client/debugger/packages/devtools-source-map/src/tests/source-map.js
devtools/client/debugger/packages/devtools-source-map/src/tests/wasm-source-map.js
devtools/client/debugger/packages/devtools-source-map/src/utils/convertToJSON.js
devtools/client/debugger/packages/devtools-source-map/src/utils/createConsumer.js
devtools/client/debugger/packages/devtools-source-map/src/utils/getOriginalStackFrames.js
devtools/client/debugger/packages/devtools-source-map/src/utils/index.js
devtools/client/debugger/packages/devtools-source-map/src/utils/sourceMapRequests.js
devtools/client/debugger/packages/devtools-source-map/src/utils/wasmAsset.js
devtools/client/debugger/packages/devtools-source-map/src/utils/wasmAssetBrowser.js
devtools/client/debugger/packages/devtools-source-map/src/utils/wasmRemap.js
devtools/client/debugger/packages/devtools-source-map/src/utils/wasmXScopes.js
devtools/client/debugger/packages/devtools-source-map/src/worker.js
devtools/client/debugger/packages/devtools-splitter/index.js
devtools/client/debugger/packages/devtools-splitter/src/Draggable.js
devtools/client/debugger/packages/devtools-splitter/src/SplitBox.js
devtools/client/debugger/packages/devtools-utils/index.js
devtools/client/debugger/packages/devtools-utils/jest.config.js
devtools/client/debugger/packages/devtools-utils/src/network-request.js
devtools/client/debugger/packages/devtools-utils/src/privileged-network-request.js
devtools/client/debugger/packages/devtools-utils/src/tests/network-request.js
devtools/client/debugger/packages/devtools-utils/src/tests/worker-utils.js
devtools/client/debugger/packages/devtools-utils/src/worker-utils.js
devtools/client/debugger/panel.js
devtools/client/debugger/postcss.config.js
devtools/client/debugger/src/actions/ast.js
devtools/client/debugger/src/actions/ast/setInScopeLines.js
devtools/client/debugger/src/actions/breakpoints/breakpointPositions.js
devtools/client/debugger/src/actions/breakpoints/index.js
devtools/client/debugger/src/actions/breakpoints/modify.js
devtools/client/debugger/src/actions/breakpoints/syncBreakpoint.js
devtools/client/debugger/src/actions/breakpoints/tests/breakpointPositions.spec.js
devtools/client/debugger/src/actions/breakpoints/tests/breakpoints.spec.js
devtools/client/debugger/src/actions/debuggee.js
devtools/client/debugger/src/actions/event-listeners.js
devtools/client/debugger/src/actions/expressions.js
devtools/client/debugger/src/actions/file-search.js
devtools/client/debugger/src/actions/index.js
devtools/client/debugger/src/actions/navigation.js
devtools/client/debugger/src/actions/pause/commands.js
devtools/client/debugger/src/actions/pause/continueToHere.js
devtools/client/debugger/src/actions/pause/fetchScopes.js
devtools/client/debugger/src/actions/pause/index.js
devtools/client/debugger/src/actions/pause/mapFrames.js
devtools/client/debugger/src/actions/pause/mapScopes.js
devtools/client/debugger/src/actions/pause/pauseOnExceptions.js
devtools/client/debugger/src/actions/pause/paused.js
devtools/client/debugger/src/actions/pause/selectFrame.js
devtools/client/debugger/src/actions/pause/tests/pause.spec.js
devtools/client/debugger/src/actions/pause/tests/pauseOnExceptions.spec.js
devtools/client/debugger/src/actions/preview.js
devtools/client/debugger/src/actions/project-text-search.js
devtools/client/debugger/src/actions/quick-open.js
devtools/client/debugger/src/actions/source-actors.js
devtools/client/debugger/src/actions/sources/blackbox.js
devtools/client/debugger/src/actions/sources/breakableLines.js
devtools/client/debugger/src/actions/sources/loadSourceText.js
devtools/client/debugger/src/actions/sources/newSources.js
devtools/client/debugger/src/actions/sources/prettyPrint.js
devtools/client/debugger/src/actions/sources/select.js
devtools/client/debugger/src/actions/sources/symbols.js
devtools/client/debugger/src/actions/sources/tests/blackbox.spec.js
devtools/client/debugger/src/actions/sources/tests/loadSource.spec.js
devtools/client/debugger/src/actions/sources/tests/newSources.spec.js
devtools/client/debugger/src/actions/sources/tests/prettyPrint.spec.js
devtools/client/debugger/src/actions/sources/tests/querystrings.spec.js
devtools/client/debugger/src/actions/sources/tests/select.spec.js
devtools/client/debugger/src/actions/tabs.js
devtools/client/debugger/src/actions/tests/ast.spec.js
devtools/client/debugger/src/actions/tests/expressions.spec.js
devtools/client/debugger/src/actions/tests/file-search.spec.js
devtools/client/debugger/src/actions/tests/helpers/breakpoints.js
devtools/client/debugger/src/actions/tests/helpers/threadClient.js
devtools/client/debugger/src/actions/tests/navigation.spec.js
devtools/client/debugger/src/actions/tests/pending-breakpoints.spec.js
devtools/client/debugger/src/actions/tests/project-text-search.spec.js
devtools/client/debugger/src/actions/tests/setProjectDirectoryRoot.spec.js
devtools/client/debugger/src/actions/tests/tabs.spec.js
devtools/client/debugger/src/actions/tests/ui.spec.js
devtools/client/debugger/src/actions/types/ASTAction.js
devtools/client/debugger/src/actions/types/BreakpointAction.js
devtools/client/debugger/src/actions/types/PauseAction.js
devtools/client/debugger/src/actions/types/PreviewAction.js
devtools/client/debugger/src/actions/types/SourceAction.js
devtools/client/debugger/src/actions/types/SourceActorAction.js
devtools/client/debugger/src/actions/types/UIAction.js
devtools/client/debugger/src/actions/types/index.js
devtools/client/debugger/src/actions/ui.js
devtools/client/debugger/src/actions/utils/create-store.js
devtools/client/debugger/src/actions/utils/middleware/context.js
devtools/client/debugger/src/actions/utils/middleware/history.js
devtools/client/debugger/src/actions/utils/middleware/log.js
devtools/client/debugger/src/actions/utils/middleware/promise.js
devtools/client/debugger/src/client/chrome.js
devtools/client/debugger/src/client/chrome/commands.js
devtools/client/debugger/src/client/chrome/create.js
devtools/client/debugger/src/client/chrome/events.js
devtools/client/debugger/src/client/chrome/types.js
devtools/client/debugger/src/client/firefox.js
devtools/client/debugger/src/client/firefox/commands.js
devtools/client/debugger/src/client/firefox/create.js
devtools/client/debugger/src/client/firefox/events.js
devtools/client/debugger/src/client/firefox/tests/commands.spec.js
devtools/client/debugger/src/client/firefox/tests/onconnect.spec.js
devtools/client/debugger/src/client/firefox/types.js
devtools/client/debugger/src/client/firefox/workers.js
devtools/client/debugger/src/client/index.js
devtools/client/debugger/src/components/A11yIntention.js
devtools/client/debugger/src/components/App.js
devtools/client/debugger/src/components/Editor/Breakpoint.js
devtools/client/debugger/src/components/Editor/Breakpoints.js
devtools/client/debugger/src/components/Editor/ColumnBreakpoint.js
devtools/client/debugger/src/components/Editor/ColumnBreakpoints.js
devtools/client/debugger/src/components/Editor/ConditionalPanel.js
devtools/client/debugger/src/components/Editor/DebugLine.js
devtools/client/debugger/src/components/Editor/EditorMenu.js
devtools/client/debugger/src/components/Editor/EmptyLines.js
devtools/client/debugger/src/components/Editor/Footer.js
devtools/client/debugger/src/components/Editor/HighlightLine.js
devtools/client/debugger/src/components/Editor/HighlightLines.js
devtools/client/debugger/src/components/Editor/Preview/Popup.js
devtools/client/debugger/src/components/Editor/Preview/index.js
devtools/client/debugger/src/components/Editor/SearchBar.js
devtools/client/debugger/src/components/Editor/Tab.js
devtools/client/debugger/src/components/Editor/Tabs.js
devtools/client/debugger/src/components/Editor/index.js
devtools/client/debugger/src/components/Editor/menus/breakpoints.js
devtools/client/debugger/src/components/Editor/menus/editor.js
devtools/client/debugger/src/components/Editor/tests/Breakpoints.spec.js
devtools/client/debugger/src/components/Editor/tests/DebugLine.spec.js
devtools/client/debugger/src/components/Editor/tests/Editor.spec.js
devtools/client/debugger/src/components/Editor/tests/Footer.spec.js
devtools/client/debugger/src/components/Editor/tests/SearchBar.spec.js
devtools/client/debugger/src/components/PrimaryPanes/Outline.js
devtools/client/debugger/src/components/PrimaryPanes/OutlineFilter.js
devtools/client/debugger/src/components/PrimaryPanes/SourcesTree.js
devtools/client/debugger/src/components/PrimaryPanes/SourcesTreeItem.js
devtools/client/debugger/src/components/PrimaryPanes/index.js
devtools/client/debugger/src/components/PrimaryPanes/tests/PrimaryPanes.spec.js
devtools/client/debugger/src/components/PrimaryPanes/tests/SourcesTree.spec.js
devtools/client/debugger/src/components/PrimaryPanes/tests/SourcesTreeItem.spec.js
devtools/client/debugger/src/components/ProjectSearch.js
devtools/client/debugger/src/components/QuickOpenModal.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/Breakpoint.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/BreakpointHeading.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/BreakpointHeadingsContextMenu.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/BreakpointsContextMenu.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/ExceptionOption.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/index.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/tests/Breakpoint.spec.js
devtools/client/debugger/src/components/SecondaryPanes/Breakpoints/tests/BreakpointsContextMenu.spec.js
devtools/client/debugger/src/components/SecondaryPanes/CommandBar.js
devtools/client/debugger/src/components/SecondaryPanes/EventListeners.js
devtools/client/debugger/src/components/SecondaryPanes/Expressions.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/Frame.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/FrameMenu.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/Group.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/index.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/Frame.spec.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/FrameMenu.spec.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/Frames.spec.js
devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/Group.spec.js
devtools/client/debugger/src/components/SecondaryPanes/Scopes.js
devtools/client/debugger/src/components/SecondaryPanes/UtilsBar.js
devtools/client/debugger/src/components/SecondaryPanes/WhyPaused.js
devtools/client/debugger/src/components/SecondaryPanes/Worker.js
devtools/client/debugger/src/components/SecondaryPanes/Workers.js
devtools/client/debugger/src/components/SecondaryPanes/XHRBreakpoints.js
devtools/client/debugger/src/components/SecondaryPanes/index.js
devtools/client/debugger/src/components/SecondaryPanes/tests/CommandBar.spec.js
devtools/client/debugger/src/components/SecondaryPanes/tests/Expressions.spec.js
devtools/client/debugger/src/components/SecondaryPanes/tests/XHRBreakpoints.spec.js
devtools/client/debugger/src/components/ShortcutsModal.js
devtools/client/debugger/src/components/WelcomeBox.js
devtools/client/debugger/src/components/shared/AccessibleImage.js
devtools/client/debugger/src/components/shared/Accordion.js
devtools/client/debugger/src/components/shared/Badge.js
devtools/client/debugger/src/components/shared/BracketArrow.js
devtools/client/debugger/src/components/shared/Button/CloseButton.js
devtools/client/debugger/src/components/shared/Button/CommandBarButton.js
devtools/client/debugger/src/components/shared/Button/PaneToggleButton.js
devtools/client/debugger/src/components/shared/Button/tests/CloseButton.spec.js
devtools/client/debugger/src/components/shared/Button/tests/CommandBarButton.spec.js
devtools/client/debugger/src/components/shared/Button/tests/PaneToggleButton.spec.js
devtools/client/debugger/src/components/shared/Dropdown.js
devtools/client/debugger/src/components/shared/ManagedTree.js
devtools/client/debugger/src/components/shared/Modal.js
devtools/client/debugger/src/components/shared/Popover.js
devtools/client/debugger/src/components/shared/PreviewFunction.js
devtools/client/debugger/src/components/shared/ResultList.js
devtools/client/debugger/src/components/shared/SearchInput.js
devtools/client/debugger/src/components/shared/SourceIcon.js
devtools/client/debugger/src/components/shared/tests/Accordion.spec.js
devtools/client/debugger/src/components/shared/tests/ManagedTree.spec.js
devtools/client/debugger/src/components/shared/tests/Modal.spec.js
devtools/client/debugger/src/components/shared/tests/Popover.spec.js
devtools/client/debugger/src/components/shared/tests/PreviewFunction.spec.js
devtools/client/debugger/src/components/shared/tests/ResultList.spec.js
devtools/client/debugger/src/components/shared/tests/SearchInput.spec.js
devtools/client/debugger/src/components/test/Outline.spec.js
devtools/client/debugger/src/components/test/OutlineFilter.spec.js
devtools/client/debugger/src/components/test/ProjectSearch.spec.js
devtools/client/debugger/src/components/test/QuickOpenModal.spec.js
devtools/client/debugger/src/components/test/ShortcutsModal.spec.js
devtools/client/debugger/src/components/test/WelcomeBox.spec.js
devtools/client/debugger/src/components/test/WhyPaused.spec.js
devtools/client/debugger/src/global-types.js
devtools/client/debugger/src/main.development.js
devtools/client/debugger/src/main.js
devtools/client/debugger/src/reducers/ast.js
devtools/client/debugger/src/reducers/breakpoints.js
devtools/client/debugger/src/reducers/debuggee.js
devtools/client/debugger/src/reducers/expressions.js
devtools/client/debugger/src/reducers/file-search.js
devtools/client/debugger/src/reducers/index.js
devtools/client/debugger/src/reducers/pause.js
devtools/client/debugger/src/reducers/pending-breakpoints.js
devtools/client/debugger/src/reducers/preview.js
devtools/client/debugger/src/reducers/project-text-search.js
devtools/client/debugger/src/reducers/quick-open.js
devtools/client/debugger/src/reducers/source-actors.js
devtools/client/debugger/src/reducers/source-tree.js
devtools/client/debugger/src/reducers/sources.js
devtools/client/debugger/src/reducers/tabs.js
devtools/client/debugger/src/reducers/tests/breakpoints.spec.js
devtools/client/debugger/src/reducers/tests/quick-open.spec.js
devtools/client/debugger/src/reducers/tests/sources.spec.js
devtools/client/debugger/src/reducers/tests/ui.spec.js
devtools/client/debugger/src/reducers/types.js
devtools/client/debugger/src/reducers/ui.js
devtools/client/debugger/src/selectors/breakpointSources.js
devtools/client/debugger/src/selectors/breakpoints.js
devtools/client/debugger/src/selectors/getCallStackFrames.js
devtools/client/debugger/src/selectors/index.js
devtools/client/debugger/src/selectors/pause.js
devtools/client/debugger/src/selectors/test/getCallStackFrames.spec.js
devtools/client/debugger/src/selectors/test/visibleColumnBreakpoints.spec.js
devtools/client/debugger/src/selectors/visibleColumnBreakpoints.js
devtools/client/debugger/src/test/tests-setup.js
devtools/client/debugger/src/types.js
devtools/client/debugger/src/utils/ast.js
devtools/client/debugger/src/utils/async-value.js
devtools/client/debugger/src/utils/asyncStoreHelper.js
devtools/client/debugger/src/utils/bootstrap.js
devtools/client/debugger/src/utils/breakpoint/astBreakpointLocation.js
devtools/client/debugger/src/utils/breakpoint/index.js
devtools/client/debugger/src/utils/breakpoint/tests/astBreakpointLocation.spec.js
devtools/client/debugger/src/utils/breakpoint/tests/index.spec.js
devtools/client/debugger/src/utils/build-query.js
devtools/client/debugger/src/utils/context.js
devtools/client/debugger/src/utils/dbg.js
devtools/client/debugger/src/utils/defer.js
devtools/client/debugger/src/utils/editor/create-editor.js
devtools/client/debugger/src/utils/editor/get-expression.js
devtools/client/debugger/src/utils/editor/get-token-location.js
devtools/client/debugger/src/utils/editor/index.js
devtools/client/debugger/src/utils/editor/source-documents.js
devtools/client/debugger/src/utils/editor/source-editor.js
devtools/client/debugger/src/utils/editor/source-search.js
devtools/client/debugger/src/utils/editor/tests/editor.spec.js
devtools/client/debugger/src/utils/editor/tests/get-expression.spec.js
devtools/client/debugger/src/utils/editor/tests/get-token-location.spec.js
devtools/client/debugger/src/utils/editor/tests/source-search.spec.js
devtools/client/debugger/src/utils/editor/token-events.js
devtools/client/debugger/src/utils/expressions.js
devtools/client/debugger/src/utils/function.js
devtools/client/debugger/src/utils/indentation.js
devtools/client/debugger/src/utils/location.js
devtools/client/debugger/src/utils/makeRecord.js
devtools/client/debugger/src/utils/memoizableAction.js
devtools/client/debugger/src/utils/pause/frames/annotateFrames.js
devtools/client/debugger/src/utils/pause/frames/displayName.js
devtools/client/debugger/src/utils/pause/frames/getLibraryFromUrl.js
devtools/client/debugger/src/utils/pause/frames/tests/annotateFrames.spec.js
devtools/client/debugger/src/utils/pause/frames/tests/displayName.spec.js
devtools/client/debugger/src/utils/pause/frames/tests/getLibraryFromUrl.spec.js
devtools/client/debugger/src/utils/pause/mapScopes/buildGeneratedBindingList.js
devtools/client/debugger/src/utils/pause/mapScopes/findGeneratedBindingFromPosition.js
devtools/client/debugger/src/utils/pause/mapScopes/getApplicableBindingsForOriginalPosition.js
devtools/client/debugger/src/utils/pause/mapScopes/index.js
devtools/client/debugger/src/utils/pause/mapScopes/rangeMetadata.js
devtools/client/debugger/src/utils/pause/scopes/getScope.js
devtools/client/debugger/src/utils/pause/scopes/getVariables.js
devtools/client/debugger/src/utils/pause/scopes/index.js
devtools/client/debugger/src/utils/pause/scopes/tests/getFramePopVariables.spec.js
devtools/client/debugger/src/utils/pause/scopes/tests/scopes.spec.js
devtools/client/debugger/src/utils/pause/scopes/types.js
devtools/client/debugger/src/utils/pause/scopes/utils.js
devtools/client/debugger/src/utils/pause/why.js
devtools/client/debugger/src/utils/prefs.js
devtools/client/debugger/src/utils/quick-open.js
devtools/client/debugger/src/utils/resource/base-query.js
devtools/client/debugger/src/utils/resource/core.js
devtools/client/debugger/src/utils/resource/index.js
devtools/client/debugger/src/utils/resource/memoize.js
devtools/client/debugger/src/utils/resource/query-cache.js
devtools/client/debugger/src/utils/resource/query.js
devtools/client/debugger/src/utils/resource/selector.js
devtools/client/debugger/src/utils/resource/tests/crud.spec.js
devtools/client/debugger/src/utils/resource/tests/query.spec.js
devtools/client/debugger/src/utils/source-maps.js
devtools/client/debugger/src/utils/source-queue.js
devtools/client/debugger/src/utils/source.js
devtools/client/debugger/src/utils/sources-tree/addToTree.js
devtools/client/debugger/src/utils/sources-tree/getURL.js
devtools/client/debugger/src/utils/sources-tree/tests/addToTree.spec.js
devtools/client/debugger/src/utils/sources-tree/tests/collapseTree.spec.js
devtools/client/debugger/src/utils/sources-tree/tests/getDirectories.spec.js
devtools/client/debugger/src/utils/sources-tree/tests/getUrl.spec.js
devtools/client/debugger/src/utils/sources-tree/tests/updateTree.spec.js
devtools/client/debugger/src/utils/sources-tree/tests/utils.spec.js
devtools/client/debugger/src/utils/sources-tree/types.js
devtools/client/debugger/src/utils/sources-tree/updateTree.js
devtools/client/debugger/src/utils/sources-tree/utils.js
devtools/client/debugger/src/utils/tabs.js
devtools/client/debugger/src/utils/task.js
devtools/client/debugger/src/utils/telemetry.js
devtools/client/debugger/src/utils/test-head.js
devtools/client/debugger/src/utils/test-mockup.js
devtools/client/debugger/src/utils/tests/DevToolsUtils.spec.js
devtools/client/debugger/src/utils/tests/ast.spec.js
devtools/client/debugger/src/utils/tests/build-query.spec.js
devtools/client/debugger/src/utils/tests/expressions.spec.js
devtools/client/debugger/src/utils/tests/fromJS.spec.js
devtools/client/debugger/src/utils/tests/location.spec.js
devtools/client/debugger/src/utils/tests/project-search.spec.js
devtools/client/debugger/src/utils/tests/quick-open.spec.js
devtools/client/debugger/src/utils/tests/result-list.spec.js
devtools/client/debugger/src/utils/tests/source.spec.js
devtools/client/debugger/src/utils/tests/telemetry.spec.js
devtools/client/debugger/src/utils/tests/utils.spec.js
devtools/client/debugger/src/utils/tests/wasm.spec.js
devtools/client/debugger/src/utils/timings.js
devtools/client/debugger/src/utils/url.js
devtools/client/debugger/src/utils/wasm.js
devtools/client/debugger/src/utils/worker.js
devtools/client/debugger/src/vendors.js
devtools/client/debugger/src/workers/parser/getScopes/index.js
devtools/client/debugger/src/workers/parser/getScopes/visitor.js
devtools/client/debugger/src/workers/parser/getSymbols.js
devtools/client/debugger/src/workers/parser/index.js
devtools/client/debugger/src/workers/parser/mapAwaitExpression.js
devtools/client/debugger/src/workers/parser/mapExpression.js
devtools/client/debugger/src/workers/parser/mapOriginalExpression.js
devtools/client/debugger/src/workers/parser/steps.js
devtools/client/debugger/src/workers/parser/tests/contains.spec.js
devtools/client/debugger/src/workers/parser/tests/findOutOfScopeLocations.spec.js
devtools/client/debugger/src/workers/parser/tests/framework.spec.js
devtools/client/debugger/src/workers/parser/tests/getScopes.spec.js
devtools/client/debugger/src/workers/parser/tests/getSymbols.spec.js
devtools/client/debugger/src/workers/parser/tests/helpers/index.js
devtools/client/debugger/src/workers/parser/tests/mapBindings.spec.js
devtools/client/debugger/src/workers/parser/tests/mapExpression.spec.js
devtools/client/debugger/src/workers/parser/tests/mapOriginalExpression.spec.js
devtools/client/debugger/src/workers/parser/tests/steps.spec.js
devtools/client/debugger/src/workers/parser/types.js
devtools/client/debugger/src/workers/parser/utils/ast.js
devtools/client/debugger/src/workers/parser/utils/closest.js
devtools/client/debugger/src/workers/parser/utils/helpers.js
devtools/client/debugger/src/workers/parser/utils/tests/ast.spec.js
devtools/client/debugger/src/workers/parser/worker.js
devtools/client/debugger/src/workers/pretty-print/index.js
devtools/client/debugger/src/workers/pretty-print/worker.js
devtools/client/debugger/src/workers/search/get-matches.js
devtools/client/debugger/src/workers/search/project-search.js
devtools/client/debugger/src/workers/search/tests/get-matches.spec.js
devtools/client/debugger/src/workers/search/tests/project-search.spec.js
devtools/client/debugger/webpack.config.js
new file mode 100644
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,5 @@
+{
+  "printWidth": 80,
+  "tabWidth": 2,
+  "trailingComma": "es5"
+}
--- a/devtools/client/debugger/jest-test.config.js
+++ b/devtools/client/debugger/jest-test.config.js
@@ -10,31 +10,31 @@ module.exports = {
   testURL: "http://localhost/",
   testPathIgnorePatterns: [
     "/node_modules/",
     "/helpers/",
     "/fixtures/",
     "src/test/mochitest/examples/",
     "<rootDir>/firefox",
     "package.json",
-    "<rootDir>/packages"
+    "<rootDir>/packages",
   ],
   modulePathIgnorePatterns: ["test/mochitest", "firefox"],
   collectCoverageFrom: [
     "src/**/*.js",
     "!src/**/fixtures/*.js",
     "!src/test/**/*.js",
     "!src/components/stories/**/*.js",
     "!**/*.mock.js",
-    "!**/*.spec.js"
+    "!**/*.spec.js",
   ],
   transformIgnorePatterns: ["node_modules/(?!(devtools-|react-aria-))"],
   setupTestFrameworkScriptFile: "<rootDir>/src/test/tests-setup.js",
   setupFiles: ["<rootDir>/src/test/shim.js", "jest-localstorage-mock"],
   snapshotSerializers: [
     "jest-serializer-babel-ast",
-    "enzyme-to-json/serializer"
+    "enzyme-to-json/serializer",
   ],
   moduleNameMapper: {
     "\\.css$": "<rootDir>/src/test/__mocks__/styleMock.js",
-    "\\.svg$": "<rootDir>/src/test/__mocks__/svgMock.js"
-  }
+    "\\.svg$": "<rootDir>/src/test/__mocks__/svgMock.js",
+  },
 };
--- a/devtools/client/debugger/jest.config.js
+++ b/devtools/client/debugger/jest.config.js
@@ -4,11 +4,11 @@
 
 const { resolve } = require("path");
 const rootDir = resolve(__dirname);
 module.exports = {
   rootDir,
   reporters: ["default"],
   projects: [
     "<rootDir>/jest-test.config.js",
-    "<rootDir>/packages/*/jest.config.js"
-  ]
+    "<rootDir>/packages/*/jest.config.js",
+  ],
 };
--- a/devtools/client/debugger/packages/devtools-components/index.js
+++ b/devtools/client/debugger/packages/devtools-components/index.js
@@ -1,9 +1,9 @@
 /* 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/. */
+ * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
 
 import Tree from "./src/tree";
 
 module.exports = {
-  Tree
+  Tree,
 };
--- a/devtools/client/debugger/packages/devtools-components/jest.config.js
+++ b/devtools/client/debugger/packages/devtools-components/jest.config.js
@@ -1,20 +1,24 @@
+/* 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/>. */
+
 const { resolve } = require("path");
 const rootDir = resolve(__dirname, "src");
 module.exports = {
   rootDir,
   displayName: "devtools-components test",
   setupFiles: [
     "<rootDir>/../../../src/test/__mocks__/request-animation-frame.js",
-    "<rootDir>/tests/setup.js"
+    "<rootDir>/tests/setup.js",
   ],
   testMatch: ["**/tests/**/*.js"],
   testPathIgnorePatterns: [
     "/node_modules/",
     "<rootDir>/tests/__mocks__/",
-    "<rootDir>/tests/setup.js"
+    "<rootDir>/tests/setup.js",
   ],
   testURL: "http://localhost/",
   moduleNameMapper: {
-    "\\.css$": "<rootDir>/../../../src/test/__mocks__/styleMock.js"
-  }
+    "\\.css$": "<rootDir>/../../../src/test/__mocks__/styleMock.js",
+  },
 };
--- a/devtools/client/debugger/packages/devtools-components/postcss.config.js
+++ b/devtools/client/debugger/packages/devtools-components/postcss.config.js
@@ -1,37 +1,37 @@
 /* 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/. */
+ * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
 
 const mapUrl = require("postcss-url-mapper");
 const MC_PATH = "resource://devtools/client/debugger/images/";
 const EXPRESS_PATH = "/devtools-components/images/";
 
 function mapUrlProduction(url, type) {
-  return url.replace("/images/arrow.svg", MC_PATH + "arrow.svg");
+  return url.replace("/images/arrow.svg", `${MC_PATH}arrow.svg`);
 }
 
 function mapUrlDevelopment(url) {
-  return url.replace("/images/arrow.svg", EXPRESS_PATH + "arrow.svg");
+  return url.replace("/images/arrow.svg", `${EXPRESS_PATH}arrow.svg`);
 }
 
 module.exports = ({ file, options, env }) => {
   // Here we don't want to do anything for storybook since we serve the images thanks
   // to the `-s ./src` option in the `storybook` command (see package.json).
   if (env === "storybook") {
     return {};
   }
 
   // This will be used when creating a bundle for mozilla-central (from devtools-reps
   // or debugger.html).
   if (env === "production") {
     return {
-      plugins: [mapUrl(mapUrlProduction)]
+      plugins: [mapUrl(mapUrlProduction)],
     };
   }
 
   // This will be used when using this module in launchpad mode. We set a unique path so
   // we can serve images from express.
   return {
-    plugins: [mapUrl(mapUrlDevelopment)]
+    plugins: [mapUrl(mapUrlDevelopment)],
   };
 };
--- a/devtools/client/debugger/packages/devtools-components/src/tests/tree.js
+++ b/devtools/client/debugger/packages/devtools-components/src/tests/tree.js
@@ -16,17 +16,17 @@ function mountTree(overrides = {}) {
   return mount(
     createFactory(
       class container extends Component {
         constructor(props) {
           super(props);
           const state = {
             expanded: overrides.expanded || new Set(),
             focused: overrides.focused,
-            active: overrides.active
+            active: overrides.active,
           };
           delete overrides.focused;
           delete overrides.active;
           this.state = state;
         }
 
         render() {
           return Tree(
@@ -67,17 +67,17 @@ function mountTree(overrides = {}) {
                   this.setState(previousState => {
                     const expanded = new Set(previousState.expanded);
                     expanded.delete(x);
                     return { expanded };
                   });
                 },
                 isExpanded: x => this.state && this.state.expanded.has(x),
                 focused: this.state.focused,
-                active: this.state.active
+                active: this.state.active,
               },
               overrides
             )
           );
         }
       }
     )()
   );
@@ -98,25 +98,25 @@ describe("Tree", () => {
       autoExpandDepth: 2,
       autoExpandNodeChildrenLimit: 50,
       getChildren: item => {
         if (item === "N") {
           return children;
         }
 
         return TEST_TREE.children[item] || [];
-      }
+      },
     });
     const ids = getTreeNodes(wrapper).map(node => node.prop("id"));
     expect(ids).toMatchSnapshot();
   });
 
   it("is accessible", () => {
     const wrapper = mountTree({
-      expanded: new Set("ABCDEFGHIJMN".split(""))
+      expanded: new Set("ABCDEFGHIJMN".split("")),
     });
     expect(wrapper.getDOMNode().getAttribute("role")).toBe("tree");
     expect(wrapper.getDOMNode().getAttribute("tabIndex")).toBe("0");
 
     const expected = {
       A: { id: "key-A", level: 1, expanded: true },
       B: { id: "key-B", level: 2, expanded: true },
       C: { id: "key-C", level: 2, expanded: true },
@@ -126,92 +126,92 @@ describe("Tree", () => {
       G: { id: "key-G", level: 3, expanded: true },
       H: { id: "key-H", level: 3, expanded: true },
       I: { id: "key-I", level: 3, expanded: true },
       J: { id: "key-J", level: 3, expanded: true },
       K: { id: "key-K", level: 4, expanded: undefined },
       L: { id: "key-L", level: 4, expanded: undefined },
       M: { id: "key-M", level: 1, expanded: true },
       N: { id: "key-N", level: 2, expanded: true },
-      O: { id: "key-O", level: 3, expanded: undefined }
+      O: { id: "key-O", level: 3, expanded: undefined },
     };
 
     getTreeNodes(wrapper).forEach(node => {
       const key = node.prop("id").replace("key-", "");
       const item = expected[key];
 
       expect(node.prop("id")).toBe(item.id);
       expect(node.prop("role")).toBe("treeitem");
       expect(node.prop("aria-level")).toBe(item.level);
       expect(node.prop("aria-expanded")).toBe(item.expanded);
     });
   });
 
   it("renders as expected", () => {
     const wrapper = mountTree({
-      expanded: new Set("ABCDEFGHIJKLMNO".split(""))
+      expanded: new Set("ABCDEFGHIJKLMNO".split("")),
     });
 
     expect(formatTree(wrapper)).toMatchSnapshot();
   });
 
   it("renders as expected when passed a className", () => {
     const wrapper = mountTree({
-      className: "testClassName"
+      className: "testClassName",
     });
 
     expect(wrapper.find(".tree").hasClass("testClassName")).toBe(true);
   });
 
   it("renders as expected when passed a style", () => {
     const wrapper = mountTree({
       style: {
-        color: "red"
-      }
+        color: "red",
+      },
     });
 
     expect(wrapper.getDOMNode().style.color).toBe("red");
   });
 
   it("renders as expected when passed a label", () => {
     const wrapper = mountTree({
-      label: "testAriaLabel"
+      label: "testAriaLabel",
     });
     expect(wrapper.getDOMNode().getAttribute("aria-label")).toBe(
       "testAriaLabel"
     );
   });
 
   it("renders as expected when passed an aria-labelledby", () => {
     const wrapper = mountTree({
-      labelledby: "testAriaLabelBy"
+      labelledby: "testAriaLabelBy",
     });
     expect(wrapper.getDOMNode().getAttribute("aria-labelledby")).toBe(
       "testAriaLabelBy"
     );
   });
 
   it("renders as expected with collapsed nodes", () => {
     const wrapper = mountTree({
-      expanded: new Set("MNO".split(""))
+      expanded: new Set("MNO".split("")),
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
   });
 
   it("renders as expected when passed autoDepth:1", () => {
     const wrapper = mountTree({
-      autoExpandDepth: 1
+      autoExpandDepth: 1,
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
   });
 
   it("calls shouldItemUpdate when provided", () => {
     const shouldItemUpdate = jest.fn((prev, next) => true);
     const wrapper = mountTree({
-      shouldItemUpdate
+      shouldItemUpdate,
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(shouldItemUpdate.mock.calls).toHaveLength(0);
 
     wrapper
       .find("Tree")
       .first()
       .instance()
@@ -226,60 +226,60 @@ describe("Tree", () => {
     expect(shouldItemUpdate.mock.calls[1][1]).toBe("M");
     expect(shouldItemUpdate.mock.results[1].value).toBe(true);
   });
 
   it("active item - renders as expected when clicking away", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
       focused: "G",
-      active: "G"
+      active: "G",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").prop("id")).toBe("key-G");
 
     getTreeNodes(wrapper)
       .first()
       .simulate("click");
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".focused").prop("id")).toBe("key-A");
     expect(wrapper.find(".active").exists()).toBe(false);
   });
 
   it("active item - renders as expected when tree blurs", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
       focused: "G",
-      active: "G"
+      active: "G",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").prop("id")).toBe("key-G");
 
     wrapper.simulate("blur");
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").exists()).toBe(false);
   });
 
   it("active item - renders as expected when moving away with keyboard", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
       focused: "L",
-      active: "L"
+      active: "L",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").prop("id")).toBe("key-L");
 
     simulateKeyDown(wrapper, "ArrowUp");
     expect(wrapper.find(".active").exists()).toBe(false);
   });
 
   it("active item - renders as expected when using keyboard and Enter", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "L"
+      focused: "L",
     });
     wrapper.getDOMNode().focus();
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").exists()).toBe(false);
 
     simulateKeyDown(wrapper, "Enter");
     expect(wrapper.find(".active").prop("id")).toBe("key-L");
 
@@ -292,34 +292,34 @@ describe("Tree", () => {
     expect(wrapper.getDOMNode().ownerDocument.activeElement).toBe(
       wrapper.getDOMNode()
     );
   });
 
   it("active item - renders as expected when using keyboard and Space", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "L"
+      focused: "L",
     });
     wrapper.getDOMNode().focus();
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").exists()).toBe(false);
 
     simulateKeyDown(wrapper, " ");
     expect(wrapper.find(".active").prop("id")).toBe("key-L");
 
     simulateKeyDown(wrapper, "Escape");
     expect(wrapper.find(".active").exists()).toBe(false);
   });
 
   it("active item - focus is inside the tree node when possible", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
       focused: "L",
-      renderItem: renderItemWithFocusableContent
+      renderItem: renderItemWithFocusableContent,
     });
     wrapper.getDOMNode().focus();
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").exists()).toBe(false);
     expect(wrapper.getDOMNode().ownerDocument.activeElement).toBe(
       wrapper.getDOMNode()
     );
 
@@ -330,17 +330,17 @@ describe("Tree", () => {
       wrapper.find("#active-anchor").getDOMNode()
     );
   });
 
   it("active item - navigate inside the tree node", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
       focused: "L",
-      renderItem: renderItemWithFocusableContent
+      renderItem: renderItemWithFocusableContent,
     });
     wrapper.getDOMNode().focus();
     simulateKeyDown(wrapper, "Enter");
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").prop("id")).toBe("key-L");
     expect(wrapper.getDOMNode().ownerDocument.activeElement).toBe(
       wrapper.find("#active-anchor").getDOMNode()
     );
@@ -359,17 +359,17 @@ describe("Tree", () => {
       wrapper.find("#active-anchor").getDOMNode()
     );
   });
 
   it("active item - focus is inside the tree node and then blur", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
       focused: "L",
-      renderItem: renderItemWithFocusableContent
+      renderItem: renderItemWithFocusableContent,
     });
     wrapper.getDOMNode().focus();
     simulateKeyDown(wrapper, "Enter");
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.find(".active").prop("id")).toBe("key-L");
     expect(wrapper.getDOMNode().ownerDocument.activeElement).toBe(
       wrapper.find("#active-anchor").getDOMNode()
     );
@@ -379,17 +379,17 @@ describe("Tree", () => {
     expect(wrapper.getDOMNode().ownerDocument.activeElement).toBe(
       wrapper.getDOMNode().ownerDocument.body
     );
   });
 
   it("renders as expected when given a focused item", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "G"
+      focused: "G",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-G"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-G");
 
     getTreeNodes(wrapper)
@@ -416,17 +416,17 @@ describe("Tree", () => {
       false
     );
     expect(wrapper.find(".focused").exists()).toBe(false);
   });
 
   it("renders as expected when navigating up with the keyboard", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "L"
+      focused: "L",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-L"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-L");
 
     simulateKeyDown(wrapper, "ArrowUp");
@@ -442,17 +442,17 @@ describe("Tree", () => {
       "key-E"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-E");
   });
 
   it("renders as expected navigating up with the keyboard on a root", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "A"
+      focused: "A",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-A"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-A");
 
     simulateKeyDown(wrapper, "ArrowUp");
@@ -461,17 +461,17 @@ describe("Tree", () => {
       "key-A"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-A");
   });
 
   it("renders as expected when navigating down with the keyboard", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "K"
+      focused: "K",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-K"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-K");
 
     simulateKeyDown(wrapper, "ArrowDown");
@@ -487,17 +487,17 @@ describe("Tree", () => {
       "key-F"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-F");
   });
 
   it("renders as expected navigating down with keyboard on last node", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "O"
+      focused: "O",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-O"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-O");
 
     simulateKeyDown(wrapper, "ArrowDown");
@@ -506,17 +506,17 @@ describe("Tree", () => {
       "key-O"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-O");
   });
 
   it("renders as expected when navigating with right/left arrows", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "L"
+      focused: "L",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-L"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-L");
 
     simulateKeyDown(wrapper, "ArrowLeft");
@@ -545,17 +545,17 @@ describe("Tree", () => {
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-K"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-K");
   });
 
   it("renders as expected when navigating with left arrows on roots", () => {
     const wrapper = mountTree({
-      focused: "M"
+      focused: "M",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-M"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-M");
 
     simulateKeyDown(wrapper, "ArrowLeft");
@@ -570,17 +570,17 @@ describe("Tree", () => {
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-A"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-A");
   });
 
   it("renders as expected when navigating with home/end", () => {
     const wrapper = mountTree({
-      focused: "M"
+      focused: "M",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-M"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-M");
 
     simulateKeyDown(wrapper, "Home");
@@ -638,17 +638,17 @@ describe("Tree", () => {
       "key-A"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-A");
   });
 
   it("renders as expected navigating with arrows on unexpandable roots", () => {
     const wrapper = mountTree({
       focused: "A",
-      isExpandable: item => false
+      isExpandable: item => false,
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
 
     simulateKeyDown(wrapper, "ArrowRight");
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-M"
     );
@@ -666,17 +666,17 @@ describe("Tree", () => {
         wrapper.setState(() => {
           return { focused: x };
         });
     });
 
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
       focused: "I",
-      onFocus
+      onFocus,
     });
 
     simulateKeyDown(wrapper, "ArrowUp");
     expect(onFocus.mock.calls[0][0]).toBe("H");
 
     simulateKeyDown(wrapper, "ArrowUp");
     expect(onFocus.mock.calls[1][0]).toBe("C");
 
@@ -688,82 +688,82 @@ describe("Tree", () => {
     expect(onFocus.mock.calls[3][0]).toBe("B");
 
     simulateKeyDown(wrapper, "ArrowDown");
     expect(onFocus.mock.calls[4][0]).toBe("E");
   });
 
   it("focus treeRef when a node is clicked", () => {
     const wrapper = mountTree({
-      expanded: new Set("ABCDEFGHIJKLMNO".split(""))
+      expanded: new Set("ABCDEFGHIJKLMNO".split("")),
     });
     const treeRef = wrapper
       .find("Tree")
       .first()
       .instance().treeRef.current;
     treeRef.focus = jest.fn();
 
     getTreeNodes(wrapper)
       .first()
       .simulate("click");
     expect(treeRef.focus.mock.calls).toHaveLength(1);
   });
 
   it("doesn't focus treeRef when focused is null", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "A"
+      focused: "A",
     });
     const treeRef = wrapper
       .find("Tree")
       .first()
       .instance().treeRef.current;
     treeRef.focus = jest.fn();
     wrapper.simulate("blur");
     expect(treeRef.focus.mock.calls).toHaveLength(0);
   });
 
   it("ignores key strokes when pressing modifiers", () => {
     const wrapper = mountTree({
       expanded: new Set("ABCDEFGHIJKLMNO".split("")),
-      focused: "L"
+      focused: "L",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
     expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
       "key-L"
     );
     expect(wrapper.find(".focused").prop("id")).toBe("key-L");
 
     const testKeys = [
       { key: "ArrowDown" },
       { key: "ArrowUp" },
       { key: "ArrowLeft" },
-      { key: "ArrowRight" }
+      { key: "ArrowRight" },
     ];
     const modifiers = [
       { altKey: true },
       { ctrlKey: true },
       { metaKey: true },
-      { shiftKey: true }
+      { shiftKey: true },
     ];
 
     for (const key of testKeys) {
       for (const modifier of modifiers) {
         wrapper.simulate("keydown", Object.assign({}, key, modifier));
         expect(formatTree(wrapper)).toMatchSnapshot();
         expect(wrapper.getDOMNode().getAttribute("aria-activedescendant")).toBe(
           "key-L"
         );
       }
     }
   });
 
   it("renders arrows as expected when nodes are expanded", () => {
     const wrapper = mountTree({
-      expanded: new Set("ABCDEFGHIJKLMNO".split(""))
+      expanded: new Set("ABCDEFGHIJKLMNO".split("")),
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
 
     getTreeNodes(wrapper).forEach(n => {
       if ("ABECDMN".split("").includes(getSanitizedNodeText(n))) {
         expect(n.find(".arrow.expanded").exists()).toBe(true);
       } else {
         expect(n.find(".arrow").exists()).toBe(false);
@@ -779,41 +779,41 @@ describe("Tree", () => {
       const arrow = n.find(".arrow");
       expect(arrow.exists()).toBe(true);
       expect(arrow.hasClass("expanded")).toBe(false);
     });
   });
 
   it("uses isExpandable prop if it exists to render tree nodes", () => {
     const wrapper = mountTree({
-      isExpandable: item => item === "A"
+      isExpandable: item => item === "A",
     });
     expect(formatTree(wrapper)).toMatchSnapshot();
   });
 
   it("adds the expected data-expandable attribute", () => {
     const wrapper = mountTree({
-      isExpandable: item => item === "A"
+      isExpandable: item => item === "A",
     });
     const nodes = getTreeNodes(wrapper);
     expect(nodes.at(0).prop("data-expandable")).toBe(true);
     expect(nodes.at(1).prop("data-expandable")).toBe(false);
   });
 });
 
 function getTreeNodes(wrapper) {
   return wrapper.find(".tree-node");
 }
 
 function simulateKeyDown(wrapper, key, options) {
   wrapper.simulate("keydown", {
     key,
     preventDefault: () => {},
     stopPropagation: () => {},
-    ...options
+    ...options,
   });
 }
 
 function renderItemWithFocusableContent(x, depth, focused, arrow) {
   const children = [arrow, focused ? "[" : null, x];
   if (x === "L") {
     children.push(dom.a({ id: "active-anchor", href: "#" }, " anchor"));
   }
@@ -899,28 +899,28 @@ var TEST_TREE = {
     G: [],
     H: [],
     I: [],
     J: [],
     K: [],
     L: [],
     M: ["N"],
     N: ["O"],
-    O: []
+    O: [],
   },
   parent: {
     A: null,
     B: "A",
     C: "A",
     D: "A",
     E: "B",
     F: "B",
     G: "B",
     H: "C",
     I: "C",
     J: "D",
     K: "E",
     L: "E",
     M: null,
     N: "M",
-    O: "N"
-  }
+    O: "N",
+  },
 };
--- a/devtools/client/debugger/packages/devtools-components/src/tree.js
+++ b/devtools/client/debugger/packages/devtools-components/src/tree.js
@@ -16,43 +16,43 @@ const AUTO_EXPAND_DEPTH = 0;
 // full version at https://stackoverflow.com/questions/1599660.
 const FOCUSABLE_SELECTOR = [
   "a[href]:not([tabindex='-1'])",
   "button:not([disabled]):not([tabindex='-1'])",
   "iframe:not([tabindex='-1'])",
   "input:not([disabled]):not([tabindex='-1'])",
   "select:not([disabled]):not([tabindex='-1'])",
   "textarea:not([disabled]):not([tabindex='-1'])",
-  "[tabindex]:not([tabindex='-1'])"
+  "[tabindex]:not([tabindex='-1'])",
 ].join(", ");
 
 /**
  * An arrow that displays whether its node is expanded (▼) or collapsed
  * (▶). When its node has no children, it is hidden.
  */
 class ArrowExpander extends Component {
   static get propTypes() {
     return {
-      expanded: PropTypes.bool
+      expanded: PropTypes.bool,
     };
   }
 
   shouldComponentUpdate(nextProps, nextState) {
     return this.props.expanded !== nextProps.expanded;
   }
 
   render() {
     const { expanded } = this.props;
 
     const classNames = ["arrow"];
     if (expanded) {
       classNames.push("expanded");
     }
     return dom.button({
-      className: classNames.join(" ")
+      className: classNames.join(" "),
     });
   }
 }
 
 const treeIndent = dom.span({ className: "tree-indent" }, "\u200B");
 const treeLastIndent = dom.span(
   { className: "tree-indent tree-last-indent" },
   "\u200B"
@@ -66,17 +66,17 @@ class TreeNode extends Component {
       depth: PropTypes.number.isRequired,
       focused: PropTypes.bool.isRequired,
       active: PropTypes.bool.isRequired,
       expanded: PropTypes.bool.isRequired,
       item: PropTypes.any.isRequired,
       isExpandable: PropTypes.bool.isRequired,
       onClick: PropTypes.func,
       shouldItemUpdate: PropTypes.func,
-      renderItem: PropTypes.func.isRequired
+      renderItem: PropTypes.func.isRequired,
     };
   }
 
   constructor(props) {
     super(props);
 
     this.treeNodeRef = React.createRef();
 
@@ -171,40 +171,40 @@ class TreeNode extends Component {
     const {
       depth,
       id,
       item,
       focused,
       active,
       expanded,
       renderItem,
-      isExpandable
+      isExpandable,
     } = this.props;
 
     const arrow = isExpandable
       ? ArrowExpanderFactory({
           item,
-          expanded
+          expanded,
         })
       : null;
 
     let ariaExpanded;
     if (this.props.isExpandable) {
       ariaExpanded = false;
     }
     if (this.props.expanded) {
       ariaExpanded = true;
     }
 
-    const indents = Array.from({length: depth}, (_, i) => {
+    const indents = Array.from({ length: depth }, (_, i) => {
       if (i == depth - 1) {
         return treeLastIndent;
       }
       return treeIndent;
-    })
+    });
 
     const items = indents.concat(
       renderItem(item, depth, focused, arrow, expanded)
     );
 
     return dom.div(
       {
         id,
@@ -212,17 +212,17 @@ class TreeNode extends Component {
           active ? " active" : ""
         }`,
         onClick: this.props.onClick,
         onKeyDownCapture: active ? this._onKeyDown : null,
         role: "treeitem",
         ref: this.treeNodeRef,
         "aria-level": depth + 1,
         "aria-expanded": ariaExpanded,
-        "data-expandable": this.props.isExpandable
+        "data-expandable": this.props.isExpandable,
       },
       ...items
     );
   }
 }
 
 const ArrowExpanderFactory = createFactory(ArrowExpander);
 const TreeNodeFactory = createFactory(TreeNode);
@@ -468,32 +468,32 @@ class Tree extends Component {
       // within the tree node.
       onActivate: PropTypes.func,
       isExpandable: PropTypes.func,
       // Additional classes to add to the root element.
       className: PropTypes.string,
       // style object to be applied to the root element.
       style: PropTypes.object,
       // Prevents blur when Tree loses focus
-      preventBlur: PropTypes.bool
+      preventBlur: PropTypes.bool,
     };
   }
 
   static get defaultProps() {
     return {
       autoExpandDepth: AUTO_EXPAND_DEPTH,
-      autoExpandAll: true
+      autoExpandAll: true,
     };
   }
 
   constructor(props) {
     super(props);
 
     this.state = {
-      seen: new Set()
+      seen: new Set(),
     };
 
     this.treeRef = React.createRef();
 
     this._onExpand = oncePerAnimationFrame(this._onExpand).bind(this);
     this._onCollapse = oncePerAnimationFrame(this._onCollapse).bind(this);
     this._focusPrevNode = oncePerAnimationFrame(this._focusPrevNode).bind(this);
     this._focusNextNode = oncePerAnimationFrame(this._focusNextNode).bind(this);
@@ -972,17 +972,17 @@ class Tree extends Component {
           if (this.props.isExpanded(item)) {
             this.props.onCollapse(item, e.altKey);
           } else {
             this.props.onExpand(item, e.altKey);
           }
 
           // Focus should always remain on the tree container itself.
           this.treeRef.current.focus();
-        }
+        },
       });
     });
 
     const style = Object.assign({}, this.props.style || {});
 
     return dom.div(
       {
         className: `tree ${this.props.className ? this.props.className : ""}`,
@@ -1007,16 +1007,16 @@ class Tree extends Component {
           ) {
             this._focus(traversal[0].item);
           }
         },
         onBlur: this._onBlur,
         "aria-label": this.props.label,
         "aria-labelledby": this.props.labelledby,
         "aria-activedescendant": focused && this.props.getKey(focused),
-        style
+        style,
       },
       nodes
     );
   }
 }
 
 export default Tree;
--- a/devtools/client/debugger/packages/devtools-components/stories/index.js
+++ b/devtools/client/debugger/packages/devtools-components/stories/index.js
@@ -1,5 +1,5 @@
 /* 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/. */
+ * 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/>. */
 
 require("./tree");
--- a/devtools/client/debugger/packages/devtools-components/stories/tree.js
+++ b/devtools/client/debugger/packages/devtools-components/stories/tree.js
@@ -1,11 +1,11 @@
 /* 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/. */
+ * 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 React from "react";
 const { Component, createFactory, createElement } = React;
 
 import Components from "../index";
 const Tree = createFactory(Components.Tree);
 import { storiesOf } from "@storybook/react";
 
@@ -30,95 +30,114 @@ storiesOf("Tree", module)
       autoExpandDepth: Infinity,
       getRoots: () => ["A", "P", "M", "Q", "W", "R"],
     });
   })
   .add("focused node", () => {
     return renderTree({
       focused: "W",
       getRoots: () => ["A", "W"],
-      expanded: new Set(["A"])
+      expanded: new Set(["A"]),
     });
   })
   .add("variable height nodes", () => {
-    const nodes = Array.from({length: 10})
-      .map((_, i) => `item ${i + 1} - `.repeat(10 + Math.random() * 50));
-    return renderTree({
-      getRoots: () => ["ROOT"],
-      expanded: new Set(["ROOT"])
-    }, {
-      children: {"ROOT": nodes}
-    });
+    const nodes = Array.from({ length: 10 }).map((_, i) =>
+      `item ${i + 1} - `.repeat(10 + Math.random() * 50)
+    );
+    return renderTree(
+      {
+        getRoots: () => ["ROOT"],
+        expanded: new Set(["ROOT"]),
+      },
+      {
+        children: { ROOT: nodes },
+      }
+    );
   })
   .add("scrollable tree", () => {
-    const nodes = Array.from({length: 500}).map((_, i) => (i + 1).toString());
+    const nodes = Array.from({ length: 500 }).map((_, i) => (i + 1).toString());
 
     class container extends Component {
       constructor(props) {
         super(props);
         const state = {
           expanded: new Set(),
-          focused: null
+          focused: null,
         };
         this.state = state;
       }
 
       render() {
-        return createElement("div", {},
-          createElement("label", {
-            style: {position: "fixed", right: 0},
-          },
+        return createElement(
+          "div",
+          {},
+          createElement(
+            "label",
+            {
+              style: { position: "fixed", right: 0 },
+            },
             "Enter node number to set focus on: ",
             createElement("input", {
               type: "number",
               min: 1,
               max: 500,
               onInput: e => {
                 // Storing balue since `e` can be reused by the time the setState
                 // callback is called.
                 const value = e.target.value.toString();
                 this.setState(previousState => {
-                  return {focused: value};
+                  return { focused: value };
                 });
-              }
-            }),
+              },
+            })
           ),
-          createTreeElement({getRoots: () => nodes}, this, {})
+          createTreeElement({ getRoots: () => nodes }, this, {})
         );
       }
     }
     return createFactory(container)();
   })
   .add("scrollable tree with focused node", () => {
-    const nodes = Array.from({length: 500}).map((_, i) => `item ${i + 1}`);
-    return renderTree({
-      focused: "item 250",
-      getRoots: () => nodes,
-    }, {});
+    const nodes = Array.from({ length: 500 }).map((_, i) => `item ${i + 1}`);
+    return renderTree(
+      {
+        focused: "item 250",
+        getRoots: () => nodes,
+      },
+      {}
+    );
   })
   .add("1000 items tree", () => {
-    const nodes = Array.from({length: 1000}).map((_, i) => `item-${i + 1}`);
-    return renderTree({
-      getRoots: () => ["ROOT"],
-      expanded: new Set()
-    }, {
-      children: {"ROOT": nodes}
-    });
+    const nodes = Array.from({ length: 1000 }).map((_, i) => `item-${i + 1}`);
+    return renderTree(
+      {
+        getRoots: () => ["ROOT"],
+        expanded: new Set(),
+      },
+      {
+        children: { ROOT: nodes },
+      }
+    );
   })
   .add("30,000 items tree", () => {
-    const nodes = Array.from({length: 1000}).map((_, i) => `item-${i + 1}`);
-    return renderTree({
-      getRoots: () => nodes,
-      expanded: new Set(Array.from({length: 2000}).map((_, i) => `item-${i + 1}`))
-    }, {
-      children: Array.from({length: 2000}).reduce((res, _, i) => {
-        res[`item-${i + 1}`] = [`item-${i + 1001}`];
-        return res;
-      }, {})
-    });
+    const nodes = Array.from({ length: 1000 }).map((_, i) => `item-${i + 1}`);
+    return renderTree(
+      {
+        getRoots: () => nodes,
+        expanded: new Set(
+          Array.from({ length: 2000 }).map((_, i) => `item-${i + 1}`)
+        ),
+      },
+      {
+        children: Array.from({ length: 2000 }).reduce((res, _, i) => {
+          res[`item-${i + 1}`] = [`item-${i + 1001}`];
+          return res;
+        }, {}),
+      }
+    );
   });
 
 // Encoding of the following tree/forest:
 //
 // A
 // |-- B
 // |   |-- E
 // |   |   |-- K
@@ -192,53 +211,57 @@ const TEST_TREE = {
 };
 
 function renderTree(props, tree = TEST_TREE) {
   class container extends Component {
     constructor(props2) {
       super(props2);
       const state = {
         expanded: props2.expanded || new Set(),
-        focused: props2.focused
+        focused: props2.focused,
       };
       delete props2.focused;
       this.state = state;
     }
 
     render() {
       return createTreeElement(props, this, tree);
     }
   }
   return createFactory(container)();
 }
 
 function createTreeElement(props, context, tree) {
-  return Tree(Object.assign({
-    getParent: x => tree.parent && tree.parent[x],
-    getChildren: x => tree.children && tree.children[x]
-      ? tree.children[x]
-      : [],
-    renderItem: (x, depth, focused, arrow, expanded) => [arrow, x],
-    getRoots: () => ["A"],
-    getKey: x => "key-" + x,
-    onFocus: x => {
-      context.setState(previousState => {
-        return {focused: x};
-      });
-    },
-    onExpand: x => {
-      context.setState(previousState => {
-        const expanded = new Set(previousState.expanded);
-        expanded.add(x);
-        return {expanded};
-      });
-    },
-    onCollapse: x => {
-      context.setState(previousState => {
-        const expanded = new Set(previousState.expanded);
-        expanded.delete(x);
-        return {expanded};
-      });
-    },
-    isExpanded: x => context.state && context.state.expanded.has(x),
-    focused: context.state.focused,
-  }, props));
+  return Tree(
+    Object.assign(
+      {
+        getParent: x => tree.parent && tree.parent[x],
+        getChildren: x =>
+          tree.children && tree.children[x] ? tree.children[x] : [],
+        renderItem: (x, depth, focused, arrow, expanded) => [arrow, x],
+        getRoots: () => ["A"],
+        getKey: x => `key-${x}`,
+        onFocus: x => {
+          context.setState(previousState => {
+            return { focused: x };
+          });
+        },
+        onExpand: x => {
+          context.setState(previousState => {
+            const expanded = new Set(previousState.expanded);
+            expanded.add(x);
+            return { expanded };
+          });
+        },
+        onCollapse: x => {
+          context.setState(previousState => {
+            const expanded = new Set(previousState.expanded);
+            expanded.delete(x);
+            return { expanded };
+          });
+        },
+        isExpanded: x => context.state && context.state.expanded.has(x),
+        focused: context.state.focused,
+      },
+      props
+    )
+  );
 }
--- a/devtools/client/debugger/packages/devtools-components/webpack.config.js
+++ b/devtools/client/debugger/packages/devtools-components/webpack.config.js
@@ -1,14 +1,14 @@
 /* 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/. */
+ * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
 
 const { toolboxConfig } = require("devtools-launchpad/index");
-const {isDevelopment} = require("devtools-config");
+const { isDevelopment } = require("devtools-config");
 
 const path = require("path");
 const projectPath = path.join(__dirname);
 
 const webpackConfig = {
   entry: {
     "devtools-components": path.join(projectPath, "index.js"),
   },
@@ -18,22 +18,25 @@ const webpackConfig = {
     filename: "[name].js",
     publicPath: "/assets/build",
     libraryTarget: "umd",
   },
   resolve: {
     alias: {
       "devtools/client/shared/vendor/react": "react",
       "devtools/client/shared/vendor/react-dom": "react-dom",
-      "devtools/client/shared/vendor/react-dom-factories": "react-dom-factories",
+      "devtools/client/shared/vendor/react-dom-factories":
+        "react-dom-factories",
       "devtools/client/shared/vendor/react-prop-types": "prop-types",
-      "Services": path.join(__dirname,
-        "node_modules/devtools-modules/client/shared/shim/Services"),
-    }
-  }
+      Services: path.join(
+        __dirname,
+        "node_modules/devtools-modules/client/shared/shim/Services"
+      ),
+    },
+  },
 };
 
 const extra = {
   disablePostCSS: true,
 };
 webpackConfig.plugins = [];
 if (!isDevelopment()) {
   extra.excludeMap = {
--- a/devtools/client/debugger/packages/devtools-reps/bin/dev-server.js
+++ b/devtools/client/debugger/packages/devtools-reps/bin/dev-server.js
@@ -1,25 +1,27 @@
 /* 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/. */
+ * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
 
 const path = require("path");
 const toolbox = require("devtools-launchpad/index");
 const serve = require("express-static");
 const config = require("../config");
 
-let webpackConfig = require("../webpack.config");
+const webpackConfig = require("../webpack.config");
 
-let { app } = toolbox.startDevServer(config, webpackConfig, __dirname);
+const { app } = toolbox.startDevServer(config, webpackConfig, __dirname);
 
 // Serve devtools-reps images
 app.use(
   "/devtools-reps/images/",
   serve(path.join(__dirname, "../src/shared/images"))
 );
 
 // As well as devtools-components ones, with a different path, which we are going to
 // write in the postCSS config in development mode.
 app.use(
   "/devtools-components/images/",
-  serve(path.join(__dirname, "../../../node_modules/devtools-components/src/images"))
+  serve(
+    path.join(__dirname, "../../../node_modules/devtools-components/src/images")
+  )
 );
--- a/devtools/client/debugger/packages/devtools-reps/config.js
+++ b/devtools/client/debugger/packages/devtools-reps/config.js
@@ -1,16 +1,20 @@
+/* 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/>. */
+
 module.exports = {
-  "title": "Reps",
-  "hotReloading": true,
-  "defaultURL": "https://nchevobbe.github.io/demo/console-test-app.html",
-  "environment": "development",
-  "theme": "light",
-  "firefox": {
-    "webSocketConnection": false,
-    "host": "localhost",
-    "webSocketPort": 9000,
-    "tcpPort": 6080,
+  title: "Reps",
+  hotReloading: true,
+  defaultURL: "https://nchevobbe.github.io/demo/console-test-app.html",
+  environment: "development",
+  theme: "light",
+  firefox: {
+    webSocketConnection: false,
+    host: "localhost",
+    webSocketPort: 9000,
+    tcpPort: 6080,
   },
-  "development": {
-    "serverPort": 8000
-  }
+  development: {
+    serverPort: 8000,
+  },
 };
--- a/devtools/client/debugger/packages/devtools-reps/jest.config.js
+++ b/devtools/client/debugger/packages/devtools-reps/jest.config.js
@@ -1,26 +1,30 @@
+/* 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/>. */
+
 const { resolve } = require("path");
 const rootDir = resolve(__dirname, "src");
 module.exports = {
   rootDir,
   displayName: "devtools-reps test",
   setupFiles: [
     "<rootDir>/../../../src/test/__mocks__/request-animation-frame.js",
     "<rootDir>/test/__mocks__/selection.js",
-    "<rootDir>/test/setup.js"
+    "<rootDir>/test/setup.js",
   ],
   setupTestFrameworkScriptFile: "<rootDir>/test/setup-file.js",
   testMatch: ["**/tests/**/*.js"],
   testPathIgnorePatterns: [
     "/node_modules/",
     "<rootDir>/test/",
     "<rootDir>/reps/tests/test-helpers",
     "<rootDir>/utils/tests/fixtures/",
     "<rootDir>/object-inspector/tests/__mocks__/",
-    "<rootDir>/object-inspector/tests/test-utils"
+    "<rootDir>/object-inspector/tests/test-utils",
   ],
   testURL: "http://localhost/",
   transformIgnorePatterns: ["node_modules/(?!devtools-)"],
   moduleNameMapper: {
-    "\\.css$": "<rootDir>/../../../src/test/__mocks__/styleMock.js"
-  }
+    "\\.css$": "<rootDir>/../../../src/test/__mocks__/styleMock.js",
+  },
 };
--- a/devtools/client/debugger/packages/devtools-reps/postcss.config.js
+++ b/devtools/client/debugger/packages/devtools-reps/postcss.config.js
@@ -19,16 +19,16 @@ function mapUrlDevelopment(url) {
     url = url.replace(`^/images/${img}`, `${EXPRESS_PATH}${img}`);
   }
   return url;
 }
 
 module.exports = ({ file, options, env }) => {
   if (env === "production") {
     return {
-      plugins: [mapUrl(mapUrlProduction)]
+      plugins: [mapUrl(mapUrlProduction)],
     };
   }
 
   return {
-    plugins: [mapUrl(mapUrlDevelopment)]
+    plugins: [mapUrl(mapUrlDevelopment)],
   };
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/index.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/index.js
@@ -7,28 +7,28 @@
 const { MODE } = require("./reps/constants");
 const { REPS, getRep } = require("./reps/rep");
 const objectInspector = require("./object-inspector");
 
 const {
   parseURLEncodedText,
   parseURLParams,
   maybeEscapePropertyName,
-  getGripPreviewItems
+  getGripPreviewItems,
 } = require("./reps/rep-utils");
 
 module.exports = {
   REPS,
   getRep,
   MODE,
   maybeEscapePropertyName,
   parseURLEncodedText,
   parseURLParams,
   getGripPreviewItems,
-  objectInspector
+  objectInspector,
 };
 
 export type {
   RdpGrip,
   GripProperties,
   Node,
-  Grip
+  Grip,
 } from "./object-inspector/types";
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/expressions.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/expressions.js
@@ -17,38 +17,38 @@ function evaluateInput(input) {
 }
 
 function addExpression(input, packet) {
   return {
     key: generateKey(),
     type: constants.ADD_EXPRESSION,
     value: {
       input,
-      packet
-    }
+      packet,
+    },
   };
 }
 
 function clearExpressions() {
   return {
-    type: constants.CLEAR_EXPRESSIONS
+    type: constants.CLEAR_EXPRESSIONS,
   };
 }
 
 function showResultPacket(key) {
   return {
     key,
-    type: constants.SHOW_RESULT_PACKET
+    type: constants.SHOW_RESULT_PACKET,
   };
 }
 
 function hideResultPacket(key) {
   return {
     key,
-    type: constants.HIDE_RESULT_PACKET
+    type: constants.HIDE_RESULT_PACKET,
   };
 }
 
 function createObjectClient(grip) {
   return function({ dispatch, client }) {
     return client.getObjectClient(grip);
   };
 }
@@ -67,10 +67,10 @@ function releaseActor(actor) {
 module.exports = {
   addExpression,
   clearExpressions,
   evaluateInput,
   showResultPacket,
   hideResultPacket,
   createObjectClient,
   createLongStringClient,
-  releaseActor
+  releaseActor,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/index.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/index.js
@@ -2,10 +2,10 @@
  * 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/>. */
 
 const expressions = require("./expressions");
 const input = require("./input");
 
 module.exports = {
   ...expressions,
-  ...input
+  ...input,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/input.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/actions/input.js
@@ -8,32 +8,32 @@ const { generateKey } = require("../util
 
 function addInput(input) {
   return ({ dispatch }) => {
     dispatch(expressionsActions.evaluateInput(input));
 
     dispatch({
       key: generateKey(),
       type: constants.ADD_INPUT,
-      value: input
+      value: input,
     });
   };
 }
 
 function changeCurrentInput(input) {
   return {
     type: constants.CHANGE_CURRENT_INPUT,
-    value: input
+    value: input,
   };
 }
 
 function navigateInputHistory(dir) {
   return {
     type: constants.NAVIGATE_INPUT_HISTORY,
-    value: dir
+    value: dir,
   };
 }
 
 module.exports = {
   addInput,
   changeCurrentInput,
-  navigateInputHistory
+  navigateInputHistory,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Console.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Console.js
@@ -24,17 +24,17 @@ class Console extends Component {
       addInput: PropTypes.func.isRequired,
       changeCurrentInput: PropTypes.func.isRequired,
       clearExpressions: PropTypes.func.isRequired,
       currentInputValue: PropTypes.string.isRequired,
       evaluateInput: PropTypes.func.isRequired,
       expressions: PropTypes.object.isRequired,
       hideResultPacket: PropTypes.func.isRequired,
       navigateInputHistory: PropTypes.func.isRequired,
-      showResultPacket: PropTypes.func.isRequired
+      showResultPacket: PropTypes.func.isRequired,
     };
   }
 
   componentDidMount() {
     shortcuts.on("CmdOrCtrl+Shift+L", this.props.clearExpressions);
   }
 
   componentWillUnmount() {
@@ -46,42 +46,42 @@ class Console extends Component {
       addInput,
       changeCurrentInput,
       clearExpressions,
       currentInputValue,
       evaluateInput,
       expressions,
       hideResultPacket,
       navigateInputHistory,
-      showResultPacket
+      showResultPacket,
     } = this.props;
 
     return dom.main(
       {},
       Header({
         addInput,
         changeCurrentInput,
         clearResultsList: clearExpressions,
         currentInputValue,
         evaluate: evaluateInput,
-        navigateInputHistory
+        navigateInputHistory,
       }),
       ResultsList({
         expressions: expressions.reverse(),
         hideResultPacket,
-        showResultPacket
+        showResultPacket,
       })
     );
   }
 }
 
 function mapStateToProps(state) {
   return {
     expressions: selectors.getExpressions(state),
-    currentInputValue: selectors.getCurrentInputValue(state)
+    currentInputValue: selectors.getCurrentInputValue(state),
   };
 }
 
 function mapDispatchToProps(dispatch) {
   return bindActionCreators(require("../actions"), dispatch);
 }
 
 module.exports = connect(
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Header.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Header.js
@@ -13,17 +13,17 @@ require("./Header.css");
 class Header extends Component {
   static get propTypes() {
     return {
       addInput: PropTypes.func.isRequired,
       changeCurrentInput: PropTypes.func.isRequired,
       clearResultsList: PropTypes.func.isRequired,
       currentInputValue: PropTypes.string,
       evaluate: PropTypes.func.isRequired,
-      navigateInputHistory: PropTypes.func.isRequired
+      navigateInputHistory: PropTypes.func.isRequired,
     };
   }
 
   constructor(props) {
     super(props);
     this.onSubmitForm = this.onSubmitForm.bind(this);
     this.onInputChange = this.onInputChange.bind(this);
     this.onInputKeyDown = this.onInputKeyDown.bind(this);
@@ -63,23 +63,23 @@ class Header extends Component {
         dom.h1({}, "Reps"),
         dom.input({
           type: "text",
           placeholder: "Enter an expression",
           name: "expression",
           value: currentInputValue || "",
           autoFocus: true,
           onChange: this.onInputChange,
-          onKeyDown: this.onInputKeyDown
+          onKeyDown: this.onInputKeyDown,
         }),
         dom.button(
           {
             className: "clear-button",
             type: "button",
-            onClick: this.onClearButtonClick
+            onClick: this.onClearButtonClick,
           },
           "Clear"
         )
       ),
       QuickLinks({ evaluate })
     );
   }
 }
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/QuickLinks.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/QuickLinks.js
@@ -7,17 +7,17 @@ const { Component } = React;
 const PropTypes = require("prop-types");
 const dom = require("react-dom-factories");
 require("./QuickLinks.css");
 const samples = require("../samples.js");
 
 class QuickLinks extends Component {
   static get propTypes() {
     return {
-      evaluate: PropTypes.func.isRequired
+      evaluate: PropTypes.func.isRequired,
     };
   }
 
   constructor(props) {
     super(props);
     this.evaluateExpressions = this.evaluateExpressions.bind(this);
     this.renderLinks = this.renderLinks.bind(this);
   }
@@ -34,17 +34,17 @@ class QuickLinks extends Component {
         {
           key: label,
           title:
             label === "yolo"
               ? "Add all sample expressions"
               : `Add ${length} ${label} sample expression${
                   length > 1 ? "s" : ""
                 }`,
-          onClick: () => this.evaluateExpressions(expressions)
+          onClick: () => this.evaluateExpressions(expressions),
         },
         label
       );
     });
   }
 
   render() {
     return dom.div({ className: "quick-links" }, this.renderLinks());
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Result.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/Result.js
@@ -10,17 +10,17 @@ const { MODE } = require("../../reps/con
 const { ObjectInspector } = require("../../index").objectInspector;
 const { Rep } = require("../../reps/rep");
 
 class Result extends Component {
   static get propTypes() {
     return {
       expression: PropTypes.object.isRequired,
       showResultPacket: PropTypes.func.isRequired,
-      hideResultPacket: PropTypes.func.isRequired
+      hideResultPacket: PropTypes.func.isRequired,
     };
   }
 
   constructor(props) {
     super(props);
     this.copyPacketToClipboard = this.copyPacketToClipboard.bind(this);
     this.onHeaderClick = this.onHeaderClick.bind(this);
     this.renderRepInAllModes = this.renderRepInAllModes.bind(this);
@@ -57,78 +57,78 @@ class Result extends Component {
 
   renderRep({ object, modeKey }) {
     const path = Symbol(modeKey + object.actor);
 
     return dom.div(
       {
         className: "rep-element",
         key: path.toString(),
-        "data-mode": modeKey
+        "data-mode": modeKey,
       },
       ObjectInspector({
         roots: [
           {
             path,
             contents: {
-              value: object
-            }
-          }
+              value: object,
+            },
+          },
         ],
         autoExpandDepth: 0,
         mode: MODE[modeKey],
         // The following properties are optional function props called by the
         // objectInspector on some occasions. Here we pass dull functions that
         // only logs the parameters with which the callback was called.
         onCmdCtrlClick: (node, { depth, event, focused, expanded }) =>
           console.log("CmdCtrlClick", {
             node,
             depth,
             event,
             focused,
-            expanded
+            expanded,
           }),
         onInspectIconClick: nodeFront =>
           console.log("inspectIcon click", { nodeFront }),
         onViewSourceInDebugger: location =>
           console.log("onViewSourceInDebugger", { location }),
         recordTelemetryEvent: (eventName, extra = {}) => {
           console.log("📊", eventName, "📊", extra);
-        }
+        },
       })
     );
   }
 
   renderPacket(expression) {
     const { packet, showPacket } = expression;
     const headerClassName = showPacket ? "packet-expanded" : "packet-collapsed";
     const headerLabel = showPacket
       ? "Hide expression packet"
       : "Show expression packet";
 
     return dom.div(
       { className: "packet" },
       dom.header(
         {
           className: headerClassName,
-          onClick: this.onHeaderClick
+          onClick: this.onHeaderClick,
         },
         headerLabel,
         dom.span({ className: "copy-label" }, "Copy"),
         dom.button(
           {
             className: "copy-packet-button",
-            onClick: e => this.copyPacketToClipboard(e, packet.result)
+            onClick: e => this.copyPacketToClipboard(e, packet.result),
           },
           "grip"
         ),
         dom.button(
           {
             className: "copy-packet-button",
-            onClick: e => this.copyPacketToClipboard(e, packet)
+            onClick: e => this.copyPacketToClipboard(e, packet),
           },
           "packet"
         )
       ),
       ...(showPacket
         ? Object.keys(packet).map(k =>
             dom.div(
               { className: "packet-rep" },
@@ -144,17 +144,17 @@ class Result extends Component {
     const { expression } = this.props;
     const { input, packet } = expression;
     return dom.div(
       { className: "rep-row" },
       dom.div({ className: "rep-input" }, input),
       dom.div(
         { className: "reps" },
         this.renderRepInAllModes({
-          object: packet.exception || packet.result
+          object: packet.exception || packet.result,
         })
       ),
       this.renderPacket(expression)
     );
   }
 }
 
 module.exports = Result;
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/ResultsList.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/components/ResultsList.js
@@ -10,33 +10,33 @@ const ImPropTypes = require("react-immut
 
 const Result = createFactory(require("./Result"));
 
 class ResultsList extends Component {
   static get propTypes() {
     return {
       expressions: ImPropTypes.map.isRequired,
       showResultPacket: PropTypes.func.isRequired,
-      hideResultPacket: PropTypes.func.isRequired
+      hideResultPacket: PropTypes.func.isRequired,
     };
   }
 
   render() {
     const { expressions, showResultPacket, hideResultPacket } = this.props;
 
     return dom.div(
       { className: "expressions" },
       expressions
         .entrySeq()
         .toJS()
         .map(([key, expression]) =>
           Result({
             key,
             expression: expression.toJS(),
             showResultPacket: () => showResultPacket(key),
-            hideResultPacket: () => hideResultPacket(key)
+            hideResultPacket: () => hideResultPacket(key),
           })
         )
     );
   }
 }
 
 module.exports = ResultsList;
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/constants.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/constants.js
@@ -10,10 +10,10 @@ module.exports = {
   CLEAR_EXPRESSIONS: Symbol("CLEAR_EXPRESSIONS"),
   SHOW_RESULT_PACKET: Symbol("SHOW_RESULT_PACKET"),
   HIDE_RESULT_PACKET: Symbol("HIDE_RESULT_PACKET"),
   ADD_INPUT: Symbol("ADD_INPUT"),
   CHANGE_CURRENT_INPUT: Symbol("CHANGE_CURRENT_INPUT"),
   NAVIGATE_INPUT_HISTORY: Symbol("NAVIGATE_INPUT_HISTORY"),
   DIR_FORWARD: Symbol("DIR_FORWARD "),
   DIR_BACKWARD: Symbol("DIR_BACKWARD"),
-  LS_EXPRESSIONS_KEY: "LS_EXPRESSIONS_KEY"
+  LS_EXPRESSIONS_KEY: "LS_EXPRESSIONS_KEY",
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/index.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/index.js
@@ -19,33 +19,33 @@ require("./launchpad.css");
 function onConnect(connection) {
   if (!connection) {
     return;
   }
 
   const client = {
     clientCommands: {
       evaluate: input =>
-        connection.tabConnection.tabTarget.activeConsole.evaluateJSAsync(input)
+        connection.tabConnection.tabTarget.activeConsole.evaluateJSAsync(input),
     },
 
     createObjectClient: function(grip) {
       return connection.tabConnection.threadClient.pauseGrip(grip);
     },
     createLongStringClient: function(grip) {
       return connection.tabConnection.tabTarget.activeConsole.longString(grip);
     },
     releaseActor: function(actor) {
       return connection.tabConnection.debuggerClient.release(actor);
-    }
+    },
   };
 
   const store = configureStore({
     makeThunkArgs: (args, state) => ({ ...args, client }),
-    client
+    client,
   });
   renderRoot(React, ReactDOM, RepsConsole, store);
 }
 
 function onConnectionError(e) {
   const h1 = document.createElement("h1");
   h1.innerText = `An error occured during the connection: «${e.message}»`;
   console.warn("An error occured during the connection", e);
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/reducers/index.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/reducers/index.js
@@ -4,10 +4,10 @@
 
 const expressions = require("./expressions");
 const input = require("./input");
 const { objectInspector } = require("../../index");
 
 module.exports = {
   expressions,
   input,
-  objectInspector: objectInspector.reducer.default
+  objectInspector: objectInspector.reducer.default,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/reducers/input.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/reducers/input.js
@@ -3,17 +3,17 @@
  * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
 
 const constants = require("../constants");
 const Immutable = require("immutable");
 
 const initialState = Immutable.Map({
   currentValue: "",
   currentNavigationKey: null,
-  history: Immutable.OrderedMap()
+  history: Immutable.OrderedMap(),
 });
 
 function update(state = initialState, action) {
   const { type, value, key } = action;
 
   const currentValue = state.get("currentValue");
   const currentNavigationKey = state.get("currentNavigationKey");
   const history = state.get("history");
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/samples.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/samples.js
@@ -20,17 +20,17 @@ const samples = {
     `x = document.createElementNS("http://www.w3.org/2000/svg", "clipPath");
      x.setAttribute("id", "myNodeId");
      x.setAttribute("class", "my-class and another");
      x;`,
     "document.createComment('my comment node')",
     "document.createTextNode('foo')",
     `x = document.createAttribute('foo');
      x.value = "bar";
-     x;`
+     x;`,
   ],
 
   "map & sets": [
     `
       ({
         "small set": new Set([1,2,3,4]),
         "small map": new Map([
           ["a", {suba: 1}],
@@ -72,17 +72,17 @@ const samples = {
             {
               [String.fromCharCode(65 + i)]: i + 1,
               document
             },
             Symbol(i + 1)
           ])
         ),
       })
-    `
+    `,
   ],
 
   number: ["1", "-1", "-3.14", "0", "-0", "Infinity", "-Infinity", "NaN"],
 
   object: [
     "x = {a: 2}",
     `
 Object.create(null, Object.getOwnPropertyDescriptors({
@@ -119,46 +119,46 @@ Object.create(null, Object.getOwnPropert
   get myThrowingGetter() {
     return a.b.c.d.e.f;
   },
   get myLongStringGetter() {
     return "ab ".repeat(1e5)
   },
   set mySetterOnly(x) {}
 }))
-`
+`,
   ],
 
   promise: [
     "Promise.resolve([1, 2, 3])",
     "Promise.reject(new Error('This is wrong'))",
-    "new Promise(() => {})"
+    "new Promise(() => {})",
   ],
 
   proxy: [
     `
     var handler = {
         get: function(target, name) {
             return name in target ?
                 target[name] :
                 37;
         }
     };
     new Proxy({a: 1}, handler);
-  `
+  `,
   ],
 
   regexp: ["new RegExp('^[-]?[0-9]+[.]?[0-9]+$')"],
 
   string: [
     "'foo'",
     "'bar\nbaz\nyup'",
     "'http://example.com'",
     "'blah'.repeat(10000)",
-    "'http://example.com '.repeat(1000)"
+    "'http://example.com '.repeat(1000)",
   ],
 
   symbol: ["Symbol('foo')", "Symbol()"],
 
   errors: [
     "throw new Error('This is a simple error message.');",
     `
       var error = new Error('Complicated error message');
@@ -180,17 +180,17 @@ Object.create(null, Object.getOwnPropert
     var error = new Error('Complicated error message');
     error.stack =
       "onPacket@resource://devtools/shared/base-loader.js -> resource://devtools/shared/client/debugger-client.js:856:9\\n" +
       "send/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/transport/transport.js:569:13\\n" +
       "exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14\\n" +
       "exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14\\n";
 
     error;
-    `
-  ]
+    `,
+  ],
 };
 
 samples.yolo = Object.keys(samples).reduce((res, key) => {
   return [...res, ...samples[key]];
 }, []);
 
 module.exports = samples;
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/selectors/index.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/selectors/index.js
@@ -11,10 +11,10 @@ function getInputState(state) {
 }
 
 function getCurrentInputValue(state) {
   return getInputState(state).get("currentValue");
 }
 
 module.exports = {
   getCurrentInputValue,
-  getExpressions
+  getExpressions,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/store.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/store.js
@@ -12,10 +12,10 @@ const reducers = require("./reducers");
 function configureStore(options, client) {
   return createStore(
     combineReducers(reducers),
     applyMiddleware(thunk(options.makeThunkArgs), promise, logger)
   );
 }
 
 module.exports = {
-  configureStore
+  configureStore,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/utils/redux/middleware/promise.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/utils/redux/middleware/promise.js
@@ -18,39 +18,39 @@ function promiseMiddleware({ dispatch, g
     }
 
     const promiseInst = action[PROMISE];
     const seqId = seqIdGen().toString();
 
     // Create a new action that doesn't have the promise field and has
     // the `seqId` field that represents the sequence id
     action = Object.assign(filterByKey(action, key => key !== PROMISE), {
-      seqId
+      seqId,
     });
 
     dispatch(Object.assign({}, action, { status: "start" }));
 
     // Return the promise so action creators can still compose if they want to.
     return Promise.resolve(promiseInst)
       .finally(() => new Promise(resolve => executeSoon(resolve)))
       .then(
         value => {
           dispatch(
             Object.assign({}, action, {
               status: "done",
-              value: value
+              value: value,
             })
           );
           return value;
         },
         error => {
           dispatch(
             Object.assign({}, action, {
               status: "error",
-              error: error.message || error
+              error: error.message || error,
             })
           );
           return Promise.reject(error);
         }
       );
   };
 }
 
--- a/devtools/client/debugger/packages/devtools-reps/src/launchpad/utils/utils.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/launchpad/utils/utils.js
@@ -13,17 +13,17 @@ function defer() {
   const promise = new Promise((res, rej) => {
     resolve = res;
     reject = rej;
   });
 
   return {
     resolve,
     reject,
-    promise
+    promise,
   };
 }
 
 /**
  * Takes a function and executes it on the next tick.
  *
  * @param function fn
  */
@@ -51,10 +51,10 @@ function filterByKey(obj, predicate) {
 function generateKey() {
   return `${performance.now()}`;
 }
 
 module.exports = {
   defer,
   executeSoon,
   filterByKey,
-  generateKey
+  generateKey,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/actions.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/actions.js
@@ -8,34 +8,34 @@ import type { GripProperties, Node, Prop
 
 const { loadItemProperties } = require("./utils/load-properties");
 const { getLoadedProperties, getActors } = require("./reducer");
 
 type Dispatch = ReduxAction => void;
 
 type ThunkArg = {
   getState: () => {},
-  dispatch: Dispatch
+  dispatch: Dispatch,
 };
 
 /**
  * This action is responsible for expanding a given node, which also means that
  * it will call the action responsible to fetch properties.
  */
 function nodeExpand(node: Node, actor) {
   return async ({ dispatch, getState }: ThunkArg) => {
     dispatch({ type: "NODE_EXPAND", data: { node } });
     dispatch(nodeLoadProperties(node, actor));
   };
 }
 
 function nodeCollapse(node: Node) {
   return {
     type: "NODE_COLLAPSE",
-    data: { node }
+    data: { node },
   };
 }
 
 /*
  * This action checks if we need to fetch properties, entries, prototype and
  * symbols for a given node. If we do, it will call the appropriate ObjectClient
  * functions.
  */
@@ -64,17 +64,17 @@ function nodeLoadProperties(node: Node, 
 
 function nodePropertiesLoaded(
   node: Node,
   actor?: string,
   properties: GripProperties
 ) {
   return {
     type: "NODE_PROPERTIES_LOADED",
-    data: { node, actor, properties }
+    data: { node, actor, properties },
   };
 }
 
 function closeObjectInspector() {
   return async ({ getState, client }: ThunkArg) => {
     releaseActors(getState(), client);
   };
 }
@@ -87,17 +87,17 @@ function closeObjectInspector() {
  * It takes a props argument which reflects what is passed by the upper-level
  * consumer.
  */
 function rootsChanged(props: Props) {
   return async ({ dispatch, client, getState }: ThunkArg) => {
     releaseActors(getState(), client);
     dispatch({
       type: "ROOTS_CHANGED",
-      data: props
+      data: props,
     });
   };
 }
 
 function releaseActors(state, client) {
   const actors = getActors(state);
   for (const actor of actors) {
     client.releaseActor(actor);
@@ -116,26 +116,26 @@ function invokeGetter(
       const result = await objectClient.getPropertyValue(
         getterName,
         receiverId
       );
       dispatch({
         type: "GETTER_INVOKED",
         data: {
           node,
-          result
-        }
+          result,
+        },
       });
     } catch (e) {
       console.error(e);
     }
   };
 }
 
 module.exports = {
   closeObjectInspector,
   invokeGetter,
   nodeExpand,
   nodeCollapse,
   nodeLoadProperties,
   nodePropertiesLoaded,
-  rootsChanged
+  rootsChanged,
 };
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/components/ObjectInspector.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/components/ObjectInspector.js
@@ -22,24 +22,24 @@ const Utils = require("../utils");
 const { renderRep, shouldRenderRootsInReps } = Utils;
 const {
   getChildrenWithEvaluations,
   getActor,
   getParent,
   getValue,
   nodeIsPrimitive,
   nodeHasGetter,
-  nodeHasSetter
+  nodeHasSetter,
 } = Utils.node;
 
 import type { CachedNodes, Props } from "../types";
 
 type DefaultProps = {
   autoExpandAll: boolean,
-  autoExpandDepth: number
+  autoExpandDepth: number,
 };
 
 // This implements a component that renders an interactive inspector
 // for looking at JavaScript objects. It expects descriptions of
 // objects from the protocol, and will dynamically fetch children
 // properties as objects are expanded.
 //
 // If you want to inspect a single object, pass the name and the
@@ -158,17 +158,17 @@ class ObjectInspector extends Component<
   getItemChildren(item: Node): Array<Node> | NodeContents | null {
     const { loadedProperties, evaluations } = this.props;
     const { cachedNodes } = this;
 
     return getChildrenWithEvaluations({
       evaluations,
       loadedProperties,
       cachedNodes,
-      item
+      item,
     });
   }
 
   getRoots(): Array<Node> {
     return this.props.roots;
   }
 
   getNodeKey(item: Node): string {
@@ -193,17 +193,17 @@ class ObjectInspector extends Component<
     if (!this.isNodeExpandable(item)) {
       return;
     }
 
     const {
       nodeExpand,
       nodeCollapse,
       recordTelemetryEvent,
-      roots
+      roots,
     } = this.props;
 
     if (expand === true) {
       const actor = getActor(item, roots);
       nodeExpand(item, actor);
       if (recordTelemetryEvent) {
         recordTelemetryEvent("object_expanded");
       }
@@ -247,24 +247,24 @@ class ObjectInspector extends Component<
 
   render() {
     const {
       autoExpandAll = true,
       autoExpandDepth = 1,
       focusable = true,
       disableWrap = false,
       expandedPaths,
-      inline
+      inline,
     } = this.props;
 
     return Tree({
       className: classnames({
         inline,
         nowrap: disableWrap,
-        "object-inspector": true
+        "object-inspector": true,
       }),
 
       autoExpandAll,
       autoExpandDepth,
 
       isExpanded: item => expandedPaths && expandedPaths.has(item.path),
       isExpandable: this.isNodeExpandable,
       focused: this.focusedItem,
@@ -284,27 +284,27 @@ class ObjectInspector extends Component<
       renderItem: (item, depth, focused, arrow, expanded) =>
         ObjectInspectorItem({
           ...this.props,
           item,
           depth,
           focused,
           arrow,
           expanded,
-          setExpanded: this.setExpanded
-        })
+          setExpanded: this.setExpanded,
+        }),
     });
   }
 }
 
 function mapStateToProps(state, props) {
   return {
     expandedPaths: selectors.getExpandedPaths(state),
     loadedProperties: selectors.getLoadedProperties(state),
-    evaluations: selectors.getEvaluations(state)
+    evaluations: selectors.getEvaluations(state),
   };
 }
 
 const OI = connect(
   mapStateToProps,
   actions
 )(ObjectInspector);
 
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js
@@ -33,17 +33,17 @@ const {
   nodeIsUninitializedBinding,
   nodeIsUnmappedBinding,
   nodeIsUnscopedBinding,
   nodeIsWindow,
   nodeIsLongString,
   nodeHasFullText,
   nodeHasGetter,
   getNonPrototypeParentGripValue,
-  getParentGripValue
+  getParentGripValue,
 } = Utils.node;
 
 type Props = {
   item: Node,
   depth: number,
   expanded: boolean,
   focused: boolean,
   arrow: ReactElement,
@@ -51,103 +51,103 @@ type Props = {
   mode: Mode,
   dimTopLevelWindow: boolean,
   invokeGetter: () => void,
   onDoubleClick: ?(
     item: Node,
     options: {
       depth: number,
       focused: boolean,
-      expanded: boolean
+      expanded: boolean,
     }
   ) => any,
   onCmdCtrlClick: ?(
     item: Node,
     options: {
       depth: number,
       event: SyntheticEvent,
       focused: boolean,
-      expanded: boolean
+      expanded: boolean,
     }
   ) => any,
   onLabelClick: ?(
     item: Node,
     options: {
       depth: number,
       focused: boolean,
       expanded: boolean,
-      setExpanded: (Node, boolean) => any
+      setExpanded: (Node, boolean) => any,
     }
-  ) => any
+  ) => any,
 };
 
 class ObjectInspectorItem extends Component<Props> {
   // eslint-disable-next-line complexity
   getLabelAndValue(): {
     value?: string | Element,
-    label?: string
+    label?: string,
   } {
     const { item, depth, expanded, mode } = this.props;
 
     const label = item.name;
     const isPrimitive = nodeIsPrimitive(item);
 
     if (nodeIsOptimizedOut(item)) {
       return {
         label,
-        value: dom.span({ className: "unavailable" }, "(optimized away)")
+        value: dom.span({ className: "unavailable" }, "(optimized away)"),
       };
     }
 
     if (nodeIsUninitializedBinding(item)) {
       return {
         label,
-        value: dom.span({ className: "unavailable" }, "(uninitialized)")
+        value: dom.span({ className: "unavailable" }, "(uninitialized)"),
       };
     }
 
     if (nodeIsUnmappedBinding(item)) {
       return {
         label,
-        value: dom.span({ className: "unavailable" }, "(unmapped)")
+        value: dom.span({ className: "unavailable" }, "(unmapped)"),
       };
     }
 
     if (nodeIsUnscopedBinding(item)) {
       return {
         label,
-        value: dom.span({ className: "unavailable" }, "(unscoped)")
+        value: dom.span({ className: "unavailable" }, "(unscoped)"),
       };
     }
 
     const itemValue = getValue(item);
     const unavailable =
       isPrimitive &&
       itemValue &&
       itemValue.hasOwnProperty &&
       itemValue.hasOwnProperty("unavailable");
 
     if (nodeIsMissingArguments(item) || unavailable) {
       return {
         label,
-        value: dom.span({ className: "unavailable" }, "(unavailable)")
+        value: dom.span({ className: "unavailable" }, "(unavailable)"),
       };
     }
 
     if (
       nodeIsFunction(item) &&
       !nodeIsGetter(item) &&
       !nodeIsSetter(item) &&
       (mode === MODE.TINY || !mode)
     ) {
       return {
         label: Utils.renderRep(item, {
           ...this.props,
-          functionName: label
-        })
+          functionName: label,
+        }),
       };
     }
 
     if (
       nodeHasProperties(item) ||
       nodeHasAccessors(item) ||
       nodeIsMapEntry(item) ||
       nodeIsLongString(item) ||
@@ -158,80 +158,80 @@ class ObjectInspectorItem extends Compon
         repProps.mode = mode === MODE.LONG ? MODE.SHORT : MODE.TINY;
       }
       if (expanded) {
         repProps.mode = MODE.TINY;
       }
 
       if (nodeIsLongString(item)) {
         repProps.member = {
-          open: nodeHasFullText(item) && expanded
+          open: nodeHasFullText(item) && expanded,
         };
       }
 
       if (nodeHasGetter(item)) {
         const targetGrip = getParentGripValue(item);
         const receiverGrip = getNonPrototypeParentGripValue(item);
         if (targetGrip && receiverGrip) {
           Object.assign(repProps, {
             onInvokeGetterButtonClick: () =>
               this.props.invokeGetter(
                 item,
                 targetGrip,
                 receiverGrip.actor,
                 item.name
-              )
+              ),
           });
         }
       }
 
       return {
         label,
-        value: Utils.renderRep(item, repProps)
+        value: Utils.renderRep(item, repProps),
       };
     }
 
     return {
-      label
+      label,
     };
   }
 
   getTreeItemProps(): Object {
     const {
       item,
       depth,
       focused,
       expanded,
       onCmdCtrlClick,
       onDoubleClick,
-      dimTopLevelWindow
+      dimTopLevelWindow,
     } = this.props;
 
     const parentElementProps: Object = {
       className: classnames("node object-node", {
         focused,
         lessen:
           !expanded &&
           (nodeIsDefaultProperties(item) ||
             nodeIsPrototype(item) ||
             nodeIsGetter(item) ||
             nodeIsSetter(item) ||
             (dimTopLevelWindow === true && nodeIsWindow(item) && depth === 0)),
-        block: nodeIsBlock(item)
+        block: nodeIsBlock(item),
       }),
       onClick: e => {
         if (
           onCmdCtrlClick &&
           ((isMacOS && e.metaKey) || (!isMacOS && e.ctrlKey))
         ) {
           onCmdCtrlClick(item, {
             depth,
             event: e,
             focused,
-            expanded
+            expanded,
           });
           e.stopPropagation();
           return;
         }
 
         // If this click happened because the user selected some text, bail out.
         // Note that if the user selected some text before and then clicks here,
         // the previously selected text will be first unselected, unless the
@@ -239,26 +239,26 @@ class ObjectInspectorItem extends Compon
         // image, clicking on it does not remove any existing text selection.
         // So we need to also check if the arrow was clicked.
         if (
           Utils.selection.documentHasSelection() &&
           !(e.target && e.target.matches && e.target.matches(".arrow"))
         ) {
           e.stopPropagation();
         }
-      }
+      },
     };
 
     if (onDoubleClick) {
       parentElementProps.onDoubleClick = e => {
         e.stopPropagation();
         onDoubleClick(item, {
           depth,
           focused,
-          expanded
+          expanded,
         });
       };
     }
 
     return parentElementProps;
   }
 
   renderLabel(label: string) {
@@ -278,20 +278,20 @@ class ObjectInspectorItem extends Compon
               if (Utils.selection.documentHasSelection()) {
                 return;
               }
 
               onLabelClick(item, {
                 depth,
                 focused,
                 expanded,
-                setExpanded: this.props.setExpanded
+                setExpanded: this.props.setExpanded,
               });
             }
-          : undefined
+          : undefined,
       },
       label
     );
   }
 
   render() {
     const { arrow } = this.props;
 
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/reducer.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/reducer.js
@@ -4,31 +4,31 @@
 
 import type { ReduxAction, State } from "./types";
 
 function initialState() {
   return {
     expandedPaths: new Set(),
     loadedProperties: new Map(),
     evaluations: new Map(),
-    actors: new Set()
+    actors: new Set(),
   };
 }
 
 function reducer(
   state: State = initialState(),
   action: ReduxAction = {}
 ): State {
   const { type, data } = action;
 
   const cloneState = overrides => ({ ...state, ...overrides });
 
   if (type === "NODE_EXPAND") {
     return cloneState({
-      expandedPaths: new Set(state.expandedPaths).add(data.node.path)
+      expandedPaths: new Set(state.expandedPaths).add(data.node.path),
     });
   }
 
   if (type === "NODE_COLLAPSE") {
     const expandedPaths = new Set(state.expandedPaths);
     expandedPaths.delete(data.node.path);
     return cloneState({ expandedPaths });
   }
@@ -36,35 +36,35 @@ function reducer(
   if (type === "NODE_PROPERTIES_LOADED") {
     return cloneState({
       actors: data.actor
         ? new Set(state.actors || []).add(data.actor)
         : state.actors,
       loadedProperties: new Map(state.loadedProperties).set(
         data.node.path,
         action.data.properties
-      )
+      ),
     });
   }
 
   if (type === "ROOTS_CHANGED") {
     return cloneState();
   }
 
   if (type === "GETTER_INVOKED") {
     return cloneState({
       actors: data.actor
         ? new Set(state.actors || []).add(data.result.from)
         : state.actors,
       evaluations: new Map(state.evaluations).set(data.node.path, {
         getterValue:
           data.result &&
           data.result.value &&
-          (data.result.value.return || data.result.value.throw)
-      })
+          (data.result.value.return || data.result.value.throw),
+      }),
     });
   }
 
   // NOTE: we clear the state on resume because otherwise the scopes pane
   // would be out of date. Bug 1514760
   if (type === "RESUME" || type == "NAVIGATE") {
     return initialState();
   }
@@ -101,16 +101,16 @@ function getEvaluations(state) {
 }
 
 const selectors = {
   getActors,
   getEvaluations,
   getExpandedPathKeys,
   getExpandedPaths,
   getLoadedProperties,
-  getLoadedPropertyKeys
+  getLoadedPropertyKeys,
 };
 
 Object.defineProperty(module.exports, "__esModule", {
-  value: true
+  value: true,
 });
 module.exports = selectors;
 module.exports.default = reducer;
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/grip.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/grip.js
@@ -5,60 +5,60 @@
 const stubs = new Map();
 
 stubs.set("proto-properties-symbols", {
   ownProperties: {
     a: {
       configurable: true,
       enumerable: true,
       writable: true,
-      value: 1
-    }
+      value: 1,
+    },
   },
   from: "server2.conn13.child19/propertyIterator160",
   prototype: {
     type: "object",
     actor: "server2.conn13.child19/obj162",
     class: "Object",
     extensible: true,
     frozen: false,
     sealed: false,
     ownPropertyLength: 15,
     preview: {
       kind: "Object",
       ownProperties: {},
       ownSymbols: [],
       ownPropertiesLength: 15,
       ownSymbolsLength: 0,
-      safeGetterValues: {}
-    }
+      safeGetterValues: {},
+    },
   },
   ownSymbols: [
     {
       name: "Symbol()",
       descriptor: {
         configurable: true,
         enumerable: true,
         writable: true,
-        value: "hello"
-      }
-    }
-  ]
+        value: "hello",
+      },
+    },
+  ],
 });
 
 stubs.set("longs-string-safe-getter", {
   ownProperties: {
     baseVal: {
       getterValue: {
         type: "longString",
         initial: "data:image/png;base64,initial",
         length: 95080,
-        actor: "server1.conn1.child1/longString28"
+        actor: "server1.conn1.child1/longString28",
       },
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
-    }
+      writable: true,
+    },
   },
-  from: "server1.conn1.child1/propertyIterator30"
+  from: "server1.conn1.child1/propertyIterator30",
 });
 
 module.exports = stubs;
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/map.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/map.js
@@ -15,140 +15,140 @@ stubs.set("properties", {
     sealed: false,
     ownPropertyLength: 11,
     preview: {
       kind: "Object",
       ownProperties: {},
       ownSymbols: [],
       ownPropertiesLength: 11,
       ownSymbolsLength: 2,
-      safeGetterValues: {}
-    }
+      safeGetterValues: {},
+    },
   },
   ownProperties: {},
   ownSymbols: [],
   safeGetterValues: {
     size: {
       getterValue: 2,
       getterPrototypeLevel: 2,
       enumerable: false,
-      writable: true
-    }
-  }
+      writable: true,
+    },
+  },
 });
 
 stubs.set("11-entries", {
   ownProperties: {
     "0": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-0",
-          value: "value-0"
-        }
-      }
+          value: "value-0",
+        },
+      },
     },
     "1": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-1",
-          value: "value-1"
-        }
-      }
+          value: "value-1",
+        },
+      },
     },
     "2": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-2",
-          value: "value-2"
-        }
-      }
+          value: "value-2",
+        },
+      },
     },
     "3": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-3",
-          value: "value-3"
-        }
-      }
+          value: "value-3",
+        },
+      },
     },
     "4": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-4",
-          value: "value-4"
-        }
-      }
+          value: "value-4",
+        },
+      },
     },
     "5": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-5",
-          value: "value-5"
-        }
-      }
+          value: "value-5",
+        },
+      },
     },
     "6": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-6",
-          value: "value-6"
-        }
-      }
+          value: "value-6",
+        },
+      },
     },
     "7": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-7",
-          value: "value-7"
-        }
-      }
+          value: "value-7",
+        },
+      },
     },
     "8": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-8",
-          value: "value-8"
-        }
-      }
+          value: "value-8",
+        },
+      },
     },
     "9": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-9",
-          value: "value-9"
-        }
-      }
+          value: "value-9",
+        },
+      },
     },
     "10": {
       enumerable: true,
       value: {
         type: "mapEntry",
         preview: {
           key: "key-10",
-          value: "value-10"
-        }
-      }
-    }
+          value: "value-10",
+        },
+      },
+    },
   },
-  from: "server4.conn4.child19/propertyIterator54"
+  from: "server4.conn4.child19/propertyIterator54",
 });
 
 module.exports = stubs;
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/performance.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/stubs/performance.js
@@ -24,199 +24,199 @@ stubs.set("performance", {
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj34",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "now",
-            displayName: "now"
-          }
+            displayName: "now",
+          },
         },
         getEntries: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj35",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "getEntries",
-            displayName: "getEntries"
-          }
+            displayName: "getEntries",
+          },
         },
         getEntriesByType: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj36",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "getEntriesByType",
-            displayName: "getEntriesByType"
-          }
+            displayName: "getEntriesByType",
+          },
         },
         getEntriesByName: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj37",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "getEntriesByName",
-            displayName: "getEntriesByName"
-          }
+            displayName: "getEntriesByName",
+          },
         },
         clearResourceTimings: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj38",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "clearResourceTimings",
-            displayName: "clearResourceTimings"
-          }
+            displayName: "clearResourceTimings",
+          },
         },
         setResourceTimingBufferSize: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj39",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "setResourceTimingBufferSize",
-            displayName: "setResourceTimingBufferSize"
-          }
+            displayName: "setResourceTimingBufferSize",
+          },
         },
         mark: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj40",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "mark",
-            displayName: "mark"
-          }
+            displayName: "mark",
+          },
         },
         clearMarks: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj41",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "clearMarks",
-            displayName: "clearMarks"
-          }
+            displayName: "clearMarks",
+          },
         },
         measure: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj42",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "measure",
-            displayName: "measure"
-          }
+            displayName: "measure",
+          },
         },
         clearMeasures: {
           configurable: true,
           enumerable: true,
           writable: true,
           value: {
             type: "object",
             actor: "server2.conn4.child1/obj43",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "clearMeasures",
-            displayName: "clearMeasures"
-          }
-        }
+            displayName: "clearMeasures",
+          },
+        },
       },
-      ownPropertiesLength: 16
-    }
+      ownPropertiesLength: 16,
+    },
   },
   ownProperties: {
     userTimingJsNow: {
       configurable: true,
       enumerable: true,
       writable: true,
-      value: false
+      value: false,
     },
     userTimingJsNowPrefixed: {
       configurable: true,
       enumerable: true,
       writable: true,
-      value: false
+      value: false,
     },
     userTimingJsUserTiming: {
       configurable: true,
       enumerable: true,
       writable: true,
-      value: false
+      value: false,
     },
     userTimingJsUserTimingPrefixed: {
       configurable: true,
       enumerable: true,
       writable: true,
-      value: false
+      value: false,
     },
     userTimingJsPerformanceTimeline: {
       configurable: true,
       enumerable: true,
       writable: true,
-      value: false
+      value: false,
     },
     userTimingJsPerformanceTimelinePrefixed: {
       configurable: true,
       enumerable: true,
       writable: true,
-      value: false
+      value: false,
     },
     timeOrigin: {
       enumerable: true,
       writable: true,
-      value: 1500971976372.9033
+      value: 1500971976372.9033,
     },
     timing: {
       enumerable: true,
       writable: true,
       value: {
         type: "object",
         actor: "server2.conn4.child1/obj44",
         class: "PerformanceTiming",
@@ -228,75 +228,75 @@ stubs.set("performance", {
           kind: "Object",
           ownProperties: {},
           ownPropertiesLength: 0,
           safeGetterValues: {
             navigationStart: {
               getterValue: 1500971976373,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             unloadEventStart: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             unloadEventEnd: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             redirectStart: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             redirectEnd: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             fetchStart: {
               getterValue: 1500971982226,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             domainLookupStart: {
               getterValue: 1500971982251,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             domainLookupEnd: {
               getterValue: 1500971982255,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             connectStart: {
               getterValue: 1500971982255,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             connectEnd: {
               getterValue: 1500971982638,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
-            }
-          }
-        }
-      }
+              writable: true,
+            },
+          },
+        },
+      },
     },
     navigation: {
       enumerable: true,
       writable: true,
       value: {
         type: "object",
         actor: "server2.conn4.child1/obj45",
         class: "PerformanceNavigation",
@@ -308,42 +308,42 @@ stubs.set("performance", {
           kind: "Object",
           ownProperties: {},
           ownPropertiesLength: 0,
           safeGetterValues: {
             type: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             redirectCount: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
-            }
-          }
-        }
-      }
+              writable: true,
+            },
+          },
+        },
+      },
     },
     onresourcetimingbufferfull: {
       enumerable: true,
       writable: true,
       value: {
-        type: "null"
-      }
-    }
+        type: "null",
+      },
+    },
   },
   safeGetterValues: {
     timeOrigin: {
       getterValue: 1500971976372.9033,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     timing: {
       getterValue: {
         type: "object",
         actor: "server2.conn4.child1/obj44",
         class: "PerformanceTiming",
         extensible: true,
         frozen: false,
@@ -353,78 +353,78 @@ stubs.set("performance", {
           kind: "Object",
           ownProperties: {},
           ownPropertiesLength: 0,
           safeGetterValues: {
             navigationStart: {
               getterValue: 1500971976373,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             unloadEventStart: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             unloadEventEnd: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             redirectStart: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             redirectEnd: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             fetchStart: {
               getterValue: 1500971982226,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             domainLookupStart: {
               getterValue: 1500971982251,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             domainLookupEnd: {
               getterValue: 1500971982255,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             connectStart: {
               getterValue: 1500971982255,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             connectEnd: {
               getterValue: 1500971982638,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
-            }
-          }
-        }
+              writable: true,
+            },
+          },
+        },
       },
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     navigation: {
       getterValue: {
         type: "object",
         actor: "server2.conn4.child1/obj45",
         class: "PerformanceNavigation",
         extensible: true,
         frozen: false,
@@ -434,40 +434,40 @@ stubs.set("performance", {
           kind: "Object",
           ownProperties: {},
           ownPropertiesLength: 0,
           safeGetterValues: {
             type: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
+              writable: true,
             },
             redirectCount: {
               getterValue: 0,
               getterPrototypeLevel: 1,
               enumerable: true,
-              writable: true
-            }
-          }
-        }
+              writable: true,
+            },
+          },
+        },
       },
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     onresourcetimingbufferfull: {
       getterValue: {
-        type: "null"
+        type: "null",
       },
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
-    }
-  }
+      writable: true,
+    },
+  },
 });
 
 stubs.set("timing", {
   from: "server1.conn1.child1/obj31",
   prototype: {
     type: "object",
     actor: "server1.conn1.child1/obj32",
     class: "PerformanceTimingPrototype",
@@ -485,300 +485,300 @@ stubs.set("timing", {
           value: {
             type: "object",
             actor: "server1.conn1.child1/obj33",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "toJSON",
-            displayName: "toJSON"
-          }
+            displayName: "toJSON",
+          },
         },
         navigationStart: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj34",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get navigationStart",
-            displayName: "get navigationStart"
+            displayName: "get navigationStart",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         unloadEventStart: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj35",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get unloadEventStart",
-            displayName: "get unloadEventStart"
+            displayName: "get unloadEventStart",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         unloadEventEnd: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj36",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get unloadEventEnd",
-            displayName: "get unloadEventEnd"
+            displayName: "get unloadEventEnd",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         redirectStart: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj37",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get redirectStart",
-            displayName: "get redirectStart"
+            displayName: "get redirectStart",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         redirectEnd: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj38",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get redirectEnd",
-            displayName: "get redirectEnd"
+            displayName: "get redirectEnd",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         fetchStart: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj39",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get fetchStart",
-            displayName: "get fetchStart"
+            displayName: "get fetchStart",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         domainLookupStart: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj40",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get domainLookupStart",
-            displayName: "get domainLookupStart"
+            displayName: "get domainLookupStart",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         domainLookupEnd: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj41",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get domainLookupEnd",
-            displayName: "get domainLookupEnd"
+            displayName: "get domainLookupEnd",
           },
           set: {
-            type: "undefined"
-          }
+            type: "undefined",
+          },
         },
         connectStart: {
           configurable: true,
           enumerable: true,
           get: {
             type: "object",
             actor: "server1.conn1.child1/obj42",
             class: "Function",
             extensible: true,
             frozen: false,
             sealed: false,
             name: "get connectStart",
-            displayName: "get connectStart"
+            displayName: "get connectStart",
           },
           set: {
-            type: "undefined"
-          }
-        }
+            type: "undefined",
+          },
+        },
       },
-      ownPropertiesLength: 23
-    }
+      ownPropertiesLength: 23,
+    },
   },
   ownProperties: {},
   safeGetterValues: {
     navigationStart: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     unloadEventStart: {
       getterValue: 0,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     unloadEventEnd: {
       getterValue: 0,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     redirectStart: {
       getterValue: 0,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     redirectEnd: {
       getterValue: 0,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     fetchStart: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     domainLookupStart: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     domainLookupEnd: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     connectStart: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     connectEnd: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     secureConnectionStart: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     requestStart: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     responseStart: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     responseEnd: {
       getterValue: 1500967716401,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     domLoading: {
       getterValue: 1500967716426,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     domInteractive: {
       getterValue: 1500967716552,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     domContentLoadedEventStart: {
       getterValue: 1500967716696,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     domContentLoadedEventEnd: {
       getterValue: 1500967716715,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     domComplete: {
       getterValue: 1500967716719,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     loadEventStart: {
       getterValue: 1500967716719,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
+      writable: true,
     },
     loadEventEnd: {
       getterValue: 1500967716720,
       getterPrototypeLevel: 1,
       enumerable: true,
-      writable: true
-    }
-  }
+      writable: true,
+    },
+  },
 });
 
 module.exports = stubs;
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/long-string-client.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/long-string-client.js
@@ -2,16 +2,16 @@
  * 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/>. */
 
 function LongStringClient(grip, overrides) {
   return {
     grip,
     substring: function() {
       return Promise.resolve({
-        fullText: ""
+        fullText: "",
       });
     },
-    ...overrides
+    ...overrides,
   };
 }
 
 module.exports = LongStringClient;
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/object-client.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/object-client.js
@@ -3,44 +3,44 @@
  * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
 
 function ObjectClient(grip, overrides) {
   return {
     grip,
     enumEntries: function() {
       return Promise.resolve({
         iterator: this.getIterator({
-          ownProperties: {}
-        })
+          ownProperties: {},
+        }),
       });
     },
     enumProperties: function(options) {
       return Promise.resolve({
         iterator: this.getIterator({
-          ownProperties: {}
-        })
+          ownProperties: {},
+        }),
       });
     },
     enumSymbols: function() {
       return Promise.resolve({
         iterator: this.getIterator({
-          ownSymbols: []
-        })
+          ownSymbols: [],
+        }),
       });
     },
     getPrototype: function() {
       return Promise.resolve({
-        prototype: {}
+        prototype: {},
       });
     },
     // Declared here so we can override it.
     getIterator(res) {
       return {
         slice: function(start, count) {
           return Promise.resolve(res);
-        }
+        },
       };
     },
-    ...overrides
+    ...overrides,
   };
 }
 
 module.exports = ObjectClient;
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/basic.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/basic.js
@@ -6,42 +6,42 @@ const { mountObjectInspector } = require
 const { mount } = require("enzyme");
 const { createNode, NODE_TYPES } = require("../../utils/node");
 const repsPath = "../../../reps";
 const { MODE } = require(`${repsPath}/constants`);
 const { Rep } = require(`${repsPath}/rep`);
 const {
   formatObjectInspector,
   waitForDispatch,
-  waitForLoadedProperties
+  waitForLoadedProperties,
 } = require("../test-utils");
 const ObjectClient = require("../__mocks__/object-client");
 const gripRepStubs = require(`${repsPath}/stubs/grip`);
 
 function generateDefaults(overrides) {
   return {
     autoExpandDepth: 0,
-    ...overrides
+    ...overrides,
   };
 }
 
 function mountOI(props, { initialState } = {}) {
   const client = {
-    createObjectClient: grip => ObjectClient(grip)
+    createObjectClient: grip => ObjectClient(grip),
   };
 
   const obj = mountObjectInspector({
     client,
     props: generateDefaults(props),
     initialState: {
       objectInspector: {
         ...initialState,
-        evaluations: new Map()
-      }
-    }
+        evaluations: new Map(),
+      },
+    },
   });
 
   return obj;
 }
 
 function renderOI(props, opts) {
   return mountOI(props, opts).wrapper;
 }
@@ -51,21 +51,21 @@ describe("ObjectInspector - renders", ()
     const stub = gripRepStubs.get("testMoreThanMaxProps");
 
     const renderObjectInspector = mode =>
       renderOI({
         roots: [
           {
             path: "root",
             contents: {
-              value: stub
-            }
-          }
+              value: stub,
+            },
+          },
         ],
-        mode
+        mode,
       });
 
     const renderRep = mode => Rep({ object: stub, mode });
 
     const tinyOi = renderObjectInspector(MODE.TINY);
     expect(tinyOi.find(".arrow").exists()).toBeTruthy();
     expect(tinyOi.contains(renderRep(MODE.TINY))).toBeTruthy();
     expect(formatObjectInspector(tinyOi)).toMatchSnapshot();
@@ -91,21 +91,21 @@ describe("ObjectInspector - renders", ()
     const object = 42;
 
     const renderObjectInspector = mode =>
       renderOI({
         roots: [
           {
             path: "root",
             contents: {
-              value: object
-            }
-          }
+              value: object,
+            },
+          },
         ],
-        mode
+        mode,
       });
 
     const renderRep = mode => mount(Rep({ object, mode }));
 
     const tinyOi = renderObjectInspector(MODE.TINY);
     expect(tinyOi.find(".arrow").exists()).toBeFalsy();
     expect(tinyOi.html()).toEqual(renderRep(MODE.TINY).html());
 
@@ -128,59 +128,59 @@ describe("ObjectInspector - renders", ()
     const name = "myproperty";
 
     const oi = renderOI({
       roots: [
         {
           path: "root",
           name,
           contents: {
-            value: object
-          }
-        }
+            value: object,
+          },
+        },
       ],
-      mode: MODE.SHORT
+      mode: MODE.SHORT,
     });
 
     expect(oi.find(".object-label").text()).toEqual(name);
     expect(formatObjectInspector(oi)).toMatchSnapshot();
   });
 
   it("renders primitives as expected when provided a name", () => {
     const value = 42;
     const name = "myproperty";
 
     const oi = renderOI({
       roots: [
         {
           path: "root",
           name,
-          contents: { value }
-        }
+          contents: { value },
+        },
       ],
-      mode: MODE.SHORT
+      mode: MODE.SHORT,
     });
 
     expect(oi.find(".object-label").text()).toEqual(name);
     expect(formatObjectInspector(oi)).toMatchSnapshot();
   });
 
   it("renders as expected when not provided a name", () => {
     const object = gripRepStubs.get("testMoreThanMaxProps");
 
     const oi = renderOI({
       roots: [
         {
           path: "root",
           contents: {
-            value: object
-          }
-        }
+            value: object,
+          },
+        },
       ],
-      mode: MODE.SHORT
+      mode: MODE.SHORT,
     });
 
     expect(oi.find(".object-label").exists()).toBeFalsy();
     expect(formatObjectInspector(oi)).toMatchSnapshot();
   });
 
   it("renders leaves with a shorter mode than the root", async () => {
     const stub = gripRepStubs.get("testMaxProps");
@@ -188,41 +188,41 @@ describe("ObjectInspector - renders", ()
     const renderObjectInspector = mode =>
       renderOI(
         {
           autoExpandDepth: 1,
           roots: [
             {
               path: "root",
               contents: {
-                value: stub
-              }
-            }
+                value: stub,
+              },
+            },
           ],
-          mode
+          mode,
         },
         {
           initialState: {
             loadedProperties: new Map([
               [
                 "root",
                 {
                   ownProperties: Object.keys(stub.preview.ownProperties).reduce(
                     (res, key) => ({
                       [key]: {
-                        value: stub
+                        value: stub,
                       },
-                      ...res
+                      ...res,
                     }),
                     {}
-                  )
-                }
-              ]
-            ])
-          }
+                  ),
+                },
+              ],
+            ]),
+          },
         }
       );
 
     const renderRep = mode => Rep({ object: stub, mode });
 
     const tinyOi = renderObjectInspector(MODE.TINY);
 
     expect(
@@ -257,23 +257,23 @@ describe("ObjectInspector - renders", ()
         .contains(renderRep(MODE.TINY))
     ).toBeTruthy();
   });
 
   it("renders less-important nodes as expected", async () => {
     const defaultPropertiesNode = createNode({
       name: "<default>",
       contents: [],
-      type: NODE_TYPES.DEFAULT_PROPERTIES
+      type: NODE_TYPES.DEFAULT_PROPERTIES,
     });
 
     // The <default properties> node should have the "lessen" class only when
     // collapsed.
     let { store, wrapper } = mountOI({
-      roots: [defaultPropertiesNode]
+      roots: [defaultPropertiesNode],
     });
 
     let defaultPropertiesElementNode = wrapper.find(".node");
     expect(defaultPropertiesElementNode.hasClass("lessen")).toBe(true);
 
     let onPropertiesLoaded = waitForDispatch(store, "NODE_PROPERTIES_LOADED");
     defaultPropertiesElementNode.simulate("click");
     await onPropertiesLoaded;
@@ -284,23 +284,23 @@ describe("ObjectInspector - renders", ()
         .find(".node")
         .first()
         .hasClass("lessen")
     ).toBe(false);
 
     const prototypeNode = createNode({
       name: "<prototype>",
       contents: [],
-      type: NODE_TYPES.PROTOTYPE
+      type: NODE_TYPES.PROTOTYPE,
     });
 
     // The <prototype> node should have the "lessen" class only when collapsed.
     ({ wrapper, store } = mountOI({
       roots: [prototypeNode],
-      injectWaitService: true
+      injectWaitService: true,
     }));
 
     let protoElementNode = wrapper.find(".node");
     expect(protoElementNode.hasClass("lessen")).toBe(true);
 
     onPropertiesLoaded = waitForDispatch(store, "NODE_PROPERTIES_LOADED");
     protoElementNode.simulate("click");
     await onPropertiesLoaded;
@@ -312,96 +312,96 @@ describe("ObjectInspector - renders", ()
 
   it("renders block nodes as expected", async () => {
     const blockNode = createNode({
       name: "Block",
       contents: [
         {
           name: "a",
           contents: {
-            value: 30
-          }
+            value: 30,
+          },
         },
         {
           name: "b",
           contents: {
-            value: 32
-          }
-        }
+            value: 32,
+          },
+        },
       ],
-      type: NODE_TYPES.BLOCK
+      type: NODE_TYPES.BLOCK,
     });
 
     const { wrapper, store } = mountOI({
       roots: [blockNode],
-      autoExpandDepth: 1
+      autoExpandDepth: 1,
     });
 
     await waitForLoadedProperties(store, ["Symbol(Block)"]);
     wrapper.update();
 
     const blockElementNode = wrapper.find(".node").first();
     expect(blockElementNode.hasClass("block")).toBe(true);
     expect(formatObjectInspector(wrapper)).toMatchSnapshot();
   });
 
   it.skip("updates when the root changes", async () => {
     let root = {
       path: "root",
       contents: {
-        value: gripRepStubs.get("testMoreThanMaxProps")
-      }
+        value: gripRepStubs.get("testMoreThanMaxProps"),
+      },
     };
     const { wrapper } = mountOI({
       roots: [root],
       mode: MODE.LONG,
-      focusedItem: root
+      focusedItem: root,
     });
 
     expect(formatObjectInspector(wrapper)).toMatchSnapshot();
 
     root = {
       path: "root-2",
       contents: {
-        value: gripRepStubs.get("testMaxProps")
-      }
+        value: gripRepStubs.get("testMaxProps"),
+      },
     };
 
     wrapper.setProps({
       roots: [root],
-      focusedItem: root
+      focusedItem: root,
     });
     wrapper.update();
     expect(formatObjectInspector(wrapper)).toMatchSnapshot();
   });
 
   it.skip("updates when the root changes but has same path", async () => {
     const { wrapper, store } = mountOI({
       injectWaitService: true,
       roots: [
         {
           path: "root",
           name: "root",
           contents: [
             {
               name: "a",
               contents: {
-                value: 30
-              }
+                value: 30,
+              },
             },
             {
               name: "b",
               contents: {
-                value: 32
-              }
-            }
-          ]
-        }
+                value: 32,
+              },
+            },
+          ],
+        },
       ],
-      mode: MODE.LONG
+      mode: MODE.LONG,
     });
 
     wrapper
       .find(".node")
       .at(0)
       .simulate("click");
 
     const oldTree = formatObjectInspector(wrapper);
@@ -412,21 +412,21 @@ describe("ObjectInspector - renders", ()
       roots: [
         {
           path: "root",
           name: "root",
           contents: [
             {
               name: "c",
               contents: {
-                value: "i'm the new node"
-              }
-            }
-          ]
-        }
-      ]
+                value: "i'm the new node",
+              },
+            },
+          ],
+        },
+      ],
     });
 
     await onRootsChanged;
     wrapper.update();
     expect(formatObjectInspector(wrapper)).not.toBe(oldTree);
   });
 });
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/classnames.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/classnames.js
@@ -7,29 +7,29 @@ const { mountObjectInspector } = require
 
 function generateDefaults(overrides) {
   return {
     autoExpandDepth: 0,
     roots: [
       {
         path: "root",
         name: "root",
-        contents: { value: 42 }
-      }
+        contents: { value: 42 },
+      },
     ],
-    ...overrides
+    ...overrides,
   };
 }
 
 function mount(props) {
   const client = { createObjectClient: grip => ObjectClient(grip) };
 
   return mountObjectInspector({
     client,
-    props: generateDefaults(props)
+    props: generateDefaults(props),
   });
 }
 
 describe("ObjectInspector - classnames", () => {
   it("has the expected class", () => {
     const { tree } = mount();
     expect(tree.hasClass("tree")).toBeTruthy();
     expect(tree.hasClass("inline")).toBeFalsy();
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/create-long-string-client.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/create-long-string-client.js
@@ -13,60 +13,60 @@ const longStringStubs = require(`${repsP
 
 function mount(props) {
   const substring = jest.fn(() => Promise.resolve({ fullText: "" }));
 
   const client = {
     createObjectClient: grip => ObjectClient(grip),
     createLongStringClient: jest.fn(grip =>
       LongStringClient(grip, { substring })
-    )
+    ),
   };
 
   const obj = mountObjectInspector({
     client,
-    props
+    props,
   });
 
   return { ...obj, substring };
 }
 
 describe("createLongStringClient", () => {
   it("is called with the expected object for longString node", () => {
     const stub = longStringStubs.get("testUnloadedFullText");
 
     const { client } = mount({
       autoExpandDepth: 1,
       roots: [
         {
           path: "root",
           contents: {
-            value: stub
-          }
-        }
-      ]
+            value: stub,
+          },
+        },
+      ],
     });
 
     expect(client.createLongStringClient.mock.calls[0][0]).toBe(stub);
   });
 
   describe("substring", () => {
     it("is called for longStrings with unloaded full text", () => {
       const stub = longStringStubs.get("testUnloadedFullText");
 
       const { substring } = mount({
         autoExpandDepth: 1,
         roots: [
           {
             path: "root",
             contents: {
-              value: stub
-            }
-          }
-        ]
+              value: stub,
+            },
+          },
+        ],
       });
 
       // Third argument is the callback which holds the string response.
       expect(substring.mock.calls[0]).toHaveLength(3);
       const [start, length] = substring.mock.calls[0];
       expect(start).toBe(stub.initial.length);
       expect(length).toBe(stub.length);
     });
@@ -75,18 +75,18 @@ describe("createLongStringClient", () =>
       const stub = longStringStubs.get("testLoadedFullText");
 
       const { substring } = mount({
         autoExpandDepth: 1,
         roots: [
           {
             path: "root",
             contents: {
-              value: stub
-            }
-          }
-        ]
+              value: stub,
+            },
+          },
+        ],
       });
 
       expect(substring.mock.calls).toHaveLength(0);
     });
   });
 });
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/create-object-client.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/create-object-client.js
@@ -5,87 +5,87 @@
 /* global jest */
 
 const { mountObjectInspector } = require("../test-utils");
 const ObjectClient = require("../__mocks__/object-client");
 
 const {
   createNode,
   makeNodesForEntries,
-  makeNumericalBuckets
+  makeNumericalBuckets,
 } = require("../../utils/node");
 
 const repsPath = "../../../reps";
 const gripRepStubs = require(`${repsPath}/stubs/grip`);
 const gripArrayRepStubs = require(`${repsPath}/stubs/grip-array`);
 
 function mount(props, overrides = {}) {
   const client = {
     createObjectClient:
-      overrides.createObjectClient || jest.fn(grip => ObjectClient(grip))
+      overrides.createObjectClient || jest.fn(grip => ObjectClient(grip)),
   };
 
   return mountObjectInspector({
     client,
-    props
+    props,
   });
 }
 
 describe("createObjectClient", () => {
   it("is called with the expected object for regular node", () => {
     const stub = gripRepStubs.get("testMoreThanMaxProps");
     const { client } = mount({
       autoExpandDepth: 1,
       roots: [
         {
           path: "root",
           contents: {
-            value: stub
-          }
-        }
-      ]
+            value: stub,
+          },
+        },
+      ],
     });
 
     expect(client.createObjectClient.mock.calls[0][0]).toBe(stub);
   });
 
   it("is called with the expected object for entries node", () => {
     const grip = Symbol();
     const mapStubNode = createNode({ name: "map", contents: { value: grip } });
     const entriesNode = makeNodesForEntries(mapStubNode);
 
     const { client } = mount({
       autoExpandDepth: 1,
-      roots: [entriesNode]
+      roots: [entriesNode],
     });
 
     expect(client.createObjectClient.mock.calls[0][0]).toBe(grip);
   });
 
   it("is called with the expected object for bucket node", () => {
     const grip = gripArrayRepStubs.get("testMaxProps");
     const root = createNode({ name: "root", contents: { value: grip } });
     const [bucket] = makeNumericalBuckets(root);
 
     const { client } = mount({
       autoExpandDepth: 1,
-      roots: [bucket]
+      roots: [bucket],
     });
     expect(client.createObjectClient.mock.calls[0][0]).toBe(grip);
   });
 
   it("is called with the expected object for sub-bucket node", () => {
     const grip = gripArrayRepStubs.get("testMaxProps");
     const root = createNode({ name: "root", contents: { value: grip } });
     const [bucket] = makeNumericalBuckets(root);
     const [subBucket] = makeNumericalBuckets(bucket);
 
     const { client } = mount({
       autoExpandDepth: 1,
-      roots: [subBucket]
+      roots: [subBucket],
     });
 
     expect(client.createObjectClient.mock.calls[0][0]).toBe(grip);
   });
 
   it("doesn't fail when ObjectClient doesn't have expected methods", () => {
     const stub = gripRepStubs.get("testMoreThanMaxProps");
     const root = createNode({ name: "root", contents: { value: stub } });
@@ -93,17 +93,17 @@ describe("createObjectClient", () => {
     // Override console.error so we don't spam test results.
     const originalConsoleError = console.error;
     console.error = () => {};
 
     const createObjectClient = x => ({});
     mount(
       {
         autoExpandDepth: 1,
-        roots: [root]
+        roots: [root],
       },
       { createObjectClient }
     );
 
     // rollback console.error.
     console.error = originalConsoleError;
   });
 });
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/entries.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/entries.js
@@ -4,83 +4,83 @@
 
 /* global jest */
 
 const { mountObjectInspector } = require("../test-utils");
 const { MODE } = require("../../../reps/constants");
 const {
   formatObjectInspector,
   waitForDispatch,
-  waitForLoadedProperties
+  waitForLoadedProperties,
 } = require("../test-utils");
 const gripMapRepStubs = require("../../../reps/stubs/grip-map");
 const mapStubs = require("../../stubs/map");
 const ObjectClient = require("../__mocks__/object-client");
 
 function generateDefaults(overrides) {
   return {
     autoExpandDepth: 0,
     createObjectClient: grip => ObjectClient(grip),
-    ...overrides
+    ...overrides,
   };
 }
 
 function getEnumEntriesMock() {
   return jest.fn(() => ({
     iterator: {
-      slice: () => mapStubs.get("11-entries")
-    }
+      slice: () => mapStubs.get("11-entries"),
+    },
   }));
 }
 
 function mount(props, { initialState }) {
   const enumEntries = getEnumEntriesMock();
 
   const client = {
-    createObjectClient: grip => ObjectClient(grip, { enumEntries })
+    createObjectClient: grip => ObjectClient(grip, { enumEntries }),
   };
   const obj = mountObjectInspector({
     client,
     props: generateDefaults(props),
     initialState: {
       objectInspector: {
         ...initialState,
-        evaluations: new Map()
-      }
-    }
+        evaluations: new Map(),
+      },
+    },
   });
 
   return { ...obj, enumEntries };
 }
 
 describe("ObjectInspector - entries", () => {
   it("renders Object with entries as expected", async () => {
     const stub = gripMapRepStubs.get("testSymbolKeyedMap");
 
     const { store, wrapper, enumEntries } = mount(
       {
         autoExpandDepth: 3,
         roots: [
           {
             path: "root",
-            contents: { value: stub }
-          }
+            contents: { value: stub },
+          },
         ],
-        mode: MODE.LONG
+        mode: MODE.LONG,
       },
       {
         initialState: {
-          loadedProperties: new Map([["root", mapStubs.get("properties")]])
-        }
+          loadedProperties: new Map([["root", mapStubs.get("properties")]]),
+        },
       }
     );
 
     await waitForLoadedProperties(store, [
       "Symbol(root/<entries>/0)",
-      "Symbol(root/<entries>/1)"
+      "Symbol(root/<entries>/1)",
     ]);
 
     wrapper.update();
     expect(formatObjectInspector(wrapper)).toMatchSnapshot();
 
     // enumEntries shouldn't have been called since everything
     // is already in the preview property.
     expect(enumEntries.mock.calls).toHaveLength(0);
@@ -92,27 +92,27 @@ describe("ObjectInspector - entries", ()
     const { wrapper, store, enumEntries } = mount(
       {
         autoExpandDepth: 1,
         injectWaitService: true,
         roots: [
           {
             path: "root",
             contents: {
-              value: stub
-            }
-          }
-        ]
+              value: stub,
+            },
+          },
+        ],
       },
       {
         initialState: {
           loadedProperties: new Map([
-            ["root", { ownProperties: stub.preview.entries }]
-          ])
-        }
+            ["root", { ownProperties: stub.preview.entries }],
+          ]),
+        },
       }
     );
 
     expect(formatObjectInspector(wrapper)).toMatchSnapshot();
 
     const nodes = wrapper.find(".node");
     const entriesNode = nodes.at(1);
     expect(entriesNode.text()).toBe("<entries>");
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/events.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/events.js
@@ -6,44 +6,44 @@
 const { mountObjectInspector } = require("../test-utils");
 
 const gripRepStubs = require("../../../reps/stubs/grip");
 const ObjectClient = require("../__mocks__/object-client");
 
 function generateDefaults(overrides) {
   return {
     autoExpandDepth: 0,
-    ...overrides
+    ...overrides,
   };
 }
 
 function mount(props) {
   const client = { createObjectClient: grip => ObjectClient(grip) };
 
   return mountObjectInspector({
     client,
-    props: generateDefaults(props)
+    props: generateDefaults(props),
   });
 }
 
 describe("ObjectInspector - properties", () => {
   it("calls the onFocus prop when provided one and given focus", () => {
     const stub = gripRepStubs.get("testMaxProps");
     const onFocus = jest.fn();
 
     const { wrapper } = mount({
       roots: [
         {
           path: "root",
           contents: {
-            value: stub
-          }
-        }
+            value: stub,
+          },
+        },
       ],
-      onFocus
+      onFocus,
     });
 
     const node = wrapper.find(".node").first();
     node.simulate("focus");
 
     expect(onFocus.mock.calls).toHaveLength(1);
   });
 
@@ -52,21 +52,21 @@ describe("ObjectInspector - properties",
     const onFocus = jest.fn();
 
     const { wrapper } = mount({
       focusable: false,
       roots: [
         {
           path: "root",
           contents: {
-            value: stub
-          }
-        }
+            value: stub,
+          },
+        },
       ],
-      onFocus
+      onFocus,
     });
 
     const node = wrapper.find(".node").first();
     node.simulate("focus");
 
     expect(onFocus.mock.calls).toHaveLength(0);
   });
 
@@ -74,21 +74,21 @@ describe("ObjectInspector - properties",
     const stub = gripRepStubs.get("testMaxProps");
     const onDoubleClick = jest.fn();
 
     const { wrapper } = mount({
       roots: [
         {
           path: "root",
           contents: {
-            value: stub
-          }
-        }
+            value: stub,
+          },
+        },
       ],
-      onDoubleClick
+      onDoubleClick,
     });
 
     const node = wrapper.find(".node").first();
     node.simulate("doubleclick");
 
     expect(onDoubleClick.mock.calls).toHaveLength(1);
   });
 
@@ -96,21 +96,21 @@ describe("ObjectInspector - properties",
     const stub = gripRepStubs.get("testMaxProps");
     const onCmdCtrlClick = jest.fn();
 
     const { wrapper } = mount({
       roots: [
         {
           path: "root",
           contents: {
-            value: stub
-          }
-        }
+            value: stub,
+          },
+        },
       ],
-      onCmdCtrlClick
+      onCmdCtrlClick,
     });
 
     const node = wrapper.find(".node").first();
     node.simulate("click", { ctrlKey: true });
 
     expect(onCmdCtrlClick.mock.calls).toHaveLength(1);
   });
 
@@ -119,21 +119,21 @@ describe("ObjectInspector - properties",
     const onLabelClick = jest.fn();
 
     const { wrapper } = mount({
       roots: [
         {
           path: "root",
           name: "Label",
           contents: {
-            value: stub
-          }
-        }
+            value: stub,
+          },
+        },
       ],
-      onLabelClick
+      onLabelClick,
     });
 
     const label = wrapper.find(".object-label").first();
     label.simulate("click");
 
     expect(onLabelClick.mock.calls).toHaveLength(1);
   });
 
@@ -142,21 +142,21 @@ describe("ObjectInspector - properties",
     const onLabelClick = jest.fn();
 
     const { wrapper } = mount({
       roots: [
         {
           path: "root",
           name: "Label",
           contents: {
-            value: stub
-          }
-        }
+            value: stub,
+          },
+        },
       ],
-      onLabelClick
+      onLabelClick,
     });
 
     const label = wrapper.find(".object-label").first();
 
     // Set a selection using the mock.
     getSelection().setMockSelection("test");
 
     label.simulate("click");
--- a/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/expand.js
+++ b/devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/component/expand.js
@@ -8,93 +8,94 @@ const { MODE } = require(`${repsPath}/co
 const ObjectClient = require("../__mocks__/object-client");
 const gripRepStubs = require(`${repsPath}/stubs/grip`);
 const gripPropertiesStubs = require("../../stubs/grip");