Bug 1386584 - Remove JSM boilerplate in devtools/shared/platform/chrome/stack;r=ochameau draft
authorJulian Descottes <jdescottes@mozilla.com>
Wed, 02 Aug 2017 13:24:14 +0200
changeset 619667 00cb0d2d0732b55ca39d22adc819d9aabb547a5a
parent 619602 ef2f8362bf2de2dd30d940dbe9621b920252dfee
child 640481 c8190c250555b977271ffa0ddeaf19cd6182be93
push id71769
push userjdescottes@mozilla.com
push dateWed, 02 Aug 2017 11:25:17 +0000
reviewersochameau
bugs1386584
milestone57.0a1
Bug 1386584 - Remove JSM boilerplate in devtools/shared/platform/chrome/stack;r=ochameau MozReview-Commit-ID: EgbKH70NsM9
devtools/shared/platform/chrome/stack.js
--- a/devtools/shared/platform/chrome/stack.js
+++ b/devtools/shared/platform/chrome/stack.js
@@ -2,74 +2,60 @@
  * 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/. */
 
 // A few wrappers for stack-manipulation.  This version of the module
 // is used in chrome code.
 
 "use strict";
 
-(function (factory) {
-  // This file might be require()d, but might also be loaded via
-  // Cu.import.  Account for the differences here.
-  if (this.module && module.id.indexOf("stack") >= 0) {
-    // require.
-    const {components, Cu} = require("chrome");
-    factory.call(this, components, Cu, exports);
-  } else {
-    // Cu.import.
-    this.isWorker = false;
-    factory.call(this, Components, Components.utils, this);
-    this.EXPORTED_SYMBOLS = ["callFunctionWithAsyncStack", "describeNthCaller",
-                             "getStack"];
+const { Cu, components } = require("chrome");
+
+/**
+ * Return a description of the Nth caller, suitable for logging.
+ *
+ * @param {Number} n the caller to describe
+ * @return {String} a description of the nth caller.
+ */
+function describeNthCaller(n) {
+  if (isWorker) {
+    return "";
   }
-}).call(this, function (components, Cu, exports) {
-  /**
-   * Return a description of the Nth caller, suitable for logging.
-   *
-   * @param {Number} n the caller to describe
-   * @return {String} a description of the nth caller.
-   */
-  function describeNthCaller(n) {
-    if (isWorker) {
-      return "";
-    }
 
-    let caller = components.stack;
-    // Do one extra iteration to skip this function.
-    while (n >= 0) {
-      --n;
-      caller = caller.caller;
-    }
-
-    let func = caller.name;
-    let file = caller.filename;
-    if (file.includes(" -> ")) {
-      file = caller.filename.split(/ -> /)[1];
-    }
-    let path = file + ":" + caller.lineNumber;
-
-    return func + "() -> " + path;
+  let caller = components.stack;
+  // Do one extra iteration to skip this function.
+  while (n >= 0) {
+    --n;
+    caller = caller.caller;
   }
 
-  /**
-   * Return a stack object that can be serialized and, when
-   * deserialized, passed to callFunctionWithAsyncStack.
-   */
-  function getStack() {
-    return components.stack.caller;
+  let func = caller.name;
+  let file = caller.filename;
+  if (file.includes(" -> ")) {
+    file = caller.filename.split(/ -> /)[1];
   }
+  let path = file + ":" + caller.lineNumber;
+
+  return func + "() -> " + path;
+}
 
-  /**
-   * Like Cu.callFunctionWithAsyncStack but handles the isWorker case
-   * -- |Cu| isn't defined in workers.
-   */
-  function callFunctionWithAsyncStack(callee, stack, id) {
-    if (isWorker) {
-      return callee();
-    }
-    return Cu.callFunctionWithAsyncStack(callee, stack, id);
+/**
+ * Return a stack object that can be serialized and, when
+ * deserialized, passed to callFunctionWithAsyncStack.
+ */
+function getStack() {
+  return components.stack.caller;
+}
+
+/**
+ * Like Cu.callFunctionWithAsyncStack but handles the isWorker case
+ * -- |Cu| isn't defined in workers.
+ */
+function callFunctionWithAsyncStack(callee, stack, id) {
+  if (isWorker) {
+    return callee();
   }
+  return Cu.callFunctionWithAsyncStack(callee, stack, id);
+}
 
-  exports.callFunctionWithAsyncStack = callFunctionWithAsyncStack;
-  exports.describeNthCaller = describeNthCaller;
-  exports.getStack = getStack;
-});
+exports.callFunctionWithAsyncStack = callFunctionWithAsyncStack;
+exports.describeNthCaller = describeNthCaller;
+exports.getStack = getStack;