summaryrefslogtreecommitdiffstats
path: root/devtools/shared/platform/content/stack.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/platform/content/stack.js')
-rw-r--r--devtools/shared/platform/content/stack.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/devtools/shared/platform/content/stack.js b/devtools/shared/platform/content/stack.js
new file mode 100644
index 000000000..87c7c4111
--- /dev/null
+++ b/devtools/shared/platform/content/stack.js
@@ -0,0 +1,49 @@
+/* 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/. */
+
+// A few wrappers for stack-manipulation. This version of the module
+// is used in content code. Note that this particular copy of the
+// file can only be loaded via require(), because Cu.import doesn't
+// exist in the content case. So, we don't need the code to handle
+// both require and import here.
+
+"use strict";
+
+/**
+ * Looks like Cu.callFunctionWithAsyncStack, but just calls the callee.
+ */
+function callFunctionWithAsyncStack(callee, stack, id) {
+ return callee();
+}
+
+/**
+ * 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 stack = new Error().stack.split("\n");
+ // Add one here to skip this function.
+ return stack[n + 1];
+}
+
+/**
+ * Return a stack object that can be serialized and, when
+ * deserialized, passed to callFunctionWithAsyncStack.
+ */
+function getStack() {
+ // There's no reason for this to do anything fancy, since it's only
+ // used to pass back into callFunctionWithAsyncStack, which we can't
+ // implement.
+ return null;
+}
+
+exports.callFunctionWithAsyncStack = callFunctionWithAsyncStack;
+exports.describeNthCaller = describeNthCaller;
+exports.getStack = getStack;