Bug 1290142 - Lint devtools/client/performance/test/; r=jsantell
authorGreg Tatum <tatum.creative@gmail.com>
Tue, 02 Aug 2016 17:18:01 -0500
changeset 308425 cda0d6b3f71b9f943b705efaa680fe7452573617
parent 308424 6e88bf1b9a4159b7334727cb323eeb2f58314717
child 308426 009c0f237a44d7882d0da85076c78252da6369b0
push id20245
push userkwierso@gmail.com
push dateSun, 07 Aug 2016 07:18:09 +0000
treeherderfx-team@d42aacfe34af [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjsantell
bugs1290142
milestone51.0a1
Bug 1290142 - Lint devtools/client/performance/test/; r=jsantell MozReview-Commit-ID: FprlN3Vm9H7
.eslintignore
devtools/client/performance/test/browser_perf-button-states.js
devtools/client/performance/test/browser_perf-calltree-js-categories.js
devtools/client/performance/test/browser_perf-calltree-js-columns.js
devtools/client/performance/test/browser_perf-console-record-01.js
devtools/client/performance/test/browser_perf-console-record-07.js
devtools/client/performance/test/browser_perf-console-record-08.js
devtools/client/performance/test/browser_perf-console-record-09.js
devtools/client/performance/test/browser_perf-details-01-toggle.js
devtools/client/performance/test/browser_perf-details-02-utility-fun.js
devtools/client/performance/test/browser_perf-details-03-without-allocations.js
devtools/client/performance/test/browser_perf-details-04-toolbar-buttons.js
devtools/client/performance/test/browser_perf-details-05-preserve-view.js
devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js
devtools/client/performance/test/browser_perf-details-07-bleed-events.js
devtools/client/performance/test/browser_perf-details-render-00-waterfall.js
devtools/client/performance/test/browser_perf-details-render-04-memory-flamegraph.js
devtools/client/performance/test/browser_perf-gc-snap.js
devtools/client/performance/test/browser_perf-highlighted.js
devtools/client/performance/test/browser_perf-marker-details.js
devtools/client/performance/test/browser_perf-options-enable-framerate-02.js
devtools/client/performance/test/browser_perf-options-enable-memory-01.js
devtools/client/performance/test/browser_perf-options-enable-memory-02.js
devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-01.js
devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-02.js
devtools/client/performance/test/browser_perf-options-invert-flame-graph-02.js
devtools/client/performance/test/browser_perf-options-show-jit-optimizations.js
devtools/client/performance/test/browser_perf-overview-render-04.js
devtools/client/performance/test/browser_perf-overview-selection-01.js
devtools/client/performance/test/browser_perf-private-browsing.js
devtools/client/performance/test/browser_perf-range-changed-render.js
devtools/client/performance/test/browser_perf-recording-notices-02.js
devtools/client/performance/test/browser_perf-recording-notices-03.js
devtools/client/performance/test/browser_perf-recording-notices-04.js
devtools/client/performance/test/browser_perf-recording-notices-05.js
devtools/client/performance/test/browser_perf-recordings-io-01.js
devtools/client/performance/test/browser_perf-recordings-io-02.js
devtools/client/performance/test/browser_perf-recordings-io-03.js
devtools/client/performance/test/browser_perf-recordings-io-04.js
devtools/client/performance/test/browser_perf-recordings-io-05.js
devtools/client/performance/test/browser_perf-recordings-io-06.js
devtools/client/performance/test/browser_perf-states.js
devtools/client/performance/test/browser_perf-telemetry-01.js
devtools/client/performance/test/browser_perf-telemetry-02.js
devtools/client/performance/test/browser_perf-telemetry-03.js
devtools/client/performance/test/browser_perf-telemetry-04.js
devtools/client/performance/test/browser_perf-theme-toggle.js
devtools/client/performance/test/browser_perf-tree-abstract-01.js
devtools/client/performance/test/browser_perf-tree-abstract-02.js
devtools/client/performance/test/browser_perf-tree-abstract-03.js
devtools/client/performance/test/browser_perf-tree-abstract-05.js
devtools/client/performance/test/browser_perf-tree-view-02.js
devtools/client/performance/test/browser_perf-tree-view-03.js
devtools/client/performance/test/browser_perf-tree-view-06.js
devtools/client/performance/test/browser_perf-tree-view-08.js
devtools/client/performance/test/browser_perf-tree-view-09.js
devtools/client/performance/test/browser_perf-tree-view-10.js
devtools/client/performance/test/browser_perf-tree-view-11.js
devtools/client/performance/test/browser_perf-ui-recording.js
devtools/client/performance/test/browser_timeline-filters-01.js
devtools/client/performance/test/browser_timeline-filters-02.js
devtools/client/performance/test/browser_timeline-waterfall-background.js
devtools/client/performance/test/browser_timeline-waterfall-generic.js
devtools/client/performance/test/browser_timeline-waterfall-rerender.js
devtools/client/performance/test/browser_timeline-waterfall-sidebar.js
devtools/client/performance/test/browser_timeline-waterfall-workers.js
devtools/client/performance/test/doc_allocs.html
devtools/client/performance/test/doc_innerHTML.html
devtools/client/performance/test/doc_markers.html
devtools/client/performance/test/doc_simple-test.html
devtools/client/performance/test/doc_worker.html
devtools/client/performance/test/head.js
devtools/client/performance/test/helpers/dom-utils.js
devtools/client/performance/test/helpers/event-utils.js
devtools/client/performance/test/helpers/input-utils.js
devtools/client/performance/test/helpers/profiler-mm-utils.js
devtools/client/performance/test/helpers/wait-utils.js
devtools/client/performance/test/js_simpleWorker.js
devtools/client/performance/test/unit/head.js
devtools/server/tests/browser/browser_markers-timestamp.js
devtools/server/tests/browser/browser_perf-profiler-01.js
devtools/server/tests/browser/browser_perf-profiler-02.js
devtools/server/tests/browser/browser_perf-profiler-03.js
devtools/server/tests/browser/doc_innerHTML.html
--- a/.eslintignore
+++ b/.eslintignore
@@ -79,17 +79,16 @@ devtools/client/canvasdebugger/**
 devtools/client/commandline/**
 devtools/client/debugger/**
 devtools/client/eyedropper/**
 devtools/client/framework/**
 devtools/client/jsonview/lib/**
 devtools/client/memory/**
 devtools/client/netmonitor/test/**
 devtools/client/netmonitor/har/test/**
-devtools/client/performance/test/**
 devtools/client/projecteditor/**
 devtools/client/promisedebugger/**
 devtools/client/responsivedesign/**
 devtools/client/scratchpad/**
 devtools/client/shadereditor/**
 devtools/client/shared/*.jsm
 devtools/client/shared/webgl-utils.js
 devtools/client/shared/developer-toolbar.js
--- a/devtools/client/performance/test/browser_perf-button-states.js
+++ b/devtools/client/performance/test/browser_perf-button-states.js
@@ -23,17 +23,18 @@ add_task(function* () {
     "The record button should not be checked yet.");
   ok(!recordButton.hasAttribute("locked"),
     "The record button should not be locked yet.");
 
   let uiStartClick = once(PerformanceView, EVENTS.UI_START_RECORDING);
   let recordingStarted = once(PerformanceController, EVENTS.RECORDING_STATE_CHANGE, {
     expectedArgs: { "1": "recording-started" }
   });
-  let backendStartReady = once(PerformanceController, EVENTS.BACKEND_READY_AFTER_RECORDING_START);
+  let backendStartReady = once(PerformanceController,
+                               EVENTS.BACKEND_READY_AFTER_RECORDING_START);
   let uiStateRecording = once(PerformanceView, EVENTS.UI_STATE_CHANGED, {
     expectedArgs: { "1": "recording" }
   });
 
   click(recordButton);
   yield uiStartClick;
 
   ok(recordButton.hasAttribute("checked"),
@@ -50,17 +51,18 @@ add_task(function* () {
 
   yield backendStartReady;
   yield uiStateRecording;
 
   let uiStopClick = once(PerformanceView, EVENTS.UI_STOP_RECORDING);
   let recordingStopped = once(PerformanceController, EVENTS.RECORDING_STATE_CHANGE, {
     expectedArgs: { "1": "recording-stopped" }
   });
-  let backendStopReady = once(PerformanceController, EVENTS.BACKEND_READY_AFTER_RECORDING_STOP);
+  let backendStopReady = once(PerformanceController,
+                               EVENTS.BACKEND_READY_AFTER_RECORDING_STOP);
   let uiStateRecorded = once(PerformanceView, EVENTS.UI_STATE_CHANGED, {
     expectedArgs: { "1": "recorded" }
   });
 
   click(recordButton);
   yield uiStopClick;
   yield recordingStopped;
 
--- a/devtools/client/performance/test/browser_perf-calltree-js-categories.js
+++ b/devtools/client/performance/test/browser_perf-calltree-js-categories.js
@@ -21,17 +21,18 @@ add_task(function* () {
   });
 
   let { EVENTS, $, $$, DetailsView, JsCallTreeView } = panel.panelWin;
 
   // Enable platform data to show the categories in the tree.
   Services.prefs.setBoolPref(UI_SHOW_PLATFORM_DATA_PREF, true);
 
   yield startRecording(panel);
-  yield busyWait(100); // To show the `Gecko` category in the tree.
+  // To show the `Gecko` category in the tree.
+  yield busyWait(100);
   yield stopRecording(panel);
 
   let rendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
   yield DetailsView.selectView("js-calltree");
   yield rendered;
 
   is($(".call-tree-cells-container").hasAttribute("categories-hidden"), false,
     "The call tree cells container should show the categories now.");
--- a/devtools/client/performance/test/browser_perf-calltree-js-columns.js
+++ b/devtools/client/performance/test/browser_perf-calltree-js-columns.js
@@ -20,17 +20,18 @@ add_task(function* () {
   });
 
   let { EVENTS, $, $$, DetailsView, JsCallTreeView } = panel.panelWin;
 
   // Enable platform data to show the platform functions in the tree.
   Services.prefs.setBoolPref(UI_SHOW_PLATFORM_DATA_PREF, true);
 
   yield startRecording(panel);
-  yield busyWait(100); // To show the `busyWait` function in the tree.
+  // To show the `busyWait` function in the tree.
+  yield busyWait(100);
   yield stopRecording(panel);
 
   let rendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
   yield DetailsView.selectView("js-calltree");
   yield rendered;
 
   ok(DetailsView.isViewSelected(JsCallTreeView), "The call tree is now selected.");
 
--- a/devtools/client/performance/test/browser_perf-console-record-01.js
+++ b/devtools/client/performance/test/browser_perf-console-record-01.js
@@ -5,20 +5,19 @@
 /**
  * Tests if the profiler is populated by console recordings that have finished
  * before it was opened.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { initPerformanceInTab, initConsoleInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { waitUntil } = require("devtools/client/performance/test/helpers/wait-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
-  let { target, toolbox, console } = yield initConsoleInNewTab({
+  let { target, console } = yield initConsoleInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
   yield console.profile("rust");
   yield console.profileEnd("rust");
 
   let { panel } = yield initPerformanceInTab({ tab: target.tab });
--- a/devtools/client/performance/test/browser_perf-console-record-07.js
+++ b/devtools/client/performance/test/browser_perf-console-record-07.js
@@ -81,25 +81,25 @@ add_task(function* () {
   yield console.profileEnd();
   yield stopped;
 
   recordings = PerformanceController.getRecordings();
   is(recordings.length, 3, "Three recordings found in the performance panel.");
   is(RecordingsView.selectedItem.attachment, recordings[0],
     "The first console recording should still be selected.");
 
-  is(recordings[0].isRecording(), true,
-    "The not most recent recording should not stop when calling console.profileEnd with no args.");
-  is(recordings[1].isRecording(), true,
-    "The not most recent recording should not stop when calling console.profileEnd with no args.");
-  is(recordings[2].isRecording(), false,
-    "Only the most recent recording should stop when calling console.profileEnd with no args.");
+  is(recordings[0].isRecording(), true, "The not most recent recording should not stop " +
+    "when calling console.profileEnd with no args.");
+  is(recordings[1].isRecording(), true, "The not most recent recording should not stop " +
+    "when calling console.profileEnd with no args.");
+  is(recordings[2].isRecording(), false, "Only the most recent recording should stop " +
+    "when calling console.profileEnd with no args.");
 
   info("Trying to `profileEnd` a non-existent console recording.");
-  /* yield */ console.profileEnd("fxos");
+  console.profileEnd("fxos");
   yield idleWait(1000);
 
   recordings = PerformanceController.getRecordings();
   is(recordings.length, 3, "Three recordings found in the performance panel.");
   is(RecordingsView.selectedItem.attachment, recordings[0],
     "The first console recording should still be selected.");
 
   is(recordings[0].isRecording(), true,
@@ -149,15 +149,16 @@ add_task(function* () {
   is(recordings[0].isRecording(), false,
     "All recordings should now be ended. (1)");
   is(recordings[1].isRecording(), false,
     "All recordings should now be ended. (2)");
   is(recordings[2].isRecording(), false,
     "All recordings should now be ended. (3)");
 
   info("Trying to `profileEnd` with no pending recordings.");
-  /* yield */ console.profileEnd();
+  console.profileEnd();
   yield idleWait(1000);
 
-  ok(true, "Calling console.profileEnd() with no argument and no pending recordings does not throw.");
+  ok(true, "Calling console.profileEnd() with no argument and no pending recordings " +
+    "does not throw.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-console-record-08.js
+++ b/devtools/client/performance/test/browser_perf-console-record-08.js
@@ -82,29 +82,32 @@ add_task(function* () {
   yield stopped;
   testRecordings(PerformanceController, [C + R, R + S, C + R, C]);
 
   info("Select last recording...");
   let recordingSelected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
   RecordingsView.selectedIndex = 3;
   yield recordingSelected;
   testRecordings(PerformanceController, [C + R, R, C + R, C + S]);
-  ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+  ok(!OverviewView.isRendering(),
+    "Stop rendering overview when a completed recording is selected.");
 
   info("Stop manual recording...");
   yield stopRecording(panel);
   testRecordings(PerformanceController, [C + R, S, C + R, C]);
-  ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+  ok(!OverviewView.isRendering(),
+    "Stop rendering overview when a completed recording is selected.");
 
   info("Select first recording...");
   recordingSelected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
   RecordingsView.selectedIndex = 0;
   yield recordingSelected;
   testRecordings(PerformanceController, [C + R + S, 0, C + R, C]);
-  ok(OverviewView.isRendering(), "Should be rendering overview a recording in progress is selected.");
+  ok(OverviewView.isRendering(),
+    "Should be rendering overview a recording in progress is selected.");
 
   // Ensure overview is still rendering.
   yield times(OverviewView, EVENTS.UI_OVERVIEW_RENDERED, 3, {
     expectedArgs: { "1": Constants.FRAMERATE_GRAPH_LOW_RES_INTERVAL }
   });
 
   info("Ending console.profileEnd()...");
   stopped = waitForRecordingStoppedEvents(panel, {
@@ -115,60 +118,67 @@ add_task(function* () {
     skipWaitingForSubview: true,
     // the view state won't switch to "recorded" unless the new
     // finished recording is selected, which won't happen
     skipWaitingForViewState: true,
   });
   yield console.profileEnd();
   yield stopped;
   testRecordings(PerformanceController, [C + R + S, 0, C, C]);
-  ok(OverviewView.isRendering(), "Should be rendering overview a recording in progress is selected.");
+  ok(OverviewView.isRendering(),
+    "Should be rendering overview a recording in progress is selected.");
 
   // Ensure overview is still rendering.
   yield times(OverviewView, EVENTS.UI_OVERVIEW_RENDERED, 3, {
     expectedArgs: { "1": Constants.FRAMERATE_GRAPH_LOW_RES_INTERVAL }
   });
 
   info("Start one more manual recording...");
   yield startRecording(panel);
   testRecordings(PerformanceController, [C + R, 0, C, C, R + S]);
-  ok(OverviewView.isRendering(), "Should be rendering overview a recording in progress is selected.");
+  ok(OverviewView.isRendering(),
+    "Should be rendering overview a recording in progress is selected.");
 
   // Ensure overview is still rendering.
   yield times(OverviewView, EVENTS.UI_OVERVIEW_RENDERED, 3, {
     expectedArgs: { "1": Constants.FRAMERATE_GRAPH_LOW_RES_INTERVAL }
   });
 
   info("Stop manual recording...");
   yield stopRecording(panel);
   testRecordings(PerformanceController, [C + R, 0, C, C, S]);
-  ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+  ok(!OverviewView.isRendering(),
+  "Stop rendering overview when a completed recording is selected.");
 
   info("Ending console.profileEnd()...");
   stopped = waitForRecordingStoppedEvents(panel, {
     // only emitted for manual recordings
     skipWaitingForBackendReady: true,
     // only emitted when a finished recording is selected
     skipWaitingForOverview: true,
     skipWaitingForSubview: true,
     // the view state won't switch to "recorded" unless the new
     // in-progress recording is selected, which won't happen
     skipWaitingForViewState: true,
   });
   yield console.profileEnd();
   yield stopped;
   testRecordings(PerformanceController, [C, 0, C, C, S]);
-  ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+  ok(!OverviewView.isRendering(),
+    "Stop rendering overview when a completed recording is selected.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
 
-const C = 1; // is console
-const R = 2; // is recording
-const S = 4; // is selected
+// is console
+const C = 1;
+// is recording
+const R = 2;
+// is selected
+const S = 4;
 
 function testRecordings(controller, expected) {
   let recordings = controller.getRecordings();
   let current = controller.getCurrentRecording();
   is(recordings.length, expected.length, "Expected number of recordings.");
 
   recordings.forEach((recording, i) => {
     ok(recording.isConsole() == !!(expected[i] & C),
--- a/devtools/client/performance/test/browser_perf-console-record-09.js
+++ b/devtools/client/performance/test/browser_perf-console-record-09.js
@@ -6,17 +6,17 @@
  * Tests that an error is not thrown when clearing out the recordings if there's
  * an in-progress console profile and that console profiles are not cleared
  * if in progress.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { initPerformanceInTab, initConsoleInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
-const { waitForRecordingStartedEvents, waitForRecordingStoppedEvents } = require("devtools/client/performance/test/helpers/actions");
+const { waitForRecordingStartedEvents } = require("devtools/client/performance/test/helpers/actions");
 const { idleWait } = require("devtools/client/performance/test/helpers/wait-utils");
 
 add_task(function* () {
   let { target, console } = yield initConsoleInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
@@ -46,17 +46,18 @@ add_task(function* () {
   is(recordings[0].getLabel(), "", "Correct label in the recording model.");
   is(PerformanceController.getCurrentRecording(), recordings[0],
     "There current recording should be the first one.");
 
   info("Attempting to end console.profileEnd()...");
   yield console.profileEnd();
   yield idleWait(1000);
 
-  ok(true, "Stopping an in-progress console profile after clearing recordings does not throw.");
+  ok(true,
+    "Stopping an in-progress console profile after clearing recordings does not throw.");
 
   yield PerformanceController.clearRecordings();
   recordings = PerformanceController.getRecordings();
   is(recordings.length, 0, "No recordings found");
   is(PerformanceController.getCurrentRecording(), null,
     "There should be no current recording.");
 
   yield teardownToolboxAndRemoveTab(panel);
--- a/devtools/client/performance/test/browser_perf-details-01-toggle.js
+++ b/devtools/client/performance/test/browser_perf-details-01-toggle.js
@@ -22,33 +22,34 @@ add_task(function* () {
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   info("Checking views on startup.");
   checkViews(DetailsView, $, "waterfall");
 
   // Select calltree view.
-  let viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED, { spreadArgs: true });
+  let viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED,
+                         { spreadArgs: true });
   command($("toolbarbutton[data-view='js-calltree']"));
-  let [_, viewName] = yield viewChanged;
+  let [, viewName] = yield viewChanged;
   is(viewName, "js-calltree", "UI_DETAILS_VIEW_SELECTED fired with view name");
   checkViews(DetailsView, $, "js-calltree");
 
   // Select js flamegraph view.
   viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED, { spreadArgs: true });
   command($("toolbarbutton[data-view='js-flamegraph']"));
-  [_, viewName] = yield viewChanged;
+  [, viewName] = yield viewChanged;
   is(viewName, "js-flamegraph", "UI_DETAILS_VIEW_SELECTED fired with view name");
   checkViews(DetailsView, $, "js-flamegraph");
 
   // Select waterfall view.
   viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED, { spreadArgs: true });
   command($("toolbarbutton[data-view='waterfall']"));
-  [_, viewName] = yield viewChanged;
+  [, viewName] = yield viewChanged;
   is(viewName, "waterfall", "UI_DETAILS_VIEW_SELECTED fired with view name");
   checkViews(DetailsView, $, "waterfall");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
 
 function checkViews(DetailsView, $, currentView) {
   for (let viewName in DetailsView.components) {
--- a/devtools/client/performance/test/browser_perf-details-02-utility-fun.js
+++ b/devtools/client/performance/test/browser_perf-details-02-utility-fun.js
@@ -12,17 +12,23 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, DetailsView, WaterfallView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+  let {
+    EVENTS,
+    DetailsView,
+    WaterfallView,
+    JsCallTreeView,
+    JsFlameGraphView
+  } = panel.panelWin;
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   ok(DetailsView.isViewSelected(WaterfallView),
     "The waterfall view is selected by default in the details view.");
 
   // Select js calltree view.
--- a/devtools/client/performance/test/browser_perf-details-03-without-allocations.js
+++ b/devtools/client/performance/test/browser_perf-details-03-without-allocations.js
@@ -16,17 +16,25 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, $, RecordingsView, DetailsView, WaterfallView, MemoryCallTreeView, MemoryFlameGraphView } = panel.panelWin;
+  let {
+    EVENTS,
+    $,
+    RecordingsView,
+    DetailsView,
+    WaterfallView,
+    MemoryCallTreeView,
+    MemoryFlameGraphView
+  } = panel.panelWin;
 
   let flameBtn = $("toolbarbutton[data-view='memory-flamegraph']");
   let callBtn = $("toolbarbutton[data-view='memory-calltree']");
 
   // Disable allocations to prevent recording them.
   Services.prefs.setBoolPref(UI_ENABLE_ALLOCATIONS_PREF, false);
 
   yield startRecording(panel);
@@ -71,18 +79,18 @@ add_task(function* () {
 
   // Select the first recording with no memory data.
   selected = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED);
   rendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
   RecordingsView.selectedIndex = 0;
   yield selected;
   yield rendered;
 
-  ok(DetailsView.isViewSelected(WaterfallView),
-    "The waterfall view is now selected when switching back to a recording that does not have memory data.");
+  ok(DetailsView.isViewSelected(WaterfallView), "The waterfall view is now selected " +
+    "when switching back to a recording that does not have memory data.");
 
   is(callBtn.hidden, true,
     "The `memory-calltree` button is hidden when recording has no memory data.");
   is(flameBtn.hidden, true,
     "The `memory-flamegraph` button is hidden when recording has no memory data.");
 
   // Go back to the recording with memory data.
   rendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
@@ -98,22 +106,22 @@ add_task(function* () {
     "The `memory-flamegraph` button is shown when recording has memory data.");
 
   selected = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED);
   rendered = once(MemoryCallTreeView, EVENTS.UI_MEMORY_CALL_TREE_RENDERED);
   DetailsView.selectView("memory-calltree");
   yield selected;
   yield rendered;
 
-  ok(DetailsView.isViewSelected(MemoryCallTreeView),
-    "The memory call tree view can be selected again after going back to the view with memory data.");
+  ok(DetailsView.isViewSelected(MemoryCallTreeView), "The memory call tree view can be " +
+    "selected again after going back to the view with memory data.");
 
   selected = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED);
   rendered = once(MemoryFlameGraphView, EVENTS.UI_MEMORY_FLAMEGRAPH_RENDERED);
   DetailsView.selectView("memory-flamegraph");
   yield selected;
   yield rendered;
 
-  ok(DetailsView.isViewSelected(MemoryFlameGraphView),
-    "The memory flamegraph view can be selected again after going back to the view with memory data.");
+  ok(DetailsView.isViewSelected(MemoryFlameGraphView), "The memory flamegraph view can " +
+    "be selected again after going back to the view with memory data.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-details-04-toolbar-buttons.js
+++ b/devtools/client/performance/test/browser_perf-details-04-toolbar-buttons.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, $, PerformanceController, RecordingsView, WaterfallView } = panel.panelWin;
+  let {
+    EVENTS,
+    $,
+    PerformanceController,
+    RecordingsView,
+    WaterfallView
+  } = panel.panelWin;
 
   let waterfallBtn = $("toolbarbutton[data-view='waterfall']");
   let jsFlameBtn = $("toolbarbutton[data-view='js-flamegraph']");
   let jsCallBtn = $("toolbarbutton[data-view='js-calltree']");
   let memFlameBtn = $("toolbarbutton[data-view='memory-flamegraph']");
   let memCallBtn = $("toolbarbutton[data-view='memory-calltree']");
 
   is(waterfallBtn.hidden, true,
--- a/devtools/client/performance/test/browser_perf-details-05-preserve-view.js
+++ b/devtools/client/performance/test/browser_perf-details-05-preserve-view.js
@@ -27,17 +27,18 @@ add_task(function* () {
   let rendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
   yield DetailsView.selectView("js-calltree");
   yield selected;
   yield rendered;
 
   ok(DetailsView.isViewSelected(JsCallTreeView),
     "The js calltree view is now selected in the details view.");
 
-  let cleared = once(PerformanceController, EVENTS.RECORDING_SELECTED, { expectedArgs: { "1": null } });
+  let cleared = once(PerformanceController, EVENTS.RECORDING_SELECTED,
+                     { expectedArgs: { "1": null } });
   yield PerformanceController.clearRecordings();
   yield cleared;
 
   yield startRecording(panel);
   yield stopRecording(panel, {
     expectedViewClass: "JsCallTreeView",
     expectedViewEvent: "UI_JS_CALL_TREE_RENDERED"
   });
--- a/devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js
+++ b/devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js
@@ -14,17 +14,24 @@ const { once } = require("devtools/clien
 const { scrollCanvasGraph, HORIZONTAL_AXIS } = require("devtools/client/performance/test/helpers/input-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, OverviewView, DetailsView, WaterfallView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+  let {
+    EVENTS,
+    OverviewView,
+    DetailsView,
+    WaterfallView,
+    JsCallTreeView,
+    JsFlameGraphView
+  } = panel.panelWin;
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   let waterfallRendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
   OverviewView.setTimeInterval({ startTime: 10, endTime: 20 });
   yield waterfallRendered;
 
--- a/devtools/client/performance/test/browser_perf-details-07-bleed-events.js
+++ b/devtools/client/performance/test/browser_perf-details-07-bleed-events.js
@@ -12,17 +12,17 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, DetailsView, WaterfallView, JsCallTreeView } = panel.panelWin;
+  let { EVENTS, DetailsView, JsCallTreeView } = panel.panelWin;
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   // The waterfall should render by default, and we want to make
   // sure that the render events don't bleed between detail views
   // so test that's the case after both views have been created.
   let callTreeRendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
--- a/devtools/client/performance/test/browser_perf-details-render-00-waterfall.js
+++ b/devtools/client/performance/test/browser_perf-details-render-00-waterfall.js
@@ -4,36 +4,37 @@
 
 /**
  * Tests that the waterfall view renders content after recording.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, DetailsView, WaterfallView } = panel.panelWin;
+  let { DetailsView, WaterfallView } = panel.panelWin;
 
   yield startRecording(panel);
-  yield stopRecording(panel); // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+  // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+  yield stopRecording(panel);
 
   ok(DetailsView.isViewSelected(WaterfallView),
     "The waterfall view is selected by default in the details view.");
 
   ok(true, "WaterfallView rendered after recording is stopped.");
 
   yield startRecording(panel);
-  yield stopRecording(panel); // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+  // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+  yield stopRecording(panel);
 
   ok(DetailsView.isViewSelected(WaterfallView),
     "The waterfall view is still selected in the details view.");
 
   ok(true, "WaterfallView rendered again after recording completed a second time.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-details-render-04-memory-flamegraph.js
+++ b/devtools/client/performance/test/browser_perf-details-render-04-memory-flamegraph.js
@@ -33,12 +33,13 @@ add_task(function* () {
   ok(true, "MemoryFlameGraphView rendered after recording is stopped.");
 
   yield startRecording(panel);
   yield stopRecording(panel, {
     expectedViewClass: "MemoryFlameGraphView",
     expectedViewEvent: "UI_MEMORY_FLAMEGRAPH_RENDERED"
   });
 
-  ok(true, "MemoryFlameGraphView rendered again after recording completed a second time.");
+  ok(true,
+    "MemoryFlameGraphView rendered again after recording completed a second time.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-gc-snap.js
+++ b/devtools/client/performance/test/browser_perf-gc-snap.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests that the marker details on GC markers displays allocation
  * buttons and snaps to the correct range
  */
 function* spawnTest() {
   let { panel } = yield initPerformance(ALLOCS_URL);
   let { $, $$, EVENTS, PerformanceController, OverviewView, DetailsView, WaterfallView, MemoryCallTreeView } = panel.panelWin;
   let EPSILON = 0.00001;
@@ -137,8 +138,9 @@ var GC_MARKERS = [
   { causeName: "SET_NEW_DOCUMENT", cycle: 3 },
   { causeName: "SET_NEW_DOCUMENT", cycle: 3 },
 ].map((marker, i) => {
   marker.name = "GarbageCollection";
   marker.start = 50 + (i * 10);
   marker.end = marker.start + 9;
   return marker;
 });
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-highlighted.js
+++ b/devtools/client/performance/test/browser_perf-highlighted.js
@@ -18,18 +18,18 @@ add_task(function* () {
     win: window
   });
 
   let tab = toolbox.doc.getElementById("toolbox-tab-performance");
 
   yield console.profile("rust");
   yield waitUntil(() => tab.hasAttribute("highlighted"));
 
-  ok(tab.hasAttribute("highlighted"),
-    "Performance tab is highlighted during recording from console.profile when unloaded.");
+  ok(tab.hasAttribute("highlighted"), "Performance tab is highlighted during recording " +
+    "from console.profile when unloaded.");
 
   yield console.profileEnd("rust");
   yield waitUntil(() => !tab.hasAttribute("highlighted"));
 
   ok(!tab.hasAttribute("highlighted"),
     "Performance tab is no longer highlighted when console.profile recording finishes.");
 
   let { panel } = yield initPerformanceInTab({ tab: target.tab });
--- a/devtools/client/performance/test/browser_perf-marker-details.js
+++ b/devtools/client/performance/test/browser_perf-marker-details.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the Marker Details view renders all properties expected
  * for each marker.
  */
 
 function* spawnTest() {
   let { target, panel } = yield initPerformance(MARKERS_URL);
   let { $, $$, EVENTS, PerformanceController, OverviewView, WaterfallView } = panel.panelWin;
@@ -137,8 +138,9 @@ function shouldHaveStack($, type, marker
   ok($(`#waterfall-details .marker-details-stack[type=${type}]`), `${marker.name} has a stack: ${type}`);
 }
 
 function shouldHaveLabel($, name, value, marker) {
   let $name = $(`#waterfall-details .marker-details-labelcontainer .marker-details-labelname[value="${name}"]`);
   let $value = $name.parentNode.querySelector(".marker-details-labelvalue");
   is($value.getAttribute("value"), value, `${marker.name} has correct label for ${name}:${value}`);
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-options-enable-framerate-02.js
+++ b/devtools/client/performance/test/browser_perf-options-enable-framerate-02.js
@@ -13,17 +13,17 @@ const { initPerformanceInNewTab, teardow
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { $, PerformanceController } = panel.panelWin;
+  let { PerformanceController } = panel.panelWin;
 
   // Test starting without framerate, and stopping with it.
   Services.prefs.setBoolPref(UI_ENABLE_FRAMERATE_PREF, false);
   yield startRecording(panel);
 
   Services.prefs.setBoolPref(UI_ENABLE_FRAMERATE_PREF, true);
   yield stopRecording(panel);
 
--- a/devtools/client/performance/test/browser_perf-options-enable-memory-01.js
+++ b/devtools/client/performance/test/browser_perf-options-enable-memory-01.js
@@ -24,35 +24,35 @@ add_task(function* () {
   // Disable memory to test.
   Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, false);
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, false,
     "PerformanceFront started without memory recording.");
-  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
-    "PerformanceFront started without allocations recording.");
+  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+    false, "PerformanceFront started without allocations recording.");
   ok(!isVisible($("#memory-overview")),
     "The memory graph is hidden when memory disabled.");
 
   // Re-enable memory.
   Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, true);
 
   is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, false,
     "PerformanceFront still marked without memory recording.");
-  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
-    "PerformanceFront still marked without allocations recording.");
-  ok(!isVisible($("#memory-overview")),
-    "memory graph is still hidden after enabling if recording did not start recording memory");
+  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+    false, "PerformanceFront still marked without allocations recording.");
+  ok(!isVisible($("#memory-overview")), "memory graph is still hidden after enabling " +
+                                        "if recording did not start recording memory");
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, true,
     "PerformanceFront started with memory recording.");
-  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
-    "PerformanceFront did not record with allocations.");
+  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+    false, "PerformanceFront did not record with allocations.");
   ok(isVisible($("#memory-overview")),
     "The memory graph is not hidden when memory enabled before recording.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-options-enable-memory-02.js
+++ b/devtools/client/performance/test/browser_perf-options-enable-memory-02.js
@@ -13,35 +13,37 @@ const { initPerformanceInNewTab, teardow
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { $, PerformanceController } = panel.panelWin;
+  let { PerformanceController } = panel.panelWin;
 
   // Test starting without memory, and stopping with it.
   Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, false);
   yield startRecording(panel);
 
   Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, true);
   yield stopRecording(panel);
 
   is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, false,
     "The recording finished without tracking memory.");
-  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
+  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+    false,
     "The recording finished without tracking allocations.");
 
   // Test starting with memory, and stopping without it.
   yield startRecording(panel);
 
   Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, false);
   yield stopRecording(panel);
 
   is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, true,
     "The recording finished with tracking memory.");
-  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
+  is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+    false,
     "The recording still is not recording allocations.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-01.js
+++ b/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-01.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, PerformanceController, DetailsView, JsFlameGraphView, FlameGraphUtils } = panel.panelWin;
+  let {
+    EVENTS,
+    PerformanceController,
+    DetailsView,
+    JsFlameGraphView,
+    FlameGraphUtils
+  } = panel.panelWin;
 
   Services.prefs.setBoolPref(UI_FLATTEN_RECURSION_PREF, true);
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   let rendered = once(JsFlameGraphView, EVENTS.UI_JS_FLAMEGRAPH_RENDERED);
   yield DetailsView.selectView("js-flamegraph");
--- a/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-02.js
+++ b/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-02.js
@@ -1,29 +1,37 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 "use strict";
 
 /**
- * Tests that the memory flamegraphs get rerendered when toggling `flatten-tree-recursion`.
+ * Tests that the memory flamegraphs get rerendered when toggling
+ * `flatten-tree-recursion`.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { UI_FLATTEN_RECURSION_PREF, UI_ENABLE_ALLOCATIONS_PREF } = require("devtools/client/performance/test/helpers/prefs");
 const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, PerformanceController, DetailsView, MemoryFlameGraphView, RecordingUtils, FlameGraphUtils } = panel.panelWin;
+  let {
+    EVENTS,
+    PerformanceController,
+    DetailsView,
+    MemoryFlameGraphView,
+    RecordingUtils,
+    FlameGraphUtils
+  } = panel.panelWin;
 
   // Enable memory to test
   Services.prefs.setBoolPref(UI_ENABLE_ALLOCATIONS_PREF, true);
   Services.prefs.setBoolPref(UI_FLATTEN_RECURSION_PREF, true);
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
--- a/devtools/client/performance/test/browser_perf-options-invert-flame-graph-02.js
+++ b/devtools/client/performance/test/browser_perf-options-invert-flame-graph-02.js
@@ -1,14 +1,15 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 "use strict";
 
 /**
- * Tests that the memory flamegraphs views get rerendered when toggling `invert-flame-graph`.
+ * Tests that the memory flamegraphs views get rerendered when toggling
+ * `invert-flame-graph`.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { UI_ENABLE_ALLOCATIONS_PREF, UI_INVERT_FLAME_PREF } = require("devtools/client/performance/test/helpers/prefs");
 const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
--- a/devtools/client/performance/test/browser_perf-options-show-jit-optimizations.js
+++ b/devtools/client/performance/test/browser_perf-options-show-jit-optimizations.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 // Bug 1235788, increase time out of this test
 requestLongerTimeout(2);
 
 /**
  * Tests that the JIT Optimizations view renders optimization data
  * if on, and displays selected frames on focus.
  */
 
@@ -251,8 +252,9 @@ gThread.frameTable.data.forEach((frame) 
       frame[OPTIMIZATIONS_SLOT] = gRawSite2;
       break;
     case "B_O3":
       frame[LOCATION_SLOT] = uniqStr("B (http://foo/bar/boo:10)");
       frame[OPTIMIZATIONS_SLOT] = gRawSite3;
       break;
   }
 });
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-overview-render-04.js
+++ b/devtools/client/performance/test/browser_perf-overview-render-04.js
@@ -44,26 +44,30 @@ add_task(function* () {
 
   yield stopRecording(panel);
 
   is(isVisible($("#overview-pane")), true, "Overview graphs no longer hidden.");
   is(updated, 1, "Overview graphs rendered upon completion.");
 
   yield startRecording(panel, { skipWaitingForOverview: true });
 
-  is(isVisible($("#overview-pane")), false, "Overview graphs hidden again when starting new recording.");
+  is(isVisible($("#overview-pane")), false,
+     "Overview graphs hidden again when starting new recording.");
   is(updated, 1, "Overview graphs have not been updated again.");
 
   RecordingsView.selectedIndex = 0;
-  is(isVisible($("#overview-pane")), true, "Overview graphs no longer hidden when switching back to complete recording.");
+  is(isVisible($("#overview-pane")), true,
+     "Overview graphs no longer hidden when switching back to complete recording.");
   is(updated, 1, "Overview graphs have not been updated again.");
 
   RecordingsView.selectedIndex = 1;
-  is(isVisible($("#overview-pane")), false, "Overview graphs hidden again when going back to inprogress recording.");
+  is(isVisible($("#overview-pane")), false,
+     "Overview graphs hidden again when going back to inprogress recording.");
   is(updated, 1, "Overview graphs have not been updated again.");
 
   yield stopRecording(panel);
 
-  is(isVisible($("#overview-pane")), true, "overview graphs no longer hidden when recording finishes");
+  is(isVisible($("#overview-pane")), true,
+     "overview graphs no longer hidden when recording finishes");
   is(updated, 2, "Overview graphs rendered again upon completion.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-overview-selection-01.js
+++ b/devtools/client/performance/test/browser_perf-overview-selection-01.js
@@ -5,17 +5,16 @@
 /**
  * Tests that events are fired from selection manipulation.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
-const { idleWait } = require("devtools/client/performance/test/helpers/wait-utils");
 const { dragStartCanvasGraph, dragStopCanvasGraph, clickCanvasGraph } = require("devtools/client/performance/test/helpers/input-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
@@ -24,24 +23,26 @@ add_task(function* () {
   yield startRecording(panel);
   yield stopRecording(panel);
 
   let duration = PerformanceController.getCurrentRecording().getDuration();
   let graph = OverviewView.graphs.get("timeline");
 
   // Select the first half of the graph.
 
-  let rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED, { spreadArgs: true });
+  let rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED,
+                           { spreadArgs: true });
   dragStartCanvasGraph(graph, { x: 0 });
-  let [_, { startTime, endTime }] = yield rangeSelected;
+  let [, { startTime, endTime }] = yield rangeSelected;
   is(endTime, duration, "The selected range is the entire graph, for now.");
 
-  rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED, { spreadArgs: true });
+  rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED,
+                       { spreadArgs: true });
   dragStopCanvasGraph(graph, { x: graph.width / 2 });
-  [_, { startTime, endTime }] = yield rangeSelected;
+  [, { startTime, endTime }] = yield rangeSelected;
   is(endTime, duration / 2, "The selected range is half of the graph.");
 
   is(graph.hasSelection(), true,
     "A selection exists on the graph.");
   is(startTime, 0,
     "The UI_OVERVIEW_RANGE_SELECTED event fired with 0 as a `startTime`.");
   is(endTime, duration / 2,
     `The UI_OVERVIEW_RANGE_SELECTED event fired with ${duration / 2} as \`endTime\`.`);
@@ -49,19 +50,20 @@ add_task(function* () {
   let mapStart = () => 0;
   let mapEnd = () => duration;
   let actual = graph.getMappedSelection({ mapStart, mapEnd });
   is(actual.min, 0, "Graph selection starts at 0.");
   is(actual.max, duration / 2, `Graph selection ends at ${duration / 2}.`);
 
   // Listen to deselection.
 
-  rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED, { spreadArgs: true });
+  rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED,
+                       { spreadArgs: true });
   clickCanvasGraph(graph, { x: 3 * graph.width / 4 });
-  [_, { startTime, endTime }] = yield rangeSelected;
+  [, { startTime, endTime }] = yield rangeSelected;
 
   is(graph.hasSelection(), false,
     "A selection no longer on the graph.");
   is(startTime, 0,
     "The UI_OVERVIEW_RANGE_SELECTED event fired with 0 as a `startTime`.");
   is(endTime, duration,
     "The UI_OVERVIEW_RANGE_SELECTED event fired with duration as `endTime`.");
 
--- a/devtools/client/performance/test/browser_perf-private-browsing.js
+++ b/devtools/client/performance/test/browser_perf-private-browsing.js
@@ -71,39 +71,42 @@ function* testRecordingFailingInWindow(i
   let { EVENTS, PerformanceController } = panel.panelWin;
 
   let onRecordingStarted = () => {
     ok(false, "Recording should not start while a private window is present.");
   };
 
   PerformanceController.on(EVENTS.RECORDING_STATE_CHANGE, onRecordingStarted);
 
-  let whenFailed = once(PerformanceController, EVENTS.BACKEND_FAILED_AFTER_RECORDING_START);
+  let whenFailed = once(PerformanceController,
+                        EVENTS.BACKEND_FAILED_AFTER_RECORDING_START);
   PerformanceController.startRecording();
   yield whenFailed;
   ok(true, "Recording has failed.");
 
   PerformanceController.off(EVENTS.RECORDING_STATE_CHANGE, onRecordingStarted);
 }
 
 function* testRecordingSucceedingInWindow(index) {
   let { panel } = gPanelWinTuples[index];
   let { EVENTS, PerformanceController } = panel.panelWin;
 
   let onRecordingFailed = () => {
     ok(false, "Recording should start while now private windows are present.");
   };
 
-  PerformanceController.on(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START, onRecordingFailed);
+  PerformanceController.on(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START,
+                           onRecordingFailed);
 
   yield startRecording(panel);
   yield stopRecording(panel);
   ok(true, "Recording has succeeded.");
 
-  PerformanceController.off(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START, onRecordingFailed);
+  PerformanceController.off(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START,
+                           onRecordingFailed);
 }
 
 function* teardownPerfInWindow(index, options) {
   let { panel, win } = gPanelWinTuples[index];
   yield teardownToolboxAndRemoveTab(panel, options);
 
   if (options.shouldCloseWindow) {
     win.close();
--- a/devtools/client/performance/test/browser_perf-range-changed-render.js
+++ b/devtools/client/performance/test/browser_perf-range-changed-render.js
@@ -12,17 +12,24 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, OverviewView, DetailsView, WaterfallView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+  let {
+    EVENTS,
+    OverviewView,
+    DetailsView,
+    WaterfallView,
+    JsCallTreeView,
+    JsFlameGraphView
+  } = panel.panelWin;
 
   let updatedWaterfall = 0;
   let updatedCallTree = 0;
   let updatedFlameGraph = 0;
   let updateWaterfall = () => updatedWaterfall++;
   let updateCallTree = () => updatedCallTree++;
   let updateFlameGraph = () => updatedFlameGraph++;
   WaterfallView.on(EVENTS.UI_WATERFALL_RENDERED, updateWaterfall);
--- a/devtools/client/performance/test/browser_perf-recording-notices-02.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-02.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, $, PerformanceController, PerformanceView, RecordingsView } = panel.panelWin;
+  let {
+    EVENTS,
+    $,
+    PerformanceController,
+    PerformanceView,
+    RecordingsView
+  } = panel.panelWin;
 
   let MAIN_CONTAINER = $("#performance-view");
   let CONTENT = $("#performance-view-content");
   let DETAILS_CONTAINER = $("#details-pane-container");
   let RECORDING = $("#recording-notice");
   let DETAILS = $("#details-pane");
 
   yield startRecording(panel);
@@ -34,24 +40,26 @@ add_task(function* () {
   is(PerformanceView.getState(), "recording", "Correct state during recording.");
   is(MAIN_CONTAINER.selectedPanel, CONTENT, "Showing main view with timeline.");
   is(DETAILS_CONTAINER.selectedPanel, RECORDING, "Showing recording panel.");
 
   let selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
   RecordingsView.selectedIndex = 0;
   yield selected;
 
-  is(PerformanceView.getState(), "recorded", "Correct state during recording but selecting a completed recording.");
+  is(PerformanceView.getState(), "recorded",
+     "Correct state during recording but selecting a completed recording.");
   is(MAIN_CONTAINER.selectedPanel, CONTENT, "Showing main view with timeline.");
   is(DETAILS_CONTAINER.selectedPanel, DETAILS, "Showing recorded panel.");
 
   selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
   RecordingsView.selectedIndex = 1;
   yield selected;
 
-  is(PerformanceView.getState(), "recording", "Correct state when switching back to recording in progress.");
+  is(PerformanceView.getState(), "recording",
+     "Correct state when switching back to recording in progress.");
   is(MAIN_CONTAINER.selectedPanel, CONTENT, "Showing main view with timeline.");
   is(DETAILS_CONTAINER.selectedPanel, RECORDING, "Showing recording panel.");
 
   yield stopRecording(panel);
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-recording-notices-03.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-03.js
@@ -5,85 +5,101 @@
 /**
  * Tests that recording notices display buffer status when available,
  * and can switch between different recordings with the correct buffer
  * information displayed.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { PROFILER_BUFFER_SIZE_PREF } = require("devtools/client/performance/test/helpers/prefs");
-const { PMM_loadFrameScripts, PMM_stopProfiler, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmLoadFrameScripts, pmmStopProfiler, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
 const { initPerformanceInTab, initConsoleInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 const { waitUntil } = require("devtools/client/performance/test/helpers/wait-utils");
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   // Make sure the profiler module is stopped so we can set a new buffer limit.
-  PMM_loadFrameScripts(gBrowser);
-  yield PMM_stopProfiler();
+  pmmLoadFrameScripts(gBrowser);
+  yield pmmStopProfiler();
 
   // Keep the profiler's buffer large, but still get to 1% relatively quick.
   Services.prefs.setIntPref(PROFILER_BUFFER_SIZE_PREF, 1000000);
 
   let { target, console } = yield initConsoleInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
   let { panel } = yield initPerformanceInTab({ tab: target.tab });
-  let { gFront, EVENTS, $, PerformanceController, PerformanceView, RecordingsView } = panel.panelWin;
+  let {
+    gFront,
+    EVENTS,
+    $,
+    PerformanceController,
+    PerformanceView,
+    RecordingsView
+  } = panel.panelWin;
 
   // Set a fast profiler-status update interval.
   yield gFront.setProfilerStatusInterval(10);
 
   let DETAILS_CONTAINER = $("#details-pane-container");
   let NORMAL_BUFFER_STATUS_MESSAGE = $("#recording-notice .buffer-status-message");
-  let CONSOLE_BUFFER_STATUS_MESSAGE = $("#console-recording-notice .buffer-status-message");
+  let CONSOLE_BUFFER_STATUS_MESSAGE =
+    $("#console-recording-notice .buffer-status-message");
   let gPercent;
 
   // Start a manual recording.
   yield startRecording(panel);
 
   yield waitUntil(function* () {
-    [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+    [, gPercent] = yield once(PerformanceView,
+                              EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+                              { spreadArgs: true });
     return gPercent > 0;
   });
 
   ok(true, "Buffer percentage increased in display (1).");
 
-  let bufferUsage = PerformanceController.getBufferUsageForRecording(PerformanceController.getCurrentRecording());
+  let bufferUsage = PerformanceController.getBufferUsageForRecording(
+    PerformanceController.getCurrentRecording());
   either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
     "Container has [buffer-status=in-progress] or [buffer-status=full].");
   ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
     "Buffer status text has correct percentage.");
 
   // Start a console profile.
   yield console.profile("rust");
 
   yield waitUntil(function* () {
-    [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+    [, gPercent] = yield once(PerformanceView,
+                              EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+                              { spreadArgs: true });
     return gPercent > Math.floor(bufferUsage * 100);
   });
 
   ok(true, "Buffer percentage increased in display (2).");
 
-  bufferUsage = PerformanceController.getBufferUsageForRecording(PerformanceController.getCurrentRecording());
+  bufferUsage = PerformanceController.getBufferUsageForRecording(
+    PerformanceController.getCurrentRecording());
   either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
     "Container has [buffer-status=in-progress] or [buffer-status=full].");
   ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
     "Buffer status text has correct percentage.");
 
   // Select the console recording.
   let selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
   RecordingsView.selectedIndex = 1;
   yield selected;
 
   yield waitUntil(function* () {
-    [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+    [, gPercent] = yield once(PerformanceView,
+                              EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+                              { spreadArgs: true });
     return gPercent > 0;
   });
 
   ok(true, "Percentage updated for newly selected recording.");
 
   either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
     "Container has [buffer-status=in-progress] or [buffer-status=full].");
   ok(CONSOLE_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
@@ -92,26 +108,28 @@ add_task(function* () {
   // Stop the console profile, then select the original manual recording.
   yield console.profileEnd("rust");
 
   selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
   RecordingsView.selectedIndex = 0;
   yield selected;
 
   yield waitUntil(function* () {
-    [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+    [, gPercent] = yield once(PerformanceView,
+                              EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+                              { spreadArgs: true });
     return gPercent > Math.floor(bufferUsage * 100);
   });
 
   ok(true, "Buffer percentage increased in display (3).");
 
   either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
     "Container has [buffer-status=in-progress] or [buffer-status=full].");
   ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
     "Buffer status text has correct percentage.");
 
   // Stop the manual recording.
   yield stopRecording(panel);
 
   yield teardownToolboxAndRemoveTab(panel);
 
-  PMM_clearFrameScripts();
+  pmmClearFrameScripts();
 });
--- a/devtools/client/performance/test/browser_perf-recording-notices-04.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-04.js
@@ -4,26 +4,26 @@
 
 /**
  * Tests that when a recording overlaps the circular buffer, that
  * a class is assigned to the recording notices.
  */
 
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { PROFILER_BUFFER_SIZE_PREF } = require("devtools/client/performance/test/helpers/prefs");
-const { PMM_loadFrameScripts, PMM_stopProfiler, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmLoadFrameScripts, pmmStopProfiler, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
 const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 const { waitUntil } = require("devtools/client/performance/test/helpers/wait-utils");
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   // Make sure the profiler module is stopped so we can set a new buffer limit.
-  PMM_loadFrameScripts(gBrowser);
-  yield PMM_stopProfiler();
+  pmmLoadFrameScripts(gBrowser);
+  yield pmmStopProfiler();
 
   // Keep the profiler's buffer small, to get to 100% really quickly.
   Services.prefs.setIntPref(PROFILER_BUFFER_SIZE_PREF, 10000);
 
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
@@ -36,28 +36,31 @@ add_task(function* () {
   let DETAILS_CONTAINER = $("#details-pane-container");
   let NORMAL_BUFFER_STATUS_MESSAGE = $("#recording-notice .buffer-status-message");
   let gPercent;
 
   // Start a manual recording.
   yield startRecording(panel);
 
   yield waitUntil(function* () {
-    [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+    [, gPercent] = yield once(PerformanceView,
+                              EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+                              { spreadArgs: true });
     return gPercent == 100;
   });
 
   ok(true, "Buffer percentage increased in display.");
 
-  let bufferUsage = PerformanceController.getBufferUsageForRecording(PerformanceController.getCurrentRecording());
+  let bufferUsage = PerformanceController.getBufferUsageForRecording(
+    PerformanceController.getCurrentRecording());
   ok(bufferUsage, 1, "Buffer is full for this recording.");
   ok(DETAILS_CONTAINER.getAttribute("buffer-status"), "full",
     "Container has [buffer-status=full].");
   ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
     "Buffer status text has correct percentage.");
 
   // Stop the manual recording.
   yield stopRecording(panel);
 
   yield teardownToolboxAndRemoveTab(panel);
 
-  PMM_clearFrameScripts();
+  pmmClearFrameScripts();
 });
--- a/devtools/client/performance/test/browser_perf-recording-notices-05.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-05.js
@@ -36,17 +36,18 @@ add_task(function* () {
   PerformanceController._setMultiprocessAttributes();
   ok($("#performance-view").getAttribute("e10s"), "disabled",
     "When e10s is disabled and but is supported, container has [e10s=disabled].");
 
   supported = false;
   enabled = true;
   PerformanceController._setMultiprocessAttributes();
   ok($("#performance-view").getAttribute("e10s"), "",
-    "When e10s is enabled, but not supported, this probably means we no longer have E10S_TESTING_ONLY, and we have no e10s attribute.");
+    "When e10s is enabled, but not supported, this probably means we no longer have " +
+    "E10S_TESTING_ONLY, and we have no e10s attribute.");
 
   supported = true;
   enabled = true;
   PerformanceController._setMultiprocessAttributes();
   ok($("#performance-view").getAttribute("e10s"), "",
     "When e10s is enabled and supported, there should be no e10s attribute.");
 
   yield teardownToolboxAndRemoveTab(panel);
--- a/devtools/client/performance/test/browser_perf-recordings-io-01.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-01.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the performance tool is able to save and load recordings.
  */
 
 var test = Task.async(function* () {
   var { target, panel, toolbox } = yield initPerformance(SIMPLE_URL);
   var { $, EVENTS, PerformanceController, PerformanceView, DetailsView, DetailsSubview } = panel.panelWin;
 
@@ -85,8 +86,9 @@ var test = Task.async(function* () {
   is(importedData.configuration.withTicks, originalData.configuration.withTicks,
     "The imported data is identical to the original data (7).");
   is(importedData.configuration.withMemory, originalData.configuration.withMemory,
     "The imported data is identical to the original data (8).");
 
   yield teardown(panel);
   finish();
 });
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-02.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-02.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the performance tool gracefully handles loading bogus files.
  */
 
 var test = Task.async(function* () {
   let { target, panel, toolbox } = yield initPerformance(SIMPLE_URL);
   let { EVENTS, PerformanceController } = panel.panelWin;
 
--- a/devtools/client/performance/test/browser_perf-recordings-io-03.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-03.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the performance tool gracefully handles loading files that are JSON,
  * but don't contain the appropriate recording data.
  */
 
 var { FileUtils } = Cu.import("resource://gre/modules/FileUtils.jsm", {});
 var { NetUtil } = Cu.import("resource://gre/modules/NetUtil.jsm", {});
 
@@ -47,8 +48,9 @@ function asyncCopy(data, file) {
     if (!Components.isSuccessCode(status)) {
       deferred.reject(new Error("Could not save data to file."));
     }
     deferred.resolve();
   });
 
   return deferred.promise;
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-04.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-04.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the performance tool can import profiler data from the
  * original profiler tool (Performance Recording v1, and Profiler data v2) and the correct views and graphs are loaded.
  */
 var TICKS_DATA = (function () {
   let ticks = [];
   for (let i = 0; i < 100; i++) {
     ticks.push(i * 10);
@@ -169,8 +170,9 @@ function asyncCopy(data, file) {
     if (!Components.isSuccessCode(status)) {
       deferred.reject(new Error("Could not save data to file."));
     }
     deferred.resolve();
   });
 
   return deferred.promise;
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-05.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-05.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Test that when importing and no graphs rendered yet, we do not get a
  * `getMappedSelection` error.
  */
 
 var test = Task.async(function* () {
   var { target, panel, toolbox } = yield initPerformance(SIMPLE_URL);
   var { EVENTS, PerformanceController, WaterfallView } = panel.panelWin;
@@ -34,8 +35,9 @@ var test = Task.async(function* () {
   yield imported;
   yield rendered;
 
   ok(true, "No error was thrown.");
 
   yield teardown(panel);
   finish();
 });
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-06.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-06.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the performance tool can import profiler data when Profiler is v2
  * and requires deflating, and has an extra thread that's a string. Not sure
  * what causes this.
  */
 var STRINGED_THREAD = (function () {
   let thread = {};
 
@@ -133,8 +134,9 @@ function asyncCopy(data, file) {
     if (!Components.isSuccessCode(status)) {
       deferred.reject(new Error("Could not save data to file."));
     }
     deferred.resolve();
   });
 
   return deferred.promise;
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-states.js
+++ b/devtools/client/performance/test/browser_perf-states.js
@@ -24,17 +24,17 @@ add_task(function* () {
 
   ok(!(OverviewView.graphs.get("timeline")),
     "The markers graph should not have been created yet.");
   ok(!(OverviewView.graphs.get("memory")),
     "The memory graph should not have been created yet.");
   ok(!(OverviewView.graphs.get("framerate")),
     "The framerate graph should not have been created yet.");
 
-  ok(!DetailsView.components["waterfall"].initialized,
+  ok(!DetailsView.components.waterfall.initialized,
     "The waterfall detail view should not have been created yet.");
   ok(!DetailsView.components["js-calltree"].initialized,
     "The js-calltree detail view should not have been created yet.");
   ok(!DetailsView.components["js-flamegraph"].initialized,
     "The js-flamegraph detail view should not have been created yet.");
   ok(!DetailsView.components["memory-calltree"].initialized,
     "The memory-calltree detail view should not have been created yet.");
   ok(!DetailsView.components["memory-flamegraph"].initialized,
--- a/devtools/client/performance/test/browser_perf-telemetry-01.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-01.js
@@ -33,17 +33,21 @@ add_task(function* () {
   yield stopRecording(panel);
 
   Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, true);
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   is(logs[DURATION].length, 2, `There are two entries for ${DURATION}.`);
-  ok(logs[DURATION].every(d => typeof d === "number"), `Every ${DURATION} entry is a number.`);
+  ok(logs[DURATION].every(d => typeof d === "number"),
+     `Every ${DURATION} entry is a number.`);
   is(logs[COUNT].length, 2, `There are two entries for ${COUNT}.`);
   is(logs[CONSOLE_COUNT], void 0, `There are no entries for ${CONSOLE_COUNT}.`);
-  is(logs[FEATURES].length, 8, `There are two recordings worth of entries for ${FEATURES}.`);
-  ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === true), "One feature entry for memory enabled.");
-  ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === false), "One feature entry for memory disabled.");
+  is(logs[FEATURES].length, 8,
+     `There are two recordings worth of entries for ${FEATURES}.`);
+  ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === true),
+     "One feature entry for memory enabled.");
+  ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === false),
+    "One feature entry for memory disabled.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-telemetry-02.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-02.js
@@ -27,17 +27,18 @@ add_task(function* () {
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
   let file = FileUtils.getFile("TmpD", ["tmpprofile.json"]);
   file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, parseInt("666", 8));
 
   let exported = once(PerformanceController, EVENTS.RECORDING_EXPORTED);
-  yield PerformanceController.exportRecording("", PerformanceController.getCurrentRecording(), file);
+  yield PerformanceController.exportRecording("",
+    PerformanceController.getCurrentRecording(), file);
   yield exported;
 
   ok(logs[EXPORTED], `A telemetry entry for ${EXPORTED} exists after exporting.`);
 
   let imported = once(PerformanceController, EVENTS.RECORDING_IMPORTED);
   yield PerformanceController.importRecording(null, file);
   yield imported;
 
--- a/devtools/client/performance/test/browser_perf-telemetry-03.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-03.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording } 
 const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { EVENTS, PerformanceController, DetailsView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+  let {
+    EVENTS,
+    PerformanceController,
+    DetailsView,
+    JsCallTreeView,
+    JsFlameGraphView
+  } = panel.panelWin;
 
   let telemetry = PerformanceController._telemetry;
   let logs = telemetry.getLogs();
   let VIEWS = "DEVTOOLS_PERFTOOLS_SELECTED_VIEW_MS";
 
   yield startRecording(panel);
   yield stopRecording(panel);
 
@@ -36,12 +42,15 @@ add_task(function* () {
 
   yield DetailsView.selectView("js-flamegraph");
   yield flamegraphRendered;
 
   yield teardownToolboxAndRemoveTab(panel);
 
   // Check views after destruction to ensure `js-flamegraph` gets called
   // with a time during destruction.
-  ok(logs[VIEWS].find(r => r[0] === "waterfall" && typeof r[1] === "number"), `${VIEWS} for waterfall view and time.`);
-  ok(logs[VIEWS].find(r => r[0] === "js-calltree" && typeof r[1] === "number"), `${VIEWS} for js-calltree view and time.`);
-  ok(logs[VIEWS].find(r => r[0] === "js-flamegraph" && typeof r[1] === "number"), `${VIEWS} for js-flamegraph view and time.`);
+  ok(logs[VIEWS].find(r => r[0] === "waterfall" && typeof r[1] === "number"),
+     `${VIEWS} for waterfall view and time.`);
+  ok(logs[VIEWS].find(r => r[0] === "js-calltree" && typeof r[1] === "number"),
+     `${VIEWS} for js-calltree view and time.`);
+  ok(logs[VIEWS].find(r => r[0] === "js-flamegraph" && typeof r[1] === "number"),
+     `${VIEWS} for js-flamegraph view and time.`);
 });
--- a/devtools/client/performance/test/browser_perf-telemetry-04.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-04.js
@@ -35,14 +35,16 @@ add_task(function* () {
   let stopped = waitForRecordingStoppedEvents(panel, {
     // only emitted for manual recordings
     skipWaitingForBackendReady: true
   });
   yield console.profileEnd("rust");
   yield stopped;
 
   is(logs[DURATION].length, 1, `There is one entry for ${DURATION}.`);
-  ok(logs[DURATION].every(d => typeof d === "number"), `Every ${DURATION} entry is a number.`);
+  ok(logs[DURATION].every(d => typeof d === "number"),
+     `Every ${DURATION} entry is a number.`);
   is(logs[CONSOLE_COUNT].length, 1, `There is one entry for ${CONSOLE_COUNT}.`);
-  is(logs[FEATURES].length, 4, `There is one recording worth of entries for ${FEATURES}.`);
+  is(logs[FEATURES].length, 4,
+     `There is one recording worth of entries for ${FEATURES}.`);
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_perf-theme-toggle.js
+++ b/devtools/client/performance/test/browser_perf-theme-toggle.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the markers and memory overviews render with the correct
  * theme on load, and rerenders when changed.
  */
 
 const { setTheme } = require("devtools/client/shared/theme");
 
 const LIGHT_BG = "white";
@@ -69,8 +70,9 @@ function* spawnTest() {
 
   // Set theme back to light
   setTheme("light");
   yield refreshed;
 
   yield teardown(panel);
   finish();
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-tree-abstract-01.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-01.js
@@ -46,17 +46,17 @@ add_task(function* () {
     "The root node's container is correct.");
 
   // Expand the root and test the child items...
 
   let receivedExpandEvent = once(treeRoot, "expand", { spreadArgs: true });
   let receivedFocusEvent = once(treeRoot, "focus");
   mousedown(treeRoot.target.querySelector(".arrow"));
 
-  let [_, eventItem] = yield receivedExpandEvent;
+  let [, eventItem] = yield receivedExpandEvent;
   is(eventItem, treeRoot,
     "The 'expand' event target is correct (1).");
 
   yield receivedFocusEvent;
   is(document.commandDispatcher.focusedElement, treeRoot.target,
     "The root node is now focused.");
 
   let fooItem = treeRoot.getChild(0);
@@ -97,29 +97,29 @@ add_task(function* () {
   is(barItem.container, container,
     "The 'bar' node's container is correct.");
 
   // Test clicking on the `foo` node...
 
   receivedFocusEvent = once(treeRoot, "focus", { spreadArgs: true });
   mousedown(fooItem.target);
 
-  [_, eventItem] = yield receivedFocusEvent;
+  [, eventItem] = yield receivedFocusEvent;
   is(eventItem, fooItem,
     "The 'focus' event target is correct (2).");
   is(document.commandDispatcher.focusedElement, fooItem.target,
     "The 'foo' node is now focused.");
 
   // Test double clicking on the `bar` node...
 
   receivedExpandEvent = once(treeRoot, "expand", { spreadArgs: true });
   receivedFocusEvent = once(treeRoot, "focus");
   dblclick(barItem.target);
 
-  [_, eventItem] = yield receivedExpandEvent;
+  [, eventItem] = yield receivedExpandEvent;
   is(eventItem, barItem,
     "The 'expand' event target is correct (3).");
 
   yield receivedFocusEvent;
   is(document.commandDispatcher.focusedElement, barItem.target,
     "The 'foo' node is now focused.");
 
   // A child item got expanded, test the descendants...
--- a/devtools/client/performance/test/browser_perf-tree-abstract-02.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-02.js
@@ -4,17 +4,16 @@
 
 /**
  * Tests if the abstract tree base class for the profiler's tree view
  * has a functional public API.
  */
 
 const { appendAndWaitForPaint } = require("devtools/client/performance/test/helpers/dom-utils");
 const { synthesizeCustomTreeClass } = require("devtools/client/performance/test/helpers/synth-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { MyCustomTreeItem, myDataSrc } = synthesizeCustomTreeClass();
 
   let container = document.createElement("vbox");
   yield appendAndWaitForPaint(gBrowser.selectedBrowser.parentNode, container);
 
   // Populate the tree and test the root item...
--- a/devtools/client/performance/test/browser_perf-tree-abstract-03.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-03.js
@@ -4,17 +4,16 @@
 
 /**
  * Tests if the abstract tree base class for the profiler's tree view
  * is keyboard accessible.
  */
 
 const { appendAndWaitForPaint } = require("devtools/client/performance/test/helpers/dom-utils");
 const { synthesizeCustomTreeClass } = require("devtools/client/performance/test/helpers/synth-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { MyCustomTreeItem, myDataSrc } = synthesizeCustomTreeClass();
 
   let container = document.createElement("vbox");
   yield appendAndWaitForPaint(gBrowser.selectedBrowser.parentNode, container);
 
   // Populate the tree by pressing RIGHT...
--- a/devtools/client/performance/test/browser_perf-tree-abstract-05.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-05.js
@@ -4,24 +4,23 @@
 
 /**
  * Tests if the abstract tree base class for the profiler's tree view
  * supports PageUp/PageDown/Home/End keys.
  */
 
 const { appendAndWaitForPaint } = require("devtools/client/performance/test/helpers/dom-utils");
 const { synthesizeCustomTreeClass } = require("devtools/client/performance/test/helpers/synth-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
 
 add_task(function* () {
   let { MyCustomTreeItem } = synthesizeCustomTreeClass();
 
   let container = document.createElement("vbox");
-  container.style.height = '100%';
-  container.style.overflow = 'scroll';
+  container.style.height = "100%";
+  container.style.overflow = "scroll";
   yield appendAndWaitForPaint(gBrowser.selectedBrowser.parentNode, container);
 
   let myDataSrc = {
     label: "root",
     children: []
   };
 
   for (let i = 0; i < 1000; i++) {
--- a/devtools/client/performance/test/browser_perf-tree-view-02.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-02.js
@@ -28,18 +28,20 @@ add_task(function () {
   threadNode.calls = threadNode.calls[0].calls;
 
   let treeRoot = new CallView({ frame: threadNode });
   let container = document.createElement("vbox");
   treeRoot.autoExpandDepth = 0;
   treeRoot.attachTo(container);
 
   let $$ = node => container.querySelectorAll(node);
-  let $fun = (node, ancestor) => (ancestor || container).querySelector(".call-tree-cell[type=function] > " + node);
-  let $$fun = (node, ancestor) => (ancestor || container).querySelectorAll(".call-tree-cell[type=function] > " + node);
+  let $fun = (node, ancestor) => (ancestor || container).querySelector(
+    ".call-tree-cell[type=function] > " + node);
+  let $$fun = (node, ancestor) => (ancestor || container).querySelectorAll(
+    ".call-tree-cell[type=function] > " + node);
   let $$dur = i => container.querySelectorAll(".call-tree-cell[type=duration]")[i];
   let $$per = i => container.querySelectorAll(".call-tree-cell[type=percentage]")[i];
   let $$sam = i => container.querySelectorAll(".call-tree-cell[type=samples]")[i];
 
   is(container.childNodes.length, 1,
     "The container node should have one child available.");
   is(container.childNodes[0].className, "call-tree-item",
     "The root node in the tree has the correct class name.");
--- a/devtools/client/performance/test/browser_perf-tree-view-03.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-03.js
@@ -18,17 +18,18 @@ add_task(function () {
   // Don't display the synthesized (root) and the real (root) node twice.
   threadNode.calls = threadNode.calls[0].calls;
 
   let treeRoot = new CallView({ frame: threadNode });
   let container = document.createElement("vbox");
   treeRoot.attachTo(container);
 
   let $$fun = i => container.querySelectorAll(".call-tree-cell[type=function]")[i];
-  let $$nam = i => container.querySelectorAll(".call-tree-cell[type=function] > .call-tree-name")[i];
+  let $$nam = i => container.querySelectorAll(
+    ".call-tree-cell[type=function] > .call-tree-name")[i];
   let $$dur = i => container.querySelectorAll(".call-tree-cell[type=duration]")[i];
 
   is(container.childNodes.length, 7,
     "The container node should have all children available.");
   is(Array.filter(container.childNodes, e => e.className != "call-tree-item").length, 0,
     "All item nodes in the tree have the correct class name.");
 
   is($$fun(0).style.marginInlineStart, "0px",
--- a/devtools/client/performance/test/browser_perf-tree-view-06.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-06.js
@@ -23,17 +23,19 @@ add_task(function* () {
   let container = document.createElement("vbox");
   treeRoot.attachTo(container);
 
   let A = treeRoot.getChild();
   let B = A.getChild();
   let D = B.getChild();
 
   let linkEvent = null;
-  let handler = (_, e) => linkEvent = e;
+  let handler = (_, e) => {
+    linkEvent = e;
+  };
 
   treeRoot.on("link", handler);
 
   // Fire right click.
   rightMousedown(D.target.querySelector(".call-tree-url"));
 
   // Ensure link was not called for right click.
   yield idleWait(100);
--- a/devtools/client/performance/test/browser_perf-tree-view-08.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-08.js
@@ -8,17 +8,18 @@
  */
 
 const { ThreadNode } = require("devtools/client/performance/modules/logic/tree-model");
 const { CallView } = require("devtools/client/performance/modules/widgets/tree-view");
 const { CATEGORY_MASK } = require("devtools/client/performance/modules/categories");
 const RecordingUtils = require("devtools/shared/performance/recording-utils");
 
 add_task(function () {
-  let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20, contentOnly: true });
+  let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20,
+                                                         contentOnly: true });
 
   // Don't display the synthesized (root) and the real (root) node twice.
   threadNode.calls = threadNode.calls[0].calls;
 
   let treeRoot = new CallView({ frame: threadNode, autoExpandDepth: 10 });
   let container = document.createElement("vbox");
   treeRoot.attachTo(container);
 
--- a/devtools/client/performance/test/browser_perf-tree-view-09.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-09.js
@@ -7,17 +7,18 @@
  * "self cost" and not "total cost".
  */
 
 const { ThreadNode } = require("devtools/client/performance/modules/logic/tree-model");
 const { CallView } = require("devtools/client/performance/modules/widgets/tree-view");
 const RecordingUtils = require("devtools/shared/performance/recording-utils");
 
 add_task(function () {
-  let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20, invertTree: true });
+  let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20,
+                                                         invertTree: true });
   let treeRoot = new CallView({ frame: threadNode, inverted: true });
   let container = document.createElement("vbox");
   treeRoot.attachTo(container);
 
   is(treeRoot.getChild(0).frame.location, "B",
     "The tree root's first child is the `B` function.");
   is(treeRoot.getChild(1).frame.location, "A",
     "The tree root's second child is the `A` function.");
--- a/devtools/client/performance/test/browser_perf-tree-view-10.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-10.js
@@ -7,25 +7,29 @@
  * total costs correctly.
  */
 
 const { ThreadNode } = require("devtools/client/performance/modules/logic/tree-model");
 const { CallView } = require("devtools/client/performance/modules/widgets/tree-view");
 const RecordingUtils = require("devtools/shared/performance/recording-utils");
 
 add_task(function () {
-  let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 50, invertTree: true });
+  let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 50,
+                                                         invertTree: true });
   let treeRoot = new CallView({ frame: threadNode, inverted: true });
   let container = document.createElement("vbox");
   treeRoot.attachTo(container);
 
   // Add 1 to each index to skip the hidden root node
-  let $$nam = i => container.querySelectorAll(".call-tree-cell[type=function] > .call-tree-name")[i + 1];
-  let $$per = i => container.querySelectorAll(".call-tree-cell[type=percentage]")[i + 1];
-  let $$selfper = i => container.querySelectorAll(".call-tree-cell[type='self-percentage']")[i + 1];
+  let $$nam = i => container.querySelectorAll(
+    ".call-tree-cell[type=function] > .call-tree-name")[i + 1];
+  let $$per = i => container.querySelectorAll(
+    ".call-tree-cell[type=percentage]")[i + 1];
+  let $$selfper = i => container.querySelectorAll(
+    ".call-tree-cell[type='self-percentage']")[i + 1];
 
   /**
    * Samples:
    *
    * A->C
    * A->B
    * A->B->C x4
    * A->B->D x4
@@ -43,17 +47,18 @@ add_task(function () {
    * |   10%   |   10%  |  B       |
    * |   10%   |   0    |  -> A    |
    * +---------+--------+----------+
    */
 
   is(container.childNodes.length, 10,
     "The container node should have all children available.");
 
-  [ // total, self, indent + name
+  // total, self, indent + name
+  [
     [ 50, 50, "C"],
     [ 40, 0, "  B"],
     [ 30, 0, "    A"],
     [ 10, 0, "  A"],
     [ 40, 40, "D"],
     [ 40, 0, "  B"],
     [ 40, 0, "    A"],
     [ 10, 10, "B"],
--- a/devtools/client/performance/test/browser_perf-tree-view-11.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-11.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests that if `show-jit-optimizations` is true, then an
  * icon is next to the frame with optimizations
  */
 
 var { CATEGORY_MASK } = require("devtools/client/performance/modules/categories");
 
 function* spawnTest() {
@@ -145,8 +146,9 @@ gThread.frameTable.data.forEach((frame) 
       frame[OPTIMIZATIONS_SLOT] = gRawSite1;
       break;
     case "PlatformCode":
       frame[LOCATION_SLOT] = uniqStr("PlatformCode");
       frame[OPTIMIZATIONS_SLOT] = gRawSite1;
       break;
   }
 });
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-ui-recording.js
+++ b/devtools/client/performance/test/browser_perf-ui-recording.js
@@ -2,38 +2,38 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 "use strict";
 
 /**
  * Tests that the controller handles recording via the `stopwatch` button
  * in the UI.
  */
 
-const { PMM_loadFrameScripts, PMM_isProfilerActive, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmLoadFrameScripts, pmmIsProfilerActive, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  PMM_loadFrameScripts(gBrowser);
+  pmmLoadFrameScripts(gBrowser);
 
-  ok(!(yield PMM_isProfilerActive()),
+  ok(!(yield pmmIsProfilerActive()),
     "The built-in profiler module should not have been automatically started.");
 
   yield startRecording(panel);
 
-  ok((yield PMM_isProfilerActive()),
+  ok((yield pmmIsProfilerActive()),
     "The built-in profiler module should now be active.");
 
   yield stopRecording(panel);
 
-  ok((yield PMM_isProfilerActive()),
+  ok((yield pmmIsProfilerActive()),
     "The built-in profiler module should still be active.");
 
   yield teardownToolboxAndRemoveTab(panel);
 
-  PMM_clearFrameScripts();
+  pmmClearFrameScripts();
 });
--- a/devtools/client/performance/test/browser_timeline-filters-01.js
+++ b/devtools/client/performance/test/browser_timeline-filters-01.js
@@ -1,10 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
+/* eslint-disable */
 
 /**
  * Tests markers filtering mechanism.
  */
 
 const EPSILON = 0.00000001;
 
 function* spawnTest() {
@@ -110,8 +111,9 @@ function* spawnTest() {
   finish();
 }
 
 function waitForOverviewAndCommand(overview, item) {
   let overviewRendered = overview.once("refresh");
   let menuitemCommandDispatched = once(item, "command");
   return Promise.all([overviewRendered, menuitemCommandDispatched]);
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-filters-02.js
+++ b/devtools/client/performance/test/browser_timeline-filters-02.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests markers filtering mechanism.
  */
 
 const URL = EXAMPLE_URL + "doc_innerHTML.html";
 
 function* spawnTest() {
   let { panel } = yield initPerformance(URL);
@@ -39,8 +40,9 @@ function* spawnTest() {
 
   ok(!$(".waterfall-marker-bar[type=Javascript]"), "Javascript markers are all hidden.");
   ok($(".waterfall-marker-bar[type='Parse HTML']"),
     "Found at least one 'Parse HTML' marker still visible after hiding JS markers");
 
   yield teardown(panel);
   finish();
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-waterfall-background.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-background.js
@@ -2,28 +2,27 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 "use strict";
 
 /**
  * Tests if the waterfall background is a 1px high canvas stretching across
  * the container bounds.
  */
 
-const { WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS } = require("devtools/client/performance/modules/widgets/marker-view");
 const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
 const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
 const { startRecording, stopRecording, waitForOverviewRenderedWithMarkers } = require("devtools/client/performance/test/helpers/actions");
 
 add_task(function* () {
   let { panel } = yield initPerformanceInNewTab({
     url: SIMPLE_URL,
     win: window
   });
 
-  let { $, WaterfallView } = panel.panelWin;
+  let { WaterfallView } = panel.panelWin;
 
   yield startRecording(panel);
   ok(true, "Recording has started.");
 
   // Ensure overview is rendering and some markers were received.
   yield waitForOverviewRenderedWithMarkers(panel);
 
   yield stopRecording(panel);
@@ -31,15 +30,16 @@ add_task(function* () {
 
   // Test the waterfall background.
 
   ok(WaterfallView._waterfallHeader._canvas,
     "A canvas should be created after the recording ended.");
   ok(WaterfallView._waterfallHeader._ctx,
     "A 2d context should be created after the recording ended.");
 
-  is(WaterfallView._waterfallHeader._canvas.width, WaterfallView._markersRoot._waterfallWidth,
+  is(WaterfallView._waterfallHeader._canvas.width,
+    WaterfallView._markersRoot._waterfallWidth,
     "The canvas width is correct.");
   is(WaterfallView._waterfallHeader._canvas.height, 1,
     "The canvas height is correct.");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_timeline-waterfall-generic.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-generic.js
@@ -63,28 +63,30 @@ add_task(function* () {
     "Some marker waterfall nodes should have been created.");
   ok($$(".waterfall-tree-item > .waterfall-marker > .waterfall-marker-bar").length,
     "Some marker color bars should have been created inside the waterfall.");
 
   // Test the sidebar.
 
   let detailsView = WaterfallView.details;
   let markersRoot = WaterfallView._markersRoot;
-  markersRoot.recalculateBounds(); // Make sure the bounds are up to date.
+  // Make sure the bounds are up to date.
+  markersRoot.recalculateBounds();
 
   let parentWidthBefore = $("#waterfall-view").getBoundingClientRect().width;
   let sidebarWidthBefore = $(".waterfall-sidebar").getBoundingClientRect().width;
   let detailsWidthBefore = $("#waterfall-details").getBoundingClientRect().width;
 
   ok(detailsView.hidden,
     "The details view in the waterfall view is hidden by default.");
   is(detailsWidthBefore, 0,
     "The details view width should be 0 when hidden.");
-  is(markersRoot._waterfallWidth, parentWidthBefore - sidebarWidthBefore - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
-    "The waterfall width is correct (1).");
+  is(markersRoot._waterfallWidth,
+     parentWidthBefore - sidebarWidthBefore - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
+     "The waterfall width is correct (1).");
 
   let receivedFocusEvent = once(markersRoot, "focus");
   let waterfallRerendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
   WaterfallView._markersRoot.getChild(0).focus();
   yield receivedFocusEvent;
   yield waterfallRerendered;
 
   let parentWidthAfter = $("#waterfall-view").getBoundingClientRect().width;
@@ -94,13 +96,15 @@ add_task(function* () {
   ok(!detailsView.hidden,
     "The details view in the waterfall view is now visible.");
   is(parentWidthBefore, parentWidthAfter,
     "The parent view's width should not have changed.");
   is(sidebarWidthBefore, sidebarWidthAfter,
     "The sidebar view's width should not have changed.");
   isnot(detailsWidthAfter, 0,
     "The details view width should not be 0 when visible.");
-  is(markersRoot._waterfallWidth, parentWidthAfter - sidebarWidthAfter - detailsWidthAfter - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
-    "The waterfall width is correct (2).");
+  is(markersRoot._waterfallWidth,
+     parentWidthAfter - sidebarWidthAfter - detailsWidthAfter
+                      - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
+     "The waterfall width is correct (2).");
 
   yield teardownToolboxAndRemoveTab(panel);
 });
--- a/devtools/client/performance/test/browser_timeline-waterfall-rerender.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-rerender.js
@@ -1,11 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+/* eslint-disable */
 /**
  * Tests if the waterfall remembers the selection when rerendering.
  */
 
 function* spawnTest() {
   let { target, panel } = yield initPerformance(SIMPLE_URL);
   let { $, $$, EVENTS, PerformanceController, OverviewView, WaterfallView } = panel.panelWin;
 
@@ -68,8 +68,9 @@ function* spawnTest() {
   is(Array.indexOf($$(".waterfall-tree-item"), $(".waterfall-tree-item:focus")), 2,
     "The correct item is still focused in the tree.");
   ok(!$("#waterfall-details").hidden,
     "The waterfall sidebar is still visible.");
 
   yield teardown(panel);
   finish();
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-waterfall-sidebar.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-sidebar.js
@@ -1,11 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+/* eslint-disable */
 /**
  * Tests if the sidebar is properly updated when a marker is selected.
  */
 
 function* spawnTest() {
   let { target, panel } = yield initPerformance(SIMPLE_URL);
   let { $, $$, PerformanceController, WaterfallView } = panel.panelWin;
   let { L10N } = require("devtools/client/performance/modules/global");
@@ -69,8 +69,9 @@ function* spawnTest() {
     // So just check that start and end time are in there somewhere.
     ok(tooltip.indexOf(toMs(mkr.start)) !== -1, "Tooltip has start time.");
     ok(tooltip.indexOf(toMs(mkr.end)) !== -1, "Tooltip has end time.");
   }
 
   yield teardown(panel);
   finish();
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-waterfall-workers.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-workers.js
@@ -1,11 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
 /**
  * Tests if the sidebar is properly updated with worker markers.
  */
 
 function* spawnTest() {
   let { panel } = yield initPerformance(WORKER_URL);
   let { $$, $, PerformanceController } = panel.panelWin;
 
@@ -88,8 +89,9 @@ function evalInDebuggee(script) {
     }
 
     mm.removeMessageListener("devtools:test:eval:response", handler);
     deferred.resolve(data.value);
   }
 
   return deferred.promise;
 }
+/* eslint-enable */
--- a/devtools/client/performance/test/doc_allocs.html
+++ b/devtools/client/performance/test/doc_allocs.html
@@ -5,19 +5,20 @@
 <html>
   <head>
     <meta charset="utf-8"/>
     <title>Performance test page</title>
   </head>
 
   <body>
     <script type="text/javascript">
-      var allocs = [];
+      "use strict";
+      const allocs = [];
       function test() {
-        for (var i = 0; i < 10; i++) {
+        for (let i = 0; i < 10; i++) {
           allocs.push({});
         }
       }
 
       // Prevent this script from being garbage collected.
       window.setInterval(test, 1);
     </script>
   </body>
--- a/devtools/client/performance/test/doc_innerHTML.html
+++ b/devtools/client/performance/test/doc_innerHTML.html
@@ -5,16 +5,17 @@
 <html>
   <head>
     <meta charset="utf-8"/>
     <title>Performance tool + innerHTML test page</title>
   </head>
 
   <body>
     <script type="text/javascript">
-    window.test = function () {
-      document.body.innerHTML = "<h1>LOL</h1>";
-    };
-    setInterval(window.test, 100);
+      "use strict";
+      window.test = function () {
+        document.body.innerHTML = "<h1>LOL</h1>";
+      };
+      setInterval(window.test, 100);
     </script>
   </body>
 
 </html>
--- a/devtools/client/performance/test/doc_markers.html
+++ b/devtools/client/performance/test/doc_markers.html
@@ -5,24 +5,27 @@
 <html>
   <head>
     <meta charset="utf-8"/>
     <title>Performance tool marker generation</title>
   </head>
 
   <body>
     <script type="text/javascript">
-      var x = 1;
+      "use strict";
       function test() {
-        var i = 10;
+        let i = 10;
         // generate sync styles and reflows
         while (--i) {
-            var h = document.body.clientHeight;
-            document.body.style.height = (200 + i) + "px";
-            document.body.style.borderTop = i + "px solid red"; // paint
+          /* eslint-disable no-unused-vars */
+          let h = document.body.clientHeight;
+          /* eslint-enable no-unused-vars */
+          document.body.style.height = (200 + i) + "px";
+          // paint
+          document.body.style.borderTop = i + "px solid red";
         }
         console.time("!!!");
         test2();
       }
       function test2() {
         console.timeStamp("go");
         console.timeEnd("!!!");
       }
--- a/devtools/client/performance/test/doc_simple-test.html
+++ b/devtools/client/performance/test/doc_simple-test.html
@@ -5,21 +5,23 @@
 <html>
   <head>
     <meta charset="utf-8"/>
     <title>Performance test page</title>
   </head>
 
   <body>
     <script type="text/javascript">
-      var x = 1;
+      "use strict";
+      let x = 1;
       function test() {
         document.body.style.borderTop = x + "px solid red";
-        x = 1^x;
-        document.body.innerHeight; // flush pending reflows
+        x = 1 ^ x;
+        // flush pending reflows
+        document.body.innerHeight;
       }
 
       // Prevent this script from being garbage collected.
       window.setInterval(test, 1);
     </script>
   </body>
 
 </html>
--- a/devtools/client/performance/test/doc_worker.html
+++ b/devtools/client/performance/test/doc_worker.html
@@ -5,20 +5,23 @@
 <html>
   <head>
     <meta charset="utf-8"/>
     <title>Performance test page</title>
   </head>
 
   <body>
     <script type="text/javascript">
+      "use strict";
+
+      /* exported performWork */
       function performWork() {
-        var worker = new Worker("js_simpleWorker.js");
+        const worker = new Worker("js_simpleWorker.js");
 
-        worker.addEventListener("message", function(e) {
+        worker.addEventListener("message", function (e) {
           console.log(e.data);
           console.timeStamp("Done");
         }, false);
 
         worker.postMessage("Hello World");
       }
     </script>
   </body>
--- a/devtools/client/performance/test/head.js
+++ b/devtools/client/performance/test/head.js
@@ -1,14 +1,15 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 "use strict";
 
 const { require, loader } = Cu.import("resource://devtools/shared/Loader.jsm", {});
 
+/* exported loader, either, click, dblclick, mousedown, rightMousedown, key */
 // All tests are asynchronous.
 waitForExplicitFinish();
 
 // Performance tests are much heavier because of their reliance on the
 // profiler module, memory measurements, frequent canvas operations etc. Many of
 // of them take longer than 30 seconds to finish on try server VMs, even though
 // they superficially do very little.
 requestLongerTimeout(3);
@@ -52,38 +53,40 @@ const key = (id, win = window) => {
 // Don't pollute global scope.
 (() => {
   const DevToolsUtils = require("devtools/shared/DevToolsUtils");
   const PrefUtils = require("devtools/client/performance/test/helpers/prefs");
 
   DevToolsUtils.testing = true;
 
   // Make sure all the prefs are reverted to their defaults once tests finish.
-  let stopObservingPrefs = PrefUtils.whenUnknownPrefChanged("devtools.performance", pref => {
-    ok(false, `Unknown pref changed: ${pref}. Please add it to test/helpers/prefs.js ` +
-      "to make sure it's reverted to its default value when the tests finishes, " +
-      "and avoid interfering with future tests.\n");
-  });
+  let stopObservingPrefs = PrefUtils.whenUnknownPrefChanged("devtools.performance",
+    pref => {
+      ok(false, `Unknown pref changed: ${pref}. Please add it to test/helpers/prefs.js ` +
+        "to make sure it's reverted to its default value when the tests finishes, " +
+        "and avoid interfering with future tests.\n");
+    });
 
   // By default, enable memory flame graphs for tests for now.
   // TODO: remove when we have flame charts via bug 1148663.
   Services.prefs.setBoolPref(PrefUtils.UI_ENABLE_MEMORY_FLAME_CHART, true);
 
   registerCleanupFunction(() => {
     info("finish() was called, cleaning up...");
     DevToolsUtils.testing = false;
 
     PrefUtils.rollbackPrefsToDefault();
     stopObservingPrefs();
 
     // Manually stop the profiler module at the end of all tests, to hopefully
     // avoid at least some leaks on OSX. Theoretically the module should never
     // be active at this point. We shouldn't have to do this, but rather
     // find and fix the leak in the module itself. Bug 1257439.
-    let nsIProfilerModule = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
+    let nsIProfilerModule = Cc["@mozilla.org/tools/profiler;1"]
+      .getService(Ci.nsIProfiler);
     nsIProfilerModule.StopProfiler();
 
     // Forces GC, CC and shrinking GC to get rid of disconnected docshells
     // and windows.
     Cu.forceGC();
     Cu.forceCC();
     Cu.forceShrinkingGC();
   });
--- a/devtools/client/performance/test/helpers/dom-utils.js
+++ b/devtools/client/performance/test/helpers/dom-utils.js
@@ -21,9 +21,10 @@ exports.appendAndWaitForPaint = function
   let isE10s = Services.appinfo.browserTabsRemoteAutostart;
   if (isE10s) {
     let win = parent.ownerDocument.defaultView;
     let onMozAfterPaint = waitForMozAfterPaint(win);
     parent.appendChild(element);
     return onMozAfterPaint;
   }
   parent.appendChild(element);
+  return null;
 };
--- a/devtools/client/performance/test/helpers/event-utils.js
+++ b/devtools/client/performance/test/helpers/event-utils.js
@@ -53,23 +53,25 @@ exports.times = function (target, eventN
           if (
             // Expected argument matches this regexp.
             (options.expectedArgs[index] instanceof RegExp &&
              !options.expectedArgs[index].exec(args[index])) ||
             // Expected argument is not a regexp and equal to the received arg.
             (!(options.expectedArgs[index] instanceof RegExp) &&
              options.expectedArgs[index] != args[index])
           ) {
-            dump(`Ignoring event '${eventName}' with unexpected argument at index ${index}: ${args[index]}\n`);
+            dump(`Ignoring event '${eventName}' with unexpected argument at index ` +
+                 `${index}: ${args[index]}\n`);
             return;
           }
         }
       }
       if (--receiveCount > 0) {
-        dump(`Event: '${eventName}' on ${target} needs to be fired ${receiveCount} more time(s).\n`);
+        dump(`Event: '${eventName}' on ${target} needs to be fired ${receiveCount} ` +
+             `more time(s).\n`);
       } else if (!receiveCount) {
         dump(`Event: '${eventName}' on ${target} received.\n`);
         target[remove](eventName, onEvent, options.useCapture);
         resolve(options.spreadArgs ? args : args[0]);
       }
     }, options.useCapture);
   });
 };
@@ -90,21 +92,23 @@ exports.observeTimes = function (notific
 
   return new Promise((resolve, reject) => {
     if (typeof notificationName != "string") {
       reject(new Error(`Unexpected notification name: ${notificationName}.`));
     }
 
     Services.obs.addObserver(function onObserve(subject, topic, data) {
       if ("expectedSubject" in options && options.expectedSubject != subject) {
-        dump(`Ignoring notification '${notificationName}' with unexpected subject: ${subject}\n`);
+        dump(`Ignoring notification '${notificationName}' with unexpected subject: ` +
+             `${subject}\n`);
         return;
       }
       if (--receiveCount > 0) {
-        dump(`Notification: '${notificationName}' needs to be fired ${receiveCount} more time(s).\n`);
+        dump(`Notification: '${notificationName}' needs to be fired ${receiveCount} ` +
+             `more time(s).\n`);
       } else if (!receiveCount) {
         dump(`Notification: '${notificationName}' received.\n`);
         Services.obs.removeObserver(onObserve, topic);
         resolve(data);
       }
     }, notificationName, false);
   });
 };
--- a/devtools/client/performance/test/helpers/input-utils.js
+++ b/devtools/client/performance/test/helpers/input-utils.js
@@ -5,17 +5,18 @@
 exports.HORIZONTAL_AXIS = 1;
 exports.VERTICAL_AXIS = 2;
 
 /**
  * Simulates a command event on an element.
  */
 exports.command = (node) => {
   let ev = node.ownerDocument.createEvent("XULCommandEvent");
-  ev.initCommandEvent("command", true, true, node.ownerDocument.defaultView, 0, false, false, false, false, null);
+  ev.initCommandEvent("command", true, true, node.ownerDocument.defaultView, 0, false,
+                      false, false, false, null);
   node.dispatchEvent(ev);
 };
 
 /**
  * Simulates a click event on a devtools canvas graph.
  */
 exports.clickCanvasGraph = (graph, { x, y }) => {
   x = x || 0;
--- a/devtools/client/performance/test/helpers/profiler-mm-utils.js
+++ b/devtools/client/performance/test/helpers/profiler-mm-utils.js
@@ -14,100 +14,104 @@ const { Task } = require("devtools/share
 
 const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js";
 
 let gMM = null;
 
 /**
  * Loads the relevant frame scripts into the provided browser's message manager.
  */
-exports.PMM_loadFrameScripts = (gBrowser) => {
+exports.pmmLoadFrameScripts = (gBrowser) => {
   gMM = gBrowser.selectedBrowser.messageManager;
   gMM.loadFrameScript(FRAME_SCRIPT_UTILS_URL, false);
 };
 
 /**
  * Clears the cached message manager.
  */
-exports.PMM_clearFrameScripts = () => {
+exports.pmmClearFrameScripts = () => {
   gMM = null;
 };
 
 /**
  * Sends a message to the message listener, attaching an id to the payload data.
  * Resolves a returned promise when the response is received from the message
  * listener, with the same id as part of the response payload data.
  */
-exports.PMM_uniqueMessage = function (message, payload) {
+exports.pmmUniqueMessage = function (message, payload) {
   if (!gMM) {
-    throw new Error("`PMM_loadFrameScripts()` must be called when using MessageManager.");
+    throw new Error("`pmmLoadFrameScripts()` must be called when using MessageManager.");
   }
 
-  let { generateUUID } = Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator);
+  let { generateUUID } = Cc["@mozilla.org/uuid-generator;1"]
+    .getService(Ci.nsIUUIDGenerator);
   payload.id = generateUUID().toString();
 
   return new Promise(resolve => {
     gMM.addMessageListener(message + ":response", function onHandler({ data }) {
       if (payload.id == data.id) {
         gMM.removeMessageListener(message + ":response", onHandler);
         resolve(data.data);
       }
     });
     gMM.sendAsyncMessage(message, payload);
   });
 };
 
 /**
  * Checks if the nsProfiler module is active.
  */
-exports.PMM_isProfilerActive = () => {
-  return exports.PMM_sendProfilerCommand("IsActive");
+exports.pmmIsProfilerActive = () => {
+  return exports.pmmSendProfilerCommand("IsActive");
 };
 
 /**
  * Starts the nsProfiler module.
  */
-exports.PMM_startProfiler = Task.async(function* ({ entries, interval, features }) {
-  let isActive = (yield exports.PMM_sendProfilerCommand("IsActive")).isActive;
+exports.pmmStartProfiler = Task.async(function* ({ entries, interval, features }) {
+  let isActive = (yield exports.pmmSendProfilerCommand("IsActive")).isActive;
   if (!isActive) {
-    return exports.PMM_sendProfilerCommand("StartProfiler", [entries, interval, features, features.length]);
+    return exports.pmmSendProfilerCommand("StartProfiler", [entries, interval, features,
+                                                            features.length]);
   }
+  return null;
 });
 /**
  * Stops the nsProfiler module.
  */
-exports.PMM_stopProfiler = Task.async(function* () {
-  let isActive = (yield exports.PMM_sendProfilerCommand("IsActive")).isActive;
+exports.pmmStopProfiler = Task.async(function* () {
+  let isActive = (yield exports.pmmSendProfilerCommand("IsActive")).isActive;
   if (isActive) {
-    return exports.PMM_sendProfilerCommand("StopProfiler");
+    return exports.pmmSendProfilerCommand("StopProfiler");
   }
+  return null;
 });
 
 /**
  * Calls a method on the nsProfiler module.
  */
-exports.PMM_sendProfilerCommand = (method, args = []) => {
-  return exports.PMM_uniqueMessage("devtools:test:profiler", { method, args });
+exports.pmmSendProfilerCommand = (method, args = []) => {
+  return exports.pmmUniqueMessage("devtools:test:profiler", { method, args });
 };
 
 /**
  * Evaluates a script in content, returning a promise resolved with the
  * returned result.
  */
-exports.PMM_evalInDebuggee = (script) => {
-  return exports.PMM_uniqueMessage("devtools:test:eval", { script });
+exports.pmmEvalInDebuggee = (script) => {
+  return exports.pmmUniqueMessage("devtools:test:eval", { script });
 };
 
 /**
  * Evaluates a console method in content.
  */
-exports.PMM_consoleMethod = function (method, ...args) {
+exports.pmmConsoleMethod = function (method, ...args) {
   // Terrible ugly hack -- this gets stringified when it uses the
   // message manager, so an undefined arg in `console.profileEnd()`
   // turns into a stringified "null", which is terrible. This method
   // is only used for test helpers, so swap out the argument if its undefined
   // with an empty string. Differences between empty string and undefined are
   // tested on the front itself.
   if (args[0] == null) {
     args[0] = "";
   }
-  return exports.PMM_uniqueMessage("devtools:test:console", { method, args });
+  return exports.pmmUniqueMessage("devtools:test:console", { method, args });
 };
--- a/devtools/client/performance/test/helpers/wait-utils.js
+++ b/devtools/client/performance/test/helpers/wait-utils.js
@@ -10,20 +10,22 @@ const DevToolsUtils = require("devtools/
 const { once, observeOnce } = require("devtools/client/performance/test/helpers/event-utils");
 
 /**
  * Blocks the main thread for the specified amount of time.
  */
 exports.busyWait = function (time) {
   dump(`Busy waiting for: ${time} milliseconds.\n`);
   let start = Date.now();
+  /* eslint-disable no-unused-vars */
   let stack;
   while (Date.now() - start < time) {
     stack = CC.stack;
   }
+  /* eslint-enable no-unused-vars */
 };
 
 /**
  * Idly waits for the specified amount of time.
  */
 exports.idleWait = function (time) {
   dump(`Idly waiting for: ${time} milliseconds.\n`);
   return DevToolsUtils.waitForTime(time);
--- a/devtools/client/performance/test/js_simpleWorker.js
+++ b/devtools/client/performance/test/js_simpleWorker.js
@@ -1,4 +1,6 @@
+"use strict";
+
 self.addEventListener("message", function (e) {
   self.postMessage(e.data);
   self.close();
 }, false);
--- a/devtools/client/performance/test/unit/head.js
+++ b/devtools/client/performance/test/unit/head.js
@@ -17,17 +17,17 @@ const PLATFORM_DATA_PREF = "devtools.per
 function getFrameNodePath(root, path) {
   let calls = root.calls;
   let foundNode;
   for (let key of path.split(" > ")) {
     foundNode = calls.find((node) => node.key == key);
     if (!foundNode) {
       break;
     }
-    calls = node.calls;
+    calls = foundNode.calls;
   }
   return foundNode;
 }
 
 /**
  * Synthesize a profile for testing.
  */
 function synthesizeProfileForTest(samples) {
--- a/devtools/server/tests/browser/browser_markers-timestamp.js
+++ b/devtools/server/tests/browser/browser_markers-timestamp.js
@@ -1,43 +1,43 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test that we get a "TimeStamp" marker.
  */
 
 const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_consoleMethod, PMM_loadFrameScripts, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmConsoleMethod, pmmLoadFrameScripts, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
 const MARKER_NAME = "TimeStamp";
 
 add_task(function* () {
   let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
   let doc = browser.contentDocument;
 
   initDebuggerServer();
   let client = new DebuggerClient(DebuggerServer.connectPipe());
   let form = yield connectDebuggerClient(client);
   let front = PerformanceFront(client, form);
   yield front.connect();
   let rec = yield front.startRecording({ withMarkers: true });
 
-  PMM_loadFrameScripts(gBrowser);
-  PMM_consoleMethod("timeStamp");
-  PMM_consoleMethod("timeStamp", "myLabel");
+  pmmLoadFrameScripts(gBrowser);
+  pmmConsoleMethod("timeStamp");
+  pmmConsoleMethod("timeStamp", "myLabel");
 
   let markers = yield waitForMarkerType(front, MARKER_NAME, markers => markers.length >= 2);
 
   yield front.stopRecording(rec);
 
   ok(markers.every(({stack}) => typeof stack === "number"), "All markers have stack references.");
   ok(markers.every(({name}) => name === "TimeStamp"), "All markers found are TimeStamp markers");
   ok(markers.length === 2, "found 2 TimeStamp markers");
   ok(markers.every(({start, end}) => typeof start === "number" && start === end),
     "All markers have equal start and end times");
   is(markers[0].causeName, void 0, "Unlabeled timestamps have an empty causeName");
   is(markers[1].causeName, "myLabel", "Labeled timestamps have correct causeName");
 
-  PMM_clearFrameScripts();
+  pmmClearFrameScripts();
 
   yield closeDebuggerClient(client);
   gBrowser.removeCurrentTab();
 });
--- a/devtools/server/tests/browser/browser_perf-profiler-01.js
+++ b/devtools/server/tests/browser/browser_perf-profiler-01.js
@@ -3,43 +3,43 @@
 
 /**
  * Tests if the profiler connection front does not activate the built-in
  * profiler module if not necessary, and doesn't deactivate it when
  * a recording is stopped.
  */
 
 const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_isProfilerActive, PMM_stopProfiler, PMM_loadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmIsProfilerActive, pmmStopProfiler, pmmLoadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
 
 add_task(function* () {
   let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
   let doc = browser.contentDocument;
 
   initDebuggerServer();
   let client = new DebuggerClient(DebuggerServer.connectPipe());
   let form = yield connectDebuggerClient(client);
   let front = PerformanceFront(client, form);
   yield front.connect();
 
-  PMM_loadFrameScripts(gBrowser);
+  pmmLoadFrameScripts(gBrowser);
 
-  ok(!(yield PMM_isProfilerActive()),
+  ok(!(yield pmmIsProfilerActive()),
     "The built-in profiler module should not have been automatically started.");
 
   let rec = yield front.startRecording();
   yield front.stopRecording(rec);
-  ok((yield PMM_isProfilerActive()),
+  ok((yield pmmIsProfilerActive()),
     "The built-in profiler module should still be active (1).");
 
   rec = yield front.startRecording();
   yield front.stopRecording(rec);
-  ok((yield PMM_isProfilerActive()),
+  ok((yield pmmIsProfilerActive()),
     "The built-in profiler module should still be active (2).");
 
   yield front.destroy();
   yield closeDebuggerClient(client);
 
-  ok(!(yield PMM_isProfilerActive()),
+  ok(!(yield pmmIsProfilerActive()),
     "The built-in profiler module should no longer be active.");
 
   gBrowser.removeCurrentTab();
 });
--- a/devtools/server/tests/browser/browser_perf-profiler-02.js
+++ b/devtools/server/tests/browser/browser_perf-profiler-02.js
@@ -2,45 +2,45 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests if the built-in profiler module doesn't deactivate when the toolbox
  * is destroyed if there are other consumers using it.
  */
 
 const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_isProfilerActive, PMM_stopProfiler, PMM_loadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmIsProfilerActive, pmmStopProfiler, pmmLoadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
 
 add_task(function* () {
   yield addTab(MAIN_DOMAIN + "doc_perf.html");
   initDebuggerServer();
   let client = new DebuggerClient(DebuggerServer.connectPipe());
   let form = yield connectDebuggerClient(client);
   let firstFront = PerformanceFront(client, form);
   yield firstFront.connect();
 
-  PMM_loadFrameScripts(gBrowser);
+  pmmLoadFrameScripts(gBrowser);
 
   yield firstFront.startRecording();
 
   yield addTab(MAIN_DOMAIN + "doc_perf.html");
   let client2 = new DebuggerClient(DebuggerServer.connectPipe());
   let form2 = yield connectDebuggerClient(client2);
   let secondFront = PerformanceFront(client2, form2);
   yield secondFront.connect();
-  PMM_loadFrameScripts(gBrowser);
+  pmmLoadFrameScripts(gBrowser);
 
   yield secondFront.startRecording();
 
   // Manually teardown the tabs so we can check profiler status
   yield secondFront.destroy();
   yield closeDebuggerClient(client2);
-  ok((yield PMM_isProfilerActive()),
+  ok((yield pmmIsProfilerActive()),
     "The built-in profiler module should still be active.");
 
   yield firstFront.destroy();
   yield closeDebuggerClient(client);
-  ok(!(yield PMM_isProfilerActive()),
+  ok(!(yield pmmIsProfilerActive()),
     "The built-in profiler module should no longer be active.");
 
   gBrowser.removeCurrentTab();
   gBrowser.removeCurrentTab();
 });
--- a/devtools/server/tests/browser/browser_perf-profiler-03.js
+++ b/devtools/server/tests/browser/browser_perf-profiler-03.js
@@ -4,27 +4,27 @@
 /**
  * Tests if the built-in profiler module is not reactivated if no other
  * consumer was using it over the remote debugger protocol, and ensures
  * that the actor will work properly even in such cases (e.g. the Gecko Profiler
  * addon was installed and automatically activated the profiler module).
  */
 
 const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_isProfilerActive, PMM_startProfiler, PMM_stopProfiler, PMM_loadFrameScripts, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmIsProfilerActive, pmmStartProfiler, pmmStopProfiler, pmmLoadFrameScripts, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
 
 add_task(function* () {
   // Ensure the profiler is already running when the test starts.
-  PMM_loadFrameScripts(gBrowser);
+  pmmLoadFrameScripts(gBrowser);
   let entries = 1000000;
   let interval = 1;
   let features = ["js"];
-  yield PMM_startProfiler({ entries, interval, features });
+  yield pmmStartProfiler({ entries, interval, features });
 
-  ok((yield PMM_isProfilerActive()),
+  ok((yield pmmIsProfilerActive()),
     "The built-in profiler module should still be active.");
 
   yield addTab(MAIN_DOMAIN + "doc_perf.html");
   initDebuggerServer();
   let client = new DebuggerClient(DebuggerServer.connectPipe());
   let form = yield connectDebuggerClient(client);
   let firstFront = PerformanceFront(client, form);
   yield firstFront.connect();
@@ -34,21 +34,21 @@ add_task(function* () {
   yield addTab(MAIN_DOMAIN + "doc_perf.html");
   let client2 = new DebuggerClient(DebuggerServer.connectPipe());
   let form2 = yield connectDebuggerClient(client2);
   let secondFront = PerformanceFront(client2, form2);
   yield secondFront.connect();
 
   yield secondFront.destroy();
   yield closeDebuggerClient(client2);
-  ok((yield PMM_isProfilerActive()),
+  ok((yield pmmIsProfilerActive()),
     "The built-in profiler module should still be active.");
 
   yield firstFront.destroy();
   yield closeDebuggerClient(client);
-  ok(!(yield PMM_isProfilerActive()),
+  ok(!(yield pmmIsProfilerActive()),
     "The built-in profiler module should have been automatically stopped.");
 
-  PMM_clearFrameScripts();
+  pmmClearFrameScripts();
 
   gBrowser.removeCurrentTab();
   gBrowser.removeCurrentTab();
 });
--- a/devtools/server/tests/browser/doc_innerHTML.html
+++ b/devtools/server/tests/browser/doc_innerHTML.html
@@ -5,16 +5,17 @@
 <html>
   <head>
     <meta charset="utf-8"/>
     <title>Performance tool + innerHTML test page</title>
   </head>
 
   <body>
     <script type="text/javascript">
-    window.test = function () {
-      document.body.innerHTML = "<h1>LOL</h1>";
-    };
-    setInterval(window.test, 100);
+      "use strict";
+      window.test = function () {
+        document.body.innerHTML = "<h1>LOL</h1>";
+      };
+      setInterval(window.test, 100);
     </script>
   </body>
 
 </html>