Skip to content

Commit 5d1f3fa

Browse files
committed
feat: add strict metadata key
1 parent 06f671c commit 5d1f3fa

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

extension/Userscripts Extension/Functions.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,6 +1325,7 @@ func getCode(_ filenames: [String], _ isTop: Bool, _ strictMode: Bool)-> [String
13251325
let requires = metadata["require"] ?? []
13261326
let version = metadata["version"]?[0] ?? ""
13271327
let noframes = metadata["noframes"] != nil ? true : false
1328+
let strictValue = metadata["strict"]?[0] == "true" ? true : false
13281329
var scriptObject:[String: Any] = [
13291330
"description": description,
13301331
"excludes": excludes,
@@ -1341,6 +1342,7 @@ func getCode(_ filenames: [String], _ isTop: Bool, _ strictMode: Bool)-> [String
13411342
"resources": "",
13421343
"require": requires,
13431344
"run-at": runAt,
1345+
"strict": strictValue,
13441346
"version": version
13451347
]
13461348
// certain metadata keys use a different key name then the actual key name

extension/Userscripts Extension/Resources/content.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,10 +240,10 @@ function processJS(userscript) {
240240

241241
// preCode is the GM apis and boilerplate
242242
// requiredCode is whatever has be requested with `@require` tags
243-
function wrapCode(preCode, requiredCode, code, filename) {
243+
function wrapCode(preCode, requiredCode, code, strict = false, filename) {
244244
return `
245245
(function() {
246-
${data.strictMode ? "\"use strict\";" : ""}
246+
${(data.strictMode || strict) ? "\"use strict\";" : ""}
247247
${preCode}
248248
${requiredCode}
249249
(function() {
@@ -264,6 +264,7 @@ function injectJS(userscript) {
264264
userscript.preCode,
265265
userscript.requiredCode,
266266
userscript.code,
267+
userscript.scriptObject.strict,
267268
filename
268269
);
269270
const name = userscript.scriptObject.name;
@@ -466,6 +467,7 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
466467
item.preCode,
467468
item.requiredCode,
468469
item.code,
470+
item.scriptObject.strict,
469471
filename
470472
)
471473
});

0 commit comments

Comments
 (0)