summaryrefslogtreecommitdiff
path: root/data/extensions/jsr@javascriptrestrictor/nscl/common/log.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jsr@javascriptrestrictor/nscl/common/log.js')
-rw-r--r--data/extensions/jsr@javascriptrestrictor/nscl/common/log.js33
1 files changed, 21 insertions, 12 deletions
diff --git a/data/extensions/jsr@javascriptrestrictor/nscl/common/log.js b/data/extensions/jsr@javascriptrestrictor/nscl/common/log.js
index b71fbc5..e754e66 100644
--- a/data/extensions/jsr@javascriptrestrictor/nscl/common/log.js
+++ b/data/extensions/jsr@javascriptrestrictor/nscl/common/log.js
@@ -1,7 +1,7 @@
/*
* NoScript Commons Library
* Reusable building blocks for cross-browser security/privacy WebExtensions.
- * Copyright (C) 2020-2023 Giorgio Maone <https://maone.net>
+ * Copyright (C) 2020-2024 Giorgio Maone <https://maone.net>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
@@ -18,20 +18,29 @@
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
+"use strict";
{
- let PREFIX = typeof browser === "object" && typeof importScripts === "undefined"
+ const PREFIX = typeof browser === "object" && typeof importScripts === "undefined"
? `[${browser.runtime.getManifest().name}]` : '';
- let debugCount = 0;
+ const startupTime = Date.now();
+ let lastDebugTime = startupTime;
+ let ordinal = 1;
- function log(msg, ...rest) {
- console.log(`${PREFIX} ${msg}`, ...rest);
- }
+ const getStack = () => new Error().stack.replace(/^(?:Error.*\n)?(?:.*\n){2}/, "");
- function debug(msg, ...rest) {
- }
-
- function error(e, msg, ...rest) {
- console.error(`${PREFIX} ${msg}`, ...rest, e, e.message, e.stack);
- }
+ Object.assign(globalThis, {
+ log(msg, ...rest) {
+ console.log(`${PREFIX} ${msg}`, ...rest);
+ },
+ debug(msg, ...rest) {
+ const ts = Date.now();
+ const sinceStartup = ts - startupTime;
+ const elapsed = ts - lastDebugTime;
+ lastDebugTime = ts;
+ },
+ error(e, msg, ...rest) {
+ console.error(e, `${PREFIX} ${msg}`, ...rest, getStack());
+ },
+ });
}