Bug 1273941 - change devtools to follow require("promise") convention; r?jryans draft
authorTom Tromey <tom@tromey.com>
Fri, 10 Jun 2016 11:54:52 -0600
changeset 377586 3ea29547c6509541e02336d9a37b5a404bcc4d76
parent 377585 4dd337eb55e26b52b6f17fe43a2036b0c426eff9
child 523388 02779fe2192c714ebd597f4325b4a28ff1c45eeb
push id20833
push userbmo:ttromey@mozilla.com
push dateFri, 10 Jun 2016 19:11:29 +0000
reviewersjryans
bugs1273941
milestone50.0a1
Bug 1273941 - change devtools to follow require("promise") convention; r?jryans In devtools the convention is that the result of `require("promise")` should be called "promise", not "Promise". This patch fixes places in devtools that were violating this convention. MozReview-Commit-ID: E8obyDTVIxY
devtools/client/webaudioeditor/panel.js
devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js
devtools/client/webaudioeditor/test/browser_audionode-actor-bypass.js
devtools/client/webaudioeditor/test/browser_audionode-actor-bypassable.js
devtools/client/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js
devtools/client/webaudioeditor/test/browser_audionode-actor-connectparam.js
devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-01.js
devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-02.js
devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-03.js
devtools/client/webaudioeditor/test/browser_audionode-actor-get-param-flags.js
devtools/client/webaudioeditor/test/browser_audionode-actor-get-params-01.js
devtools/client/webaudioeditor/test/browser_audionode-actor-get-params-02.js
devtools/client/webaudioeditor/test/browser_audionode-actor-get-set-param.js
devtools/client/webaudioeditor/test/browser_audionode-actor-source.js
devtools/client/webaudioeditor/test/browser_audionode-actor-type.js
devtools/client/webaudioeditor/test/browser_wa_automation-view-01.js
devtools/client/webaudioeditor/test/browser_wa_automation-view-02.js
devtools/client/webaudioeditor/test/browser_wa_controller-01.js
devtools/client/webaudioeditor/test/browser_wa_destroy-node-01.js
devtools/client/webaudioeditor/test/browser_wa_graph-click.js
devtools/client/webaudioeditor/test/browser_wa_graph-markers.js
devtools/client/webaudioeditor/test/browser_wa_graph-render-01.js
devtools/client/webaudioeditor/test/browser_wa_graph-render-02.js
devtools/client/webaudioeditor/test/browser_wa_graph-render-03.js
devtools/client/webaudioeditor/test/browser_wa_graph-render-04.js
devtools/client/webaudioeditor/test/browser_wa_graph-render-05.js
devtools/client/webaudioeditor/test/browser_wa_graph-render-06.js
devtools/client/webaudioeditor/test/browser_wa_graph-selected.js
devtools/client/webaudioeditor/test/browser_wa_graph-zoom.js
devtools/client/webaudioeditor/test/browser_wa_inspector-bypass-01.js
devtools/client/webaudioeditor/test/browser_wa_inspector-toggle.js
devtools/client/webaudioeditor/test/browser_wa_inspector-width.js
devtools/client/webaudioeditor/test/browser_wa_inspector.js
devtools/client/webaudioeditor/test/browser_wa_navigate.js
devtools/client/webaudioeditor/test/browser_wa_properties-view-edit-01.js
devtools/client/webaudioeditor/test/browser_wa_properties-view-edit-02.js
devtools/client/webaudioeditor/test/browser_wa_properties-view-media-nodes.js
devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js
devtools/client/webaudioeditor/test/browser_wa_properties-view-params.js
devtools/client/webaudioeditor/test/browser_wa_properties-view.js
devtools/client/webaudioeditor/test/browser_wa_reset-01.js
devtools/client/webaudioeditor/test/browser_wa_reset-02.js
devtools/client/webaudioeditor/test/browser_wa_reset-03.js
devtools/client/webaudioeditor/test/browser_wa_reset-04.js
devtools/client/webaudioeditor/test/browser_webaudio-actor-automation-event.js
devtools/client/webaudioeditor/test/browser_webaudio-actor-connect-param.js
devtools/client/webaudioeditor/test/browser_webaudio-actor-destroy-node.js
devtools/client/webaudioeditor/test/browser_webaudio-actor-simple.js
devtools/client/webaudioeditor/test/head.js
devtools/server/main.js
devtools/shared/async-storage.js
devtools/shared/async-utils.js
devtools/shared/defer.js
devtools/shared/task.js
--- a/devtools/client/webaudioeditor/panel.js
+++ b/devtools/client/webaudioeditor/panel.js
@@ -3,17 +3,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
 const { Cc, Ci, Cu, Cr } = require("chrome");
 const EventEmitter = require("devtools/shared/event-emitter");
 const { WebAudioFront } = require("devtools/shared/fronts/webaudio");
-var Promise = require("promise");
+var promise = require("promise");
 
 function WebAudioEditorPanel(iframeWindow, toolbox) {
   this.panelWin = iframeWindow;
   this._toolbox = toolbox;
   this._destroyer = null;
 
   EventEmitter.decorate(this);
 }
