1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-02-08 18:55:46 +01:00

Give *.penta plugins their own JS sandboxen.

--HG--
branch : key-processing
This commit is contained in:
Kris Maglione
2011-01-26 14:35:58 -05:00
parent b051e4edc2
commit 787f063692
5 changed files with 18 additions and 6 deletions

View File

@@ -1214,6 +1214,15 @@ update(iter, {
func.call(self, val);
},
indexOf: function indexOf(iter, elem) {
let i = 0;
for (let item in iter) {
if (item == elem)
return i;
i++;
}
},
/**
* Returns the array that results from applying *func* to each property of
* *obj*.

View File

@@ -185,8 +185,10 @@ var IO = Module("io", {
else if (/\.css$/.test(filename))
styles.registerSheet(uri.spec, false, true);
else {
if (!(file.path in plugins))
plugins[file.path] = modules.newContext(modules.userContext);
modules.commands.execute(file.read(), null, silent || "loud", null,
{ file: file.path, line: 1 });
{ file: file.path, line: 1, context: plugins[file.path] });
}
if (this._scriptNames.indexOf(file.path) == -1)

View File

@@ -478,7 +478,7 @@ var JavaScript = Module("javascript", {
if (obj.length) {
let func = obj[0][0][funcName];
if (callable(func)) {
let [, prefix, args] = /^(function .*?)\((.*)?\)/.exec(Function.prototype.toString.call(func));
let [, prefix, args] = /^(function .*?)\((.*?)\)/.exec(Function.prototype.toString.call(func));
let n = this._get(i).comma.length;
args = template.map(Iterator(args.split(", ")),
function ([i, arg]) <span highlight={i == n ? "Filter" : ""}>{arg}</span>,