@@ -23,17 +23,17 @@ exports.WebAudioEditorPanel = WebAudioEd
 WebAudioEditorPanel.prototype = {
   open: function () {
     let targetPromise;
 
     // Local debugging needs to make the target remote.
     if (!this.target.isRemote) {
       targetPromise = this.target.makeRemote();
     } else {
-      targetPromise = Promise.resolve(this.target);
+      targetPromise = promise.resolve(this.target);
     }
 
     return targetPromise
       .then(() => {
         this.panelWin.gToolbox = this._toolbox;
         this.panelWin.gTarget = this.target;
 
         this.panelWin.gFront = new WebAudioFront(this.target.client, this.target.form);
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#addAutomationEvent();
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
-  let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
+  let [_, [destNode, oscNode, gainNode]] = yield promise.all([
     front.setup({ reload: true }),
     get3(front, "create-node")
   ]);
   let count = 0;
   let counter = () => count++;
   front.on("automation-event", counter);
 
   let t0 = 0, t1 = 0.1, t2 = 0.2, t3 = 0.3, t4 = 0.4, t5 = 0.6, t6 = 0.7, t7 = 1;
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-bypass.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-bypass.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#bypass(), AudioNode#isBypassed()
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
-  let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
+  let [_, [destNode, oscNode, gainNode]] = yield promise.all([
     front.setup({ reload: true }),
     get3(front, "create-node")
   ]);
 
   is((yield gainNode.isBypassed()), false, "Nodes start off unbypassed.");
 
   info("Calling node#bypass(true)");
   let isBypassed = yield gainNode.bypass(true);
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-bypassable.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-bypassable.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#bypassable
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_NODES_URL);
-  let [_, nodes] = yield Promise.all([
+  let [_, nodes] = yield promise.all([
     front.setup({ reload: true }),
     getN(front, "create-node", 14)
   ]);
 
   let actualBypassability = nodes.map(node => node.bypassable);
   let expectedBypassability = [
     false, // AudioDestinationNode
     true, // AudioBufferSourceNode
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js
@@ -8,33 +8,33 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   let [dest, osc, gain] = actors;
 
   info("Disconnecting oscillator...");
   osc.disconnect();
-  yield Promise.all([
+  yield promise.all([
     waitForGraphRendered(panelWin, 3, 1),
     once(gAudioNodes, "disconnect")
   ]);
   ok(true, "Oscillator disconnected, event emitted.");
 
   info("Reconnecting oscillator...");
   osc.connectNode(gain);
-  yield Promise.all([
+  yield promise.all([
     waitForGraphRendered(panelWin, 3, 2),
     once(gAudioNodes, "connect")
   ]);
   ok(true, "Oscillator reconnected.");
 
   yield teardown(target);
 });
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-connectparam.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-connectparam.js
@@ -8,26 +8,26 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   let [dest, osc, gain] = actors;
 
   yield osc.disconnect();
 
   osc.connectParam(gain, "gain");
-  yield Promise.all([
+  yield promise.all([
     waitForGraphRendered(panelWin, 3, 1, 1),
     once(gAudioNodes, "connect")
   ]);
   ok(true, "Oscillator connect to Gain's Gain AudioParam, event emitted.");
 
   yield teardown(target);
 });
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-01.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-01.js
@@ -3,17 +3,17 @@
 
 /**
  * Test AudioNode#addAutomationEvent() checking automation values, also using
  * a curve as the last event to check duration spread.
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
-  let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
+  let [_, [destNode, oscNode, gainNode]] = yield promise.all([
     front.setup({ reload: true }),
     get3(front, "create-node")
   ]);
 
   let t0 = 0, t1 = 0.1, t2 = 0.2, t3 = 0.3, t4 = 0.4, t5 = 0.6, t6 = 0.7, t7 = 1;
   let curve = [-1, 0, 1];
   yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [0.2, t0]);
   yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [0.3, t1]);
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-02.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-02.js
@@ -3,17 +3,17 @@
 
 /**
  * Test AudioNode#addAutomationEvent() when automation series ends with
  * `setTargetAtTime`, which approaches its target to infinity.
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
-  let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
+  let [_, [destNode, oscNode, gainNode]] = yield promise.all([
     front.setup({ reload: true }),
     get3(front, "create-node")
   ]);
 
   yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [300, 0.1]);
   yield oscNode.addAutomationEvent("frequency", "linearRampToValueAtTime", [500, 0.4]);
   yield oscNode.addAutomationEvent("frequency", "exponentialRampToValueAtTime", [200, 0.6]);
   // End with a setTargetAtTime event, as the target approaches infinity, which will
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-03.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-get-automation-data-03.js
@@ -3,17 +3,17 @@
 
 /**
  * Test that `cancelScheduledEvents` clears out events on and after
  * its argument.
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
-  let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
+  let [_, [destNode, oscNode, gainNode]] = yield promise.all([
     front.setup({ reload: true }),
     get3(front, "create-node")
   ]);
 
   yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [300, 0]);
   yield oscNode.addAutomationEvent("frequency", "linearRampToValueAtTime", [500, 0.9]);
   yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [700, 1]);
   yield oscNode.addAutomationEvent("frequency", "exponentialRampToValueAtTime", [1000, 2]);
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-get-param-flags.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-get-param-flags.js
@@ -2,22 +2,22 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#getParamFlags()
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_NODES_URL);
-  let [_, nodes] = yield Promise.all([
+  let [_, nodes] = yield promise.all([
     front.setup({ reload: true }),
     getN(front, "create-node", 15)
   ]);
 
-  let allNodeParams = yield Promise.all(nodes.map(node => node.getParams()));
+  let allNodeParams = yield promise.all(nodes.map(node => node.getParams()));
   let nodeTypes = [
     "AudioDestinationNode",
     "AudioBufferSourceNode", "ScriptProcessorNode", "AnalyserNode", "GainNode",
     "DelayNode", "BiquadFilterNode", "WaveShaperNode", "PannerNode", "ConvolverNode",
     "ChannelSplitterNode", "ChannelMergerNode", "DynamicsCompressorNode", "OscillatorNode",
     "StereoPannerNode"
   ];
 
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-get-params-01.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-get-params-01.js
@@ -2,33 +2,33 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#getParams()
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_NODES_URL);
-  let [_, nodes] = yield Promise.all([
+  let [_, nodes] = yield promise.all([
     front.setup({ reload: true }),
     getN(front, "create-node", 15)
   ]);
 
   yield loadFrameScripts();
 
-  let allNodeParams = yield Promise.all(nodes.map(node => node.getParams()));
+  let allNodeParams = yield promise.all(nodes.map(node => node.getParams()));
   let nodeTypes = [
     "AudioDestinationNode",
     "AudioBufferSourceNode", "ScriptProcessorNode", "AnalyserNode", "GainNode",
     "DelayNode", "BiquadFilterNode", "WaveShaperNode", "PannerNode", "ConvolverNode",
     "ChannelSplitterNode", "ChannelMergerNode", "DynamicsCompressorNode", "OscillatorNode",
     "StereoPannerNode"
   ];
 
-  let defaults = yield Promise.all(nodeTypes.map(type => nodeDefaultValues(type)));
+  let defaults = yield promise.all(nodeTypes.map(type => nodeDefaultValues(type)));
 
   nodeTypes.map((type, i) => {
     let params = allNodeParams[i];
 
     params.forEach(({param, value, flags}) => {
       ok(param in defaults[i], "expected parameter for " + type);
 
       ok(typeof flags === "object", type + " has a flags object");
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-get-params-02.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-get-params-02.js
@@ -3,32 +3,32 @@
 
 /**
  * Tests that default properties are returned with the correct type
  * from the AudioNode actors.
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_NODES_URL);
-  let [_, nodes] = yield Promise.all([
+  let [_, nodes] = yield promise.all([
     front.setup({ reload: true }),
     getN(front, "create-node", 15)
   ]);
 
   yield loadFrameScripts();
 
-  let allParams = yield Promise.all(nodes.map(node => node.getParams()));
+  let allParams = yield promise.all(nodes.map(node => node.getParams()));
   let types = [
     "AudioDestinationNode", "AudioBufferSourceNode", "ScriptProcessorNode",
     "AnalyserNode", "GainNode", "DelayNode", "BiquadFilterNode", "WaveShaperNode",
     "PannerNode", "ConvolverNode", "ChannelSplitterNode", "ChannelMergerNode",
     "DynamicsCompressorNode", "OscillatorNode", "StereoPannerNode"
   ];
 
-  let defaults = yield Promise.all(types.map(type => nodeDefaultValues(type)));
+  let defaults = yield promise.all(types.map(type => nodeDefaultValues(type)));
 
   info(JSON.stringify(defaults));
 
   allParams.forEach((params, i) => {
     compare(params, defaults[i], types[i]);
   });
 
   yield removeTab(target.tab);
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-get-set-param.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-get-set-param.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#getParam() / AudioNode#setParam()
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
-  let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
+  let [_, [destNode, oscNode, gainNode]] = yield promise.all([
     front.setup({ reload: true }),
     get3(front, "create-node")
   ]);
 
   let freq = yield oscNode.getParam("frequency");
   info(typeof freq);
   is(freq, 440, "AudioNode:getParam correctly fetches AudioParam");
 
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-source.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-source.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#source
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_NODES_URL);
-  let [_, nodes] = yield Promise.all([
+  let [_, nodes] = yield promise.all([
     front.setup({ reload: true }),
     getN(front, "create-node", 14)
   ]);
 
   let actualTypes = nodes.map(node => node.type);
   let isSourceResult = nodes.map(node => node.source);
 
   actualTypes.forEach((type, i) => {
--- a/devtools/client/webaudioeditor/test/browser_audionode-actor-type.js
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-type.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test AudioNode#type
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_NODES_URL);
-  let [_, nodes] = yield Promise.all([
+  let [_, nodes] = yield promise.all([
     front.setup({ reload: true }),
     getN(front, "create-node", 14)
   ]);
 
   let actualTypes = nodes.map(node => node.type);
   let expectedTypes = [
     "AudioDestinationNode",
     "AudioBufferSourceNode", "ScriptProcessorNode", "AnalyserNode", "GainNode",
--- a/devtools/client/webaudioeditor/test/browser_wa_automation-view-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_automation-view-01.js
@@ -10,17 +10,17 @@ add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(AUTOMATION_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
   let $tabbox = $("#web-audio-editor-tabs");
 
   // Oscillator node
   click(panelWin, findGraphNode(panelWin, nodeIds[1]));
--- a/devtools/client/webaudioeditor/test/browser_wa_automation-view-02.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_automation-view-02.js
@@ -10,17 +10,17 @@ add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(AUTOMATION_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, AutomationView } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
 
   // Oscillator node
   click(panelWin, findGraphNode(panelWin, nodeIds[1]));
--- a/devtools/client/webaudioeditor/test/browser_wa_controller-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_controller-01.js
@@ -11,17 +11,17 @@ const BUG_1125817_URL = EXAMPLE_URL + "d
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(BUG_1125817_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     once(gAudioNodes, "add", 2),
     once(gAudioNodes, "disconnect"),
     waitForGraphRendered(panelWin, 2, 0)
   ]);
 
   ok(true, "Successfully disconnected a just-created node.");
 
   yield teardown(target);
--- a/devtools/client/webaudioeditor/test/browser_wa_destroy-node-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_destroy-node-01.js
@@ -13,17 +13,17 @@ add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(DESTROY_NODES_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, gAudioNodes } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [created] = yield Promise.all([
+  let [created] = yield promise.all([
     getNSpread(gAudioNodes, "add", 13),
     waitForGraphRendered(panelWin, 13, 2)
   ]);
 
   // Flatten arrays of event arguments and take the first (AudioNodeModel)
   // and get its ID.
   let actorIDs = created.map(ev => ev[0].id);
 
@@ -31,17 +31,17 @@ add_task(function* () {
   yield clickGraphNode(panelWin, actorIDs[5]);
 
   let destroyed = getN(gAudioNodes, "remove", 10);
 
   // Force a CC in the child process to collect the orphaned nodes.
   forceNodeCollection();
 
   // Wait for destruction and graph to re-render
-  yield Promise.all([destroyed, waitForGraphRendered(panelWin, 3, 2)]);
+  yield promise.all([destroyed, waitForGraphRendered(panelWin, 3, 2)]);
 
   // Test internal storage
   is(panelWin.gAudioNodes.length, 3, "All nodes should be GC'd except one gain, osc and dest node.");
 
   // Test graph rendering
   ok(findGraphNode(panelWin, actorIDs[0]), "dest should be in graph");
   ok(findGraphNode(panelWin, actorIDs[1]), "osc should be in graph");
   ok(findGraphNode(panelWin, actorIDs[2]), "gain should be in graph");
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-click.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-click.js
@@ -10,17 +10,17 @@ add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(COMPLEX_CONTEXT_URL);
   let panelWin = panel.panelWin;
   let { gFront, $, $$, InspectorView } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors, _] = yield Promise.all([
+  let [actors, _] = yield promise.all([
     getN(gFront, "create-node", 8),
     waitForGraphRendered(panel.panelWin, 8, 8)
   ]);
 
   let nodeIds = actors.map(actor => actor.actorID);
 
   ok(!InspectorView.isVisible(), "InspectorView hidden on start.");
 
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-markers.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-markers.js
@@ -16,17 +16,17 @@ add_task(function* () {
 
   ok(MARKER_STYLING.light, "Marker styling exists for light theme.");
   ok(MARKER_STYLING.dark, "Marker styling exists for dark theme.");
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   is(getFill($("#arrowhead")), MARKER_STYLING[currentTheme],
     "marker initially matches theme.");
 
   // Switch to light
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-render-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-render-01.js
@@ -13,17 +13,17 @@ add_task(function* () {
   let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
   gAudioNodes.on("connect", onConnectNode);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   let [destId, oscId, gainId] = actors.map(actor => actor.actorID);
 
   ok(findGraphNode(panelWin, oscId).classList.contains("type-OscillatorNode"), "found OscillatorNode with class");
   ok(findGraphNode(panelWin, gainId).classList.contains("type-GainNode"), "found GainNode with class");
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-render-02.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-render-02.js
@@ -9,17 +9,17 @@ add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(COMPLEX_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$ } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 8),
     waitForGraphRendered(panelWin, 8, 8)
   ]);
 
   let nodeIDs = actors.map(actor => actor.actorID);
 
   let types = ["AudioDestinationNode", "OscillatorNode", "GainNode", "ScriptProcessorNode",
                "OscillatorNode", "GainNode", "AudioBufferSourceNode", "BiquadFilterNode"];
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-render-03.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-render-03.js
@@ -7,17 +7,17 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 3),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   let [dest, osc, gain] = actors;
 
   yield clickGraphNode(panelWin, gain.actorID);
   ok(findGraphNode(panelWin, gain.actorID).classList.contains("selected"),
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-render-04.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-render-04.js
@@ -9,17 +9,17 @@ add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(CONNECT_MULTI_PARAM_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 5),
     waitForGraphRendered(panelWin, 5, 2, 3)
   ]);
 
   let nodeIDs = actors.map(actor => actor.actorID);
 
   let [, carrier, gain, mod1, mod2] = nodeIDs;
 
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-render-05.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-render-05.js
@@ -7,17 +7,17 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 3),
     waitForGraphRendered(panelWin, 3, 2, 0)
   ]);
 
   let [dest, osc, gain] = actors;
 
   yield osc.disconnect();
 
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-render-06.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-render-06.js
@@ -9,17 +9,17 @@ const BUG_1141261_URL = EXAMPLE_URL + "d
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(BUG_1141261_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 3),
     waitForGraphRendered(panelWin, 3, 1, 0)
   ]);
 
   ok(true, "Graph correctly shows gain node as disconnected");
 
   yield teardown(target);
 });
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-selected.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-selected.js
@@ -9,17 +9,17 @@ add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS } = panelWin;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   let [destId, oscId, gainId] = actors.map(actor => actor.actorID);
 
   ok(!findGraphNode(panelWin, destId).classList.contains("selected"),
     "No nodes selected on start. (destination)");
--- a/devtools/client/webaudioeditor/test/browser_wa_graph-zoom.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_graph-zoom.js
@@ -7,17 +7,17 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, ContextView } = panelWin;
 
   let started = once(gFront, "start-context");
 
-  yield Promise.all([
+  yield promise.all([
     reload(target),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   is(ContextView.getCurrentScale(), 1, "Default graph scale is 1.");
   is(ContextView.getCurrentTranslation()[0], 20, "Default x-translation is 20.");
   is(ContextView.getCurrentTranslation()[1], 20, "Default y-translation is 20.");
 
@@ -25,17 +25,17 @@ add_task(function* () {
   panelWin.d3.select("#graph-target").attr("transform", "translate([100, 400]) scale(10)");
   ContextView._zoomBinding.scale(10);
   ContextView._zoomBinding.translate([100, 400]);
 
   is(ContextView.getCurrentScale(), 10, "After zoom, scale is 10.");
   is(ContextView.getCurrentTranslation()[0], 100, "After zoom, x-translation is 100.");
   is(ContextView.getCurrentTranslation()[1], 400, "After zoom, y-translation is 400.");
 
-  yield Promise.all([
+  yield promise.all([
     reload(target),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   is(ContextView.getCurrentScale(), 1, "After refresh, graph scale is 1.");
   is(ContextView.getCurrentTranslation()[0], 20, "After refresh, x-translation is 20.");
   is(ContextView.getCurrentTranslation()[1], 20, "After refresh, y-translation is 20.");
 
--- a/devtools/client/webaudioeditor/test/browser_wa_inspector-bypass-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_inspector-bypass-01.js
@@ -7,17 +7,17 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   // Wait for the node to be set as well as the inspector to come fully into the view
   yield clickGraphNode(panelWin, findGraphNode(panelWin, nodeIds[1]), true);
 
--- a/devtools/client/webaudioeditor/test/browser_wa_inspector-toggle.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_inspector-toggle.js
@@ -11,17 +11,17 @@ add_task(function* () {
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, InspectorView } = panelWin;
   let gVars = InspectorView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   ok(!InspectorView.isVisible(), "InspectorView hidden on start.");
 
   // Open inspector pane
--- a/devtools/client/webaudioeditor/test/browser_wa_inspector-width.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_inspector-width.js
@@ -11,17 +11,17 @@ add_task(function* () {
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, InspectorView } = panelWin;
   let gVars = InspectorView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   ok(!InspectorView.isVisible(), "InspectorView hidden on start.");
 
   // Open inspector pane
@@ -30,17 +30,17 @@ add_task(function* () {
 
   let newInspectorWidth = 500;
 
   // Setting width to new_inspector_width
   $("#web-audio-inspector").setAttribute("width", newInspectorWidth);
   reload(target);
 
   // Width should be 500 after reloading
-  [actors] = yield Promise.all([
+  [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   nodeIds = actors.map(actor => actor.actorID);
 
   // Open inspector pane
   $("#inspector-pane-toggle").click();
   yield once(panelWin, EVENTS.UI_INSPECTOR_TOGGLED);
--- a/devtools/client/webaudioeditor/test/browser_wa_inspector.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_inspector.js
@@ -11,17 +11,17 @@ add_task(function* () {
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, InspectorView } = panelWin;
   let gVars = InspectorView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   ok(!InspectorView.isVisible(), "InspectorView hidden on start.");
   ok(isVisible($("#web-audio-editor-details-pane-empty")),
     "InspectorView empty message should show when no node's selected.");
--- a/devtools/client/webaudioeditor/test/browser_wa_navigate.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_navigate.js
@@ -8,28 +8,28 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $ } = panelWin;
 
   reload(target);
 
-  var [actors] = yield Promise.all([
+  var [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   var { nodes, edges } = countGraphObjects(panelWin);
   is(nodes, 3, "should only be 3 nodes.");
   is(edges, 2, "should only be 2 edges.");
 
   navigate(target, SIMPLE_NODES_URL);
 
-  var [actors] = yield Promise.all([
+  var [actors] = yield promise.all([
     getN(gFront, "create-node", 15),
     waitForGraphRendered(panelWin, 15, 0)
   ]);
 
   is($("#reload-notice").hidden, true,
     "The 'reload this page' notice should be hidden after context found after navigation.");
   is($("#waiting-notice").hidden, true,
     "The 'waiting for an audio context' notice should be hidden after context found after navigation.");
--- a/devtools/client/webaudioeditor/test/browser_wa_properties-view-edit-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_properties-view-edit-01.js
@@ -10,25 +10,25 @@ add_task(function* () {
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, PropertiesView } = panelWin;
   let gVars = PropertiesView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   click(panelWin, findGraphNode(panelWin, nodeIds[1]));
   // Wait for the node to be set as well as the inspector to come fully into the view
-  yield Promise.all([
+  yield promise.all([
     waitForInspectorRender(panelWin, EVENTS),
     once(panelWin, EVENTS.UI_INSPECTOR_TOGGLED)
   ]);
 
   let setAndCheck = setAndCheckVariable(panelWin, gVars);
 
   checkVariableView(gVars, 0, {
     "type": "sine",
--- a/devtools/client/webaudioeditor/test/browser_wa_properties-view-edit-02.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_properties-view-edit-02.js
@@ -10,25 +10,25 @@ add_task(function* () {
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, PropertiesView } = panelWin;
   let gVars = PropertiesView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 8),
     waitForGraphRendered(panelWin, 8, 8)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   click(panelWin, findGraphNode(panelWin, nodeIds[3]));
   // Wait for the node to be set as well as the inspector to come fully into the view
-  yield Promise.all([
+  yield promise.all([
     waitForInspectorRender(panelWin, EVENTS),
     once(panelWin, EVENTS.UI_INSPECTOR_TOGGLED),
   ]);
 
   let errorEvent = once(panelWin, EVENTS.UI_SET_PARAM_ERROR);
 
   try {
     yield modifyVariableView(panelWin, gVars, 0, "bufferSize", 2048);
--- a/devtools/client/webaudioeditor/test/browser_wa_properties-view-media-nodes.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_properties-view-media-nodes.js
@@ -11,19 +11,19 @@ var MEDIA_PERMISSION = "media.navigator.
 function waitForDeviceClosed() {
   info("Checking that getUserMedia streams are no longer in use.");
 
   let temp = {};
   Cu.import("resource:///modules/webrtcUI.jsm", temp);
   let webrtcUI = temp.webrtcUI;
 
   if (!webrtcUI.showGlobalIndicator)
-    return Promise.resolve();
+    return promise.resolve();
 
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
 
   const message = "webrtc:UpdateGlobalIndicators";
   let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"]
                .getService(Ci.nsIMessageBroadcaster);
   ppmm.addMessageListener(message, function listener(aMessage) {
     info("Received " + message + " message");
     if (!aMessage.data.showGlobalIndicator) {
       ppmm.removeMessageListener(message, listener);
@@ -43,28 +43,28 @@ add_task(function* () {
   // Auto enable getUserMedia
   let mediaPermissionPref = Services.prefs.getBoolPref(MEDIA_PERMISSION);
   Services.prefs.setBoolPref(MEDIA_PERMISSION, true);
 
   reload(target);
 
   yield loadFrameScripts();
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 4),
     waitForGraphRendered(panelWin, 4, 0)
   ]);
 
   let nodeIds = actors.map(actor => actor.actorID);
   let types = [
     "AudioDestinationNode", "MediaElementAudioSourceNode",
     "MediaStreamAudioSourceNode", "MediaStreamAudioDestinationNode"
   ];
 
-  let defaults = yield Promise.all(types.map(type => nodeDefaultValues(type)));
+  let defaults = yield promise.all(types.map(type => nodeDefaultValues(type)));
 
   for (let i = 0; i < types.length; i++) {
     click(panelWin, findGraphNode(panelWin, nodeIds[i]));
     yield waitForInspectorRender(panelWin, EVENTS);
     checkVariableView(gVars, 0, defaults[i], types[i]);
   }
 
   // Reset permissions on getUserMedia
--- a/devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js
@@ -11,17 +11,17 @@ add_task(function* () {
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, PropertiesView } = panelWin;
   let gVars = PropertiesView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 3),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   click(panelWin, findGraphNode(panelWin, nodeIds[2]));
   yield waitForInspectorRender(panelWin, EVENTS);
   checkVariableView(gVars, 0, {
--- a/devtools/client/webaudioeditor/test/browser_wa_properties-view-params.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_properties-view-params.js
@@ -13,29 +13,29 @@ add_task(function* () {
   let gVars = PropertiesView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
   yield loadFrameScripts();
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     getN(gFront, "create-node", 15),
     waitForGraphRendered(panelWin, 15, 0)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
   let types = [
     "AudioDestinationNode", "AudioBufferSourceNode", "ScriptProcessorNode",
     "AnalyserNode", "GainNode", "DelayNode", "BiquadFilterNode", "WaveShaperNode",
     "PannerNode", "ConvolverNode", "ChannelSplitterNode", "ChannelMergerNode",
     "DynamicsCompressorNode", "OscillatorNode"
   ];
 
-  let defaults = yield Promise.all(types.map(type => nodeDefaultValues(type)));
+  let defaults = yield promise.all(types.map(type => nodeDefaultValues(type)));
 
   for (let i = 0; i < types.length; i++) {
     click(panelWin, findGraphNode(panelWin, nodeIds[i]));
     yield waitForInspectorRender(panelWin, EVENTS);
     checkVariableView(gVars, 0, defaults[i], types[i]);
   }
 
   yield teardown(target);
--- a/devtools/client/webaudioeditor/test/browser_wa_properties-view.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_properties-view.js
@@ -10,17 +10,17 @@ add_task(function* () {
   let { panelWin } = panel;
   let { gFront, $, $$, EVENTS, PropertiesView } = panelWin;
   let gVars = PropertiesView._propsView;
 
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   // Gain node
   click(panelWin, findGraphNode(panelWin, nodeIds[2]));
   yield waitForInspectorRender(panelWin, EVENTS);
--- a/devtools/client/webaudioeditor/test/browser_wa_reset-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_reset-01.js
@@ -47,17 +47,17 @@ add_task(function* () {
   is($("#content").hidden, false,
     "The tool's content should not be hidden anymore.");
 
   navigating = once(target, "will-navigate");
   started = once(gFront, "start-context");
 
   reload(target);
 
-  yield Promise.all([navigating, started]);
+  yield promise.all([navigating, started]);
   let rendered = waitForGraphRendered(panel.panelWin, 3, 2);
 
   is($("#reload-notice").hidden, true,
     "The 'reload this page' notice should be hidden after context found after reload.");
   is($("#waiting-notice").hidden, true,
     "The 'waiting for an audio context' notice should be hidden after context found after reload.");
   is($("#content").hidden, false,
     "The tool's content should reappear without closing and reopening the toolbox.");
--- a/devtools/client/webaudioeditor/test/browser_wa_reset-02.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_reset-02.js
@@ -8,28 +8,28 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $ } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   let { nodes, edges } = countGraphObjects(panelWin);
   is(nodes, 3, "should only be 3 nodes.");
   is(edges, 2, "should only be 2 edges.");
 
   reload(target);
 
-  [actors] = yield Promise.all([
+  [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
 
   ({ nodes, edges } = countGraphObjects(panelWin));
   is(nodes, 3, "after reload, should only be 3 nodes.");
   is(edges, 2, "after reload, should only be 2 edges.");
 
--- a/devtools/client/webaudioeditor/test/browser_wa_reset-03.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_reset-03.js
@@ -8,33 +8,33 @@
 
 add_task(function* () {
   let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
   let { panelWin } = panel;
   let { gFront, $, InspectorView } = panelWin;
 
   reload(target);
 
-  let [actors] = yield Promise.all([
+  let [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   let nodeIds = actors.map(actor => actor.actorID);
 
   yield clickGraphNode(panelWin, nodeIds[1], true);
   ok(InspectorView.isVisible(), "InspectorView visible after selecting a node.");
   is(InspectorView.getCurrentAudioNode().id, nodeIds[1], "InspectorView has correct node set.");
 
   /**
    * Reload
    */
 
   reload(target);
 
-  [actors] = yield Promise.all([
+  [actors] = yield promise.all([
     get3(gFront, "create-node"),
     waitForGraphRendered(panelWin, 3, 2)
   ]);
   nodeIds = actors.map(actor => actor.actorID);
 
   ok(!InspectorView.isVisible(), "InspectorView hidden on start.");
   is(InspectorView.getCurrentAudioNode(), null,
     "InspectorView has no current node set on reset.");
--- a/devtools/client/webaudioeditor/test/browser_wa_reset-04.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_reset-04.js
@@ -49,17 +49,17 @@ add_task(function* () {
   is($("#content").hidden, true,
     "The tool's content should still be hidden.");
 
   navigating = once(target, "will-navigate");
   let started = once(gFront, "start-context");
 
   reload(target);
 
-  yield Promise.all([navigating, started]);
+  yield promise.all([navigating, started]);
 
   is($("#reload-notice").hidden, true,
     "The 'reload this page' notice should be hidden after reloading the frame.");
   is($("#waiting-notice").hidden, true,
     "The 'waiting for an audio context' notice should be hidden after reloading the frame.");
   is($("#content").hidden, false,
     "The tool's content should appear after reload.");
 
--- a/devtools/client/webaudioeditor/test/browser_webaudio-actor-automation-event.js
+++ b/devtools/client/webaudioeditor/test/browser_webaudio-actor-automation-event.js
@@ -14,17 +14,17 @@ add_task(function* () {
     ["setValueAtTime", 0.2, 0],
     ["linearRampToValueAtTime", 1, 0.3],
     ["exponentialRampToValueAtTime", 0.75, 0.6],
     ["setValueCurveAtTime", [-1, 0, 1], 0.7, 0.3],
   ];
 
   front.on("automation-event", onAutomationEvent);
 
-  let [_, __, [destNode, oscNode, gainNode], [connect1, connect2]] = yield Promise.all([
+  let [_, __, [destNode, oscNode, gainNode], [connect1, connect2]] = yield promise.all([
     front.setup({ reload: true }),
     once(front, "start-context"),
     get3(front, "create-node"),
     get2(front, "connect-node")
   ]);
 
   is(events.length, 4, "correct number of events fired");
 
--- a/devtools/client/webaudioeditor/test/browser_webaudio-actor-connect-param.js
+++ b/devtools/client/webaudioeditor/test/browser_webaudio-actor-connect-param.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test the `connect-param` event on the web audio actor.
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(CONNECT_PARAM_URL);
-  let [, , [destNode, carrierNode, modNode, gainNode], , connectParam] = yield Promise.all([
+  let [, , [destNode, carrierNode, modNode, gainNode], , connectParam] = yield promise.all([
     front.setup({ reload: true }),
     once(front, "start-context"),
     getN(front, "create-node", 4),
     get2(front, "connect-node"),
     once(front, "connect-param")
   ]);
 
   info(connectParam);
--- a/devtools/client/webaudioeditor/test/browser_webaudio-actor-destroy-node.js
+++ b/devtools/client/webaudioeditor/test/browser_webaudio-actor-destroy-node.js
@@ -3,17 +3,17 @@
 
 /**
  * Test `destroy-node` event on WebAudioActor.
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(DESTROY_NODES_URL);
 
-  let [, , created] = yield Promise.all([
+  let [, , created] = yield promise.all([
     front.setup({ reload: true }),
     once(front, "start-context"),
     // Should create dest, gain, and oscillator node and 10
     // disposable buffer nodes
     getN(front, "create-node", 13)
   ]);
 
   let waitUntilDestroyed = getN(front, "destroy-node", 10);
--- a/devtools/client/webaudioeditor/test/browser_webaudio-actor-simple.js
+++ b/devtools/client/webaudioeditor/test/browser_webaudio-actor-simple.js
@@ -2,17 +2,17 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Test basic communication of Web Audio actor
  */
 
 add_task(function* () {
   let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
-  let [_, __, [destNode, oscNode, gainNode], [connect1, connect2]] = yield Promise.all([
+  let [_, __, [destNode, oscNode, gainNode], [connect1, connect2]] = yield promise.all([
     front.setup({ reload: true }),
     once(front, "start-context"),
     get3(front, "create-node"),
     get2(front, "connect-node")
   ]);
 
   is(destNode.type, "AudioDestinationNode", "WebAudioActor:create-node returns AudioNodeActor for AudioDestination");
   is(oscNode.type, "OscillatorNode", "WebAudioActor:create-node returns AudioNodeActor");
--- a/devtools/client/webaudioeditor/test/head.js
+++ b/devtools/client/webaudioeditor/test/head.js
@@ -7,17 +7,17 @@ var { classes: Cc, interfaces: Ci, utils
 var { require } = Cu.import("resource://devtools/shared/Loader.jsm", {});
 var { Task } = require("devtools/shared/task");
 var Services = require("Services");
 var { gDevTools } = require("devtools/client/framework/devtools");
 var { TargetFactory } = require("devtools/client/framework/target");
 var { DebuggerServer } = require("devtools/server/main");
 var { generateUUID } = Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator);
 
-var Promise = require("promise");
+var promise = require("promise");
 var Services = require("Services");
 var { WebAudioFront } = require("devtools/shared/fronts/webaudio");
 var DevToolsUtils = require("devtools/shared/DevToolsUtils");
 var audioNodes = require("devtools/server/actors/utils/audionodes.json");
 var mm = null;
 
 const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js";
 const EXAMPLE_URL = "http://example.com/browser/devtools/client/webaudioeditor/test/";
@@ -59,17 +59,17 @@ registerCleanupFunction(() => {
 function loadFrameScripts() {
   mm = gBrowser.selectedBrowser.messageManager;
   mm.loadFrameScript(FRAME_SCRIPT_UTILS_URL, false);
 }
 
 function addTab(aUrl, aWindow) {
   info("Adding tab: " + aUrl);
 
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
   let targetWindow = aWindow || window;
   let targetBrowser = targetWindow.gBrowser;
 
   targetWindow.focus();
   let tab = targetBrowser.selectedTab = targetBrowser.addTab(aUrl);
   let linkedBrowser = tab.linkedBrowser;
 
   linkedBrowser.addEventListener("load", function onLoad() {
@@ -79,17 +79,17 @@ function addTab(aUrl, aWindow) {
   }, true);
 
   return deferred.promise;
 }
 
 function removeTab(aTab, aWindow) {
   info("Removing tab.");
 
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
   let targetWindow = aWindow || window;
   let targetBrowser = targetWindow.gBrowser;
   let tabContainer = targetBrowser.tabContainer;
 
   tabContainer.addEventListener("TabClose", function onClose(aEvent) {
     tabContainer.removeEventListener("TabClose", onClose, false);
     info("Tab removed and finished closing.");
     deferred.resolve();
@@ -97,17 +97,17 @@ function removeTab(aTab, aWindow) {
 
   targetBrowser.removeTab(aTab);
   return deferred.promise;
 }
 
 function once(aTarget, aEventName, aUseCapture = false) {
   info("Waiting for event: '" + aEventName + "' on " + aTarget + ".");
 
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
 
   for (let [add, remove] of [
     ["on", "off"], // Use event emitter before DOM events for consistency
     ["addEventListener", "removeEventListener"],
     ["addListener", "removeListener"]
   ]) {
     if ((add in aTarget) && (remove in aTarget)) {
       aTarget[add](aEventName, function onEvent(...aArgs) {
@@ -202,17 +202,17 @@ function teardown(aTarget) {
 // and we can't yield them in a chain without missing actors, this allows
 // us to listen for `n` events and return a promise resolving to them.
 //
 // Takes a `front` object that is an event emitter, the number of
 // programs that should be listened to and waited on, and an optional
 // `onAdd` function that calls with the entire actors array on program link
 function getN(front, eventName, count, spread) {
   let actors = [];
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
   front.on(eventName, function onEvent(...args) {
     let actor = args[0];
     if (actors.length !== count) {
       actors.push(spread ? args : actor);
     }
     if (actors.length === count) {
       front.off(eventName, onEvent);
       deferred.resolve(actors);
@@ -230,17 +230,17 @@ function get3Spread(front, eventName) { 
 function getNSpread(front, eventName, count) { return getN(front, eventName, count, true); }
 
 /**
  * Waits for the UI_GRAPH_RENDERED event to fire, but only
  * resolves when the graph was rendered with the correct count of
  * nodes and edges.
  */
 function waitForGraphRendered(front, nodeCount, edgeCount, paramEdgeCount) {
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
   let eventName = front.EVENTS.UI_GRAPH_RENDERED;
   front.on(eventName, function onGraphRendered(_, nodes, edges, pEdges) {
     let paramEdgesDone = paramEdgeCount != null ? paramEdgeCount === pEdges : true;
     if (nodes === nodeCount && edges === edgeCount && paramEdgesDone) {
       front.off(eventName, onGraphRendered);
       deferred.resolve();
     }
   });
@@ -281,17 +281,17 @@ function checkVariableView(view, index, 
     else {
       is(value, hash[variable],
         "Correct property value of " + hash[variable] + " for " + variable + " " + description);
     }
   });
 }
 
 function modifyVariableView(win, view, index, prop, value) {
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
   let scope = view.getScopeAtIndex(index);
   let aVar = scope.get(prop);
   scope.expand();
 
   win.on(win.EVENTS.UI_SET_PARAM, handleSetting);
   win.on(win.EVENTS.UI_SET_PARAM_ERROR, handleSetting);
 
   // Focus and select the variable to begin editing
@@ -351,45 +351,44 @@ function command(button) {
 function isVisible(element) {
   return !element.getAttribute("hidden");
 }
 
 /**
  * Used in debugging, returns a promise that resolves in `n` milliseconds.
  */
 function wait(n) {
-  let { promise, resolve } = Promise.defer();
+  let { result, resolve } = promise.defer();
   setTimeout(resolve, n);
   info("Waiting " + n / 1000 + " seconds.");
-  return promise;
+  return result;
 }
 
 /**
  * Clicks a graph node based on actorID or passing in an element.
  * Returns a promise that resolves once UI_INSPECTOR_NODE_SET is fired and
  * the tabs have rendered, completing all RDP requests for the node.
  */
 function clickGraphNode(panelWin, el, waitForToggle = false) {
-  let { promise, resolve } = Promise.defer();
   let promises = [
     once(panelWin, panelWin.EVENTS.UI_INSPECTOR_NODE_SET),
     once(panelWin, panelWin.EVENTS.UI_PROPERTIES_TAB_RENDERED),
     once(panelWin, panelWin.EVENTS.UI_AUTOMATION_TAB_RENDERED)
   ];
 
   if (waitForToggle) {
     promises.push(once(panelWin, panelWin.EVENTS.UI_INSPECTOR_TOGGLED));
   }
 
   // Use `el` as the element if it is one, otherwise
   // assume it's an ID and find the related graph node
   let element = el.tagName ? el : findGraphNode(panelWin, el);
   click(panelWin, element);
 
-  return Promise.all(promises);
+  return promise.all(promises);
 }
 
 /**
  * Returns the primitive value of a grip's value, or the
  * original form that the string grip.type comes from.
  */
 function getGripValue(value) {
   if (~["boolean", "string", "number"].indexOf(typeof value)) {
@@ -462,28 +461,28 @@ function checkAutomationValue(values, ti
     return values[values.length - 1].value;
   }
 }
 
 /**
  * Wait for all inspector tabs to complete rendering.
  */
 function waitForInspectorRender(panelWin, EVENTS) {
-  return Promise.all([
+  return promise.all([
     once(panelWin, EVENTS.UI_PROPERTIES_TAB_RENDERED),
     once(panelWin, EVENTS.UI_AUTOMATION_TAB_RENDERED)
   ]);
 }
 
 /**
  * Takes a string `script` and evaluates it directly in the content
  * in potentially a different process.
  */
 function evalInDebuggee(script) {
-  let deferred = Promise.defer();
+  let deferred = promise.defer();
 
   if (!mm) {
     throw new Error("`loadFrameScripts()` must be called when using MessageManager.");
   }
 
   let id = generateUUID().toString();
   mm.sendAsyncMessage("devtools:test:eval", { script: script, id: id });
   mm.addMessageListener("devtools:test:eval:response", handler);
--- a/devtools/server/main.js
+++ b/devtools/server/main.js
@@ -15,17 +15,17 @@ var Services = require("Services");
 var { ActorPool, OriginalLocation, RegisteredActorFactory,
       ObservedActorFactory } = require("devtools/server/actors/common");
 var { LocalDebuggerTransport, ChildDebuggerTransport, WorkerDebuggerTransport } =
   require("devtools/shared/transport/transport");
 var DevToolsUtils = require("devtools/shared/DevToolsUtils");
 var { dumpn, dumpv } = DevToolsUtils;
 var EventEmitter = require("devtools/shared/event-emitter");
 var Debugger = require("Debugger");
-var Promise = require("promise");
+var promise = require("promise");
 
 DevToolsUtils.defineLazyGetter(this, "DebuggerSocket", () => {
   let { DebuggerSocket } = require("devtools/shared/security/socket");
   return DebuggerSocket;
 });
 DevToolsUtils.defineLazyGetter(this, "Authentication", () => {
   return require("devtools/shared/security/auth");
 });
@@ -777,17 +777,17 @@ var DebuggerServer = {
                              "message-manager-close", false);
 
     events.on(aConnection, "closed", onClose);
 
     return deferred.promise;
   },
 
   connectToWorker: function (aConnection, aDbg, aId, aOptions) {
-    return new Promise((resolve, reject) => {
+    return new promise((resolve, reject) => {
       // Step 1: Ensure the worker debugger is initialized.
       if (!aDbg.isInitialized) {
         aDbg.initialize("resource://devtools/server/worker.js");
 
         // Create a listener for rpc requests from the worker debugger. Only do
         // this once, when the worker debugger is first initialized, rather than
         // for each connection.
         let listener = {
@@ -796,17 +796,17 @@ var DebuggerServer = {
           },
 
           onMessage: (message) => {
             let packet = JSON.parse(message);
             if (packet.type !== "rpc") {
               return;
             }
 
-            Promise.resolve().then(() => {
+            promise.resolve().then(() => {
               let method = {
                 "fetch": DevToolsUtils.fetch,
               }[packet.method];
               if (!method) {
                 throw Error("Unknown method: " + packet.method);
               }
 
               return method.apply(undefined, packet.params);
@@ -916,19 +916,19 @@ var DebuggerServer = {
    *        The name of the setup helper exported by the above module
    *        (setup helper signature: function ({mm}) { ... })
    * @param waitForEval (optional)
    *        If true, the returned promise only resolves once code in child
    *        is evaluated
    */
   setupInChild: function ({ module, setupChild, args, waitForEval }) {
     if (this.isInChildProcess || this._childMessageManagers.size == 0) {
-      return Promise.resolve();
+      return promise.resolve();
     }
-    let deferred = Promise.defer();
+    let deferred = promise.defer();
 
     // If waitForEval is set, pass a unique id and expect child.js to send
     // a message back once the code in child is evaluated.
     if (typeof (waitForEval) != "boolean") {
       waitForEval = false;
     }
     let count = this._childMessageManagers.size;
     let id = waitForEval ? generateUUID().toString() : null;
@@ -953,17 +953,17 @@ var DebuggerServer = {
         args: args,
         id: id,
       });
     });
 
     if (waitForEval) {
       return deferred.promise;
     } else {
-      return Promise.resolve();
+      return promise.resolve();
     }
   },
 
   /**
    * Live list of all currenctly attached child's message managers.
    */
   _childMessageManagers: new Set(),
 
--- a/devtools/shared/async-storage.js
+++ b/devtools/shared/async-storage.js
@@ -36,17 +36,17 @@
  * store to be strings.  So if you need to save multiple values and want to
  * retrieve them together, in a single asynchronous operation, just group the
  * values into a single object. The properties of this object may not include
  * DOM elements, but they may include things like Blobs and typed arrays.
  *
  */
 const {Cc, Ci, Cu, Cr} = require("chrome");
 const {indexedDB} = require("sdk/indexed-db");
-const Promise = require("promise");
+const promise = require("promise");
 
 module.exports = (function () {
   "use strict";
 
   var DBNAME = "devtools-async-storage";
   var DBVERSION = 1;
   var STORENAME = "keyvaluepairs";
   var db = null;
@@ -70,17 +70,17 @@ module.exports = (function () {
         var transaction = db.transaction(STORENAME, type);
         var store = transaction.objectStore(STORENAME);
         onsuccess(store);
       };
     }
   }
 
   function getItem(key) {
-    return new Promise((resolve, reject) => {
+    return new promise((resolve, reject) => {
       var req;
       withStore("readonly", (store) => {
         store.transaction.oncomplete = function onComplete() {
           var value = req.result;
           if (value === undefined) {
             value = null;
           }
           resolve(value);
@@ -89,68 +89,68 @@ module.exports = (function () {
         req.onerror = function getItemOnError() {
           reject("Error in asyncStorage.getItem(): ", req.error.name);
         };
       }, reject);
     });
   }
 
   function setItem(key, value) {
-    return new Promise((resolve, reject) => {
+    return new promise((resolve, reject) => {
       withStore("readwrite", (store) => {
         store.transaction.oncomplete = resolve;
         var req = store.put(value, key);
         req.onerror = function setItemOnError() {
           reject("Error in asyncStorage.setItem(): ", req.error.name);
         };
       }, reject);
     });
   }
 
   function removeItem(key) {
-    return new Promise((resolve, reject) => {
+    return new promise((resolve, reject) => {
       withStore("readwrite", (store) => {
         store.transaction.oncomplete = resolve;
         var req = store.delete(key);
         req.onerror = function removeItemOnError() {
           reject("Error in asyncStorage.removeItem(): ", req.error.name);
         };
       }, reject);
     });
   }
 
   function clear() {
-    return new Promise((resolve, reject) => {
+    return new promise((resolve, reject) => {
       withStore("readwrite", (store) => {
         store.transaction.oncomplete = resolve;
         var req = store.clear();
         req.onerror = function clearOnError() {
           reject("Error in asyncStorage.clear(): ", req.error.name);
         };
       }, reject);
     });
   }
 
   function length() {
-    return new Promise((resolve, reject) => {
+    return new promise((resolve, reject) => {
       var req;
       withStore("readonly", (store) => {
         store.transaction.oncomplete = function onComplete() {
           resolve(req.result);
         };
         req = store.count();
         req.onerror = function lengthOnError() {
           reject("Error in asyncStorage.length(): ", req.error.name);
         };
       }, reject);
     });
   }
 
   function key(n) {
-    return new Promise((resolve, reject) => {
+    return new promise((resolve, reject) => {
       if (n < 0) {
         resolve(null);
         return;
       }
 
       var req;
       withStore("readonly", (store) => {
         store.transaction.oncomplete = function onComplete() {
--- a/devtools/shared/async-utils.js
+++ b/devtools/shared/async-utils.js
@@ -10,17 +10,17 @@
  * function. When the function returns, the promise is resolved with the
  * returned value. If it throws the promise rejects with the thrown error.
  *
  * See Task documentation at https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Task.jsm.
  */
 
 var {Cu} = require("chrome");
 var {Task} = require("devtools/shared/task");
-var Promise = require("promise");
+var promise = require("promise");
 
 /**
  * Create an async function that only executes once per instance of an object.
  * Once called on a given object, the same promise will be returned for any
  * future calls for that object.
  *
  * @param Function func
  *        The generator function that to wrap as an async function.
@@ -48,17 +48,17 @@ exports.asyncOnce = function asyncOnce(f
  *         The name of the event type to listen for
  * @param  Boolean useCapture
  *         Should we initiate the capture phase?
  * @return Promise
  *         The promise resolved with the event object when the event first
  *         happens
  */
 exports.listenOnce = function listenOnce(element, event, useCapture) {
-  return new Promise(function (resolve, reject) {
+  return new promise(function (resolve, reject) {
     var onEvent = function (ev) {
       element.removeEventListener(event, onEvent, useCapture);
       resolve(ev);
     };
     element.addEventListener(event, onEvent, useCapture);
   });
 };
 
@@ -75,17 +75,17 @@ exports.listenOnce = function listenOnce
  *        Additional arguments to pass to the method.
  * @return Promise
  *         The promise for the result. If the callback is called with only one
  *         argument, it is used as the resolution value. If there's multiple
  *         arguments, an array containing the arguments is the resolution value.
  *         If the method throws, the promise is rejected with the thrown value.
  */
 function promisify(obj, func, args) {
-  return new Promise(resolve => {
+  return new promise(resolve => {
     args.push((...results) => {
       resolve(results.length > 1 ? results : results[0]);
     });
     func.apply(obj, args);
   });
 }
 
 /**
--- a/devtools/shared/defer.js
+++ b/devtools/shared/defer.js
@@ -1,25 +1,28 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 // See bug 1273941 to understand this choice of promise.
-const Promise = require("promise");
+// The name is lower-case in accordance with the devtools convention;
+// so we turn off the eslint warning instead.
+/* eslint-disable new-cap */
+const promise = require("promise");
 
 /**
  * Returns a deferred object, with a resolve and reject property.
  * https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Deferred
  */
 module.exports = function defer() {
   let resolve, reject;
-  let promise = new Promise(function () {
+  let result = new promise(function () {
     resolve = arguments[0];
     reject = arguments[1];
   });
   return {
     resolve: resolve,
     reject: reject,
-    promise: promise
+    promise: result
   };
 };
--- a/devtools/shared/task.js
+++ b/devtools/shared/task.js
@@ -82,17 +82,17 @@
  *   spawn a task from it, regardless of whether it is an asynchronous generator
  *   or a synchronous function.  This comes in handy when iterating over
  *   function lists where some items have been converted to tasks and some not.
  */
 
 ////////////////////////////////////////////////////////////////////////////////
 //// Globals
 
-const Promise = require("promise");
+const promise = require("promise");
 const defer = require("devtools/shared/defer");
 
 // The following error types are considered programmer errors, which should be
 // reported (possibly redundantly) so as to let programmers fix their code.
 const ERRORS_TO_REPORT = ["EvalError", "RangeError", "ReferenceError",
                           "TypeError"];
 
 /**
@@ -231,29 +231,29 @@ function createAsyncFunction(task) {
           "the Task and return its promise.");
       }
 
       try {
         // Let's call into the function ourselves.
         result = task.apply(this, arguments);
       } catch (ex) {
         if (ex instanceof Task.Result) {
-          return Promise.resolve(ex.value);
+          return promise.resolve(ex.value);
         }
-        return Promise.reject(ex);
+        return promise.reject(ex);
       }
     }
 
     if (isGenerator(result)) {
       // This is an iterator resulting from calling a generator function.
       return new TaskImpl(result).deferred.promise;
     }
 
     // Just propagate the given value to the caller as a resolved promise.
-    return Promise.resolve(result);
+    return promise.resolve(result);
   };
 
   asyncFunction.isAsyncFunction = true;
 
   return asyncFunction;
 }
 
 ////////////////////////////////////////////////////////////////////////////////