mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 08:07:59 +01:00
Manually add list of global object properties to global objects.
--HG-- extra : rebase_source : 53318cbfe4a044e6bbf9facb1ce6bc5933ba6fd9
This commit is contained in:
@@ -347,10 +347,16 @@ const CompletionContext = Class("CompletionContext", {
|
||||
this.lastActivated = this.top.runCount;
|
||||
}
|
||||
if (!this.itemCache[this.key]) {
|
||||
try {
|
||||
let res = this._generate.call(this);
|
||||
if (res != null)
|
||||
this.itemCache[this.key] = res;
|
||||
}
|
||||
catch (e) {
|
||||
dactyl.reportError(e);
|
||||
this.message = "Error: " + e;
|
||||
}
|
||||
}
|
||||
return this.itemCache[this.key];
|
||||
},
|
||||
set generate(arg) {
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
"use strict";
|
||||
|
||||
(function () {
|
||||
const modules = {};
|
||||
const jsmodules = {}
|
||||
const modules = { __proto__: jsmodules };
|
||||
const BASE = "chrome://dactyl/content/";
|
||||
|
||||
modules.modules = modules;
|
||||
@@ -27,7 +28,7 @@
|
||||
}
|
||||
}
|
||||
try {
|
||||
Components.utils.import("resource://dactyl/" + script + ".jsm", modules);
|
||||
Components.utils.import("resource://dactyl/" + script + ".jsm", jsmodules);
|
||||
}
|
||||
catch (e) {
|
||||
dump("dactyl: Loading script " + script + ": " + e.result + " " + e + "\n");
|
||||
|
||||
@@ -39,7 +39,8 @@ const JavaScript = Module("javascript", {
|
||||
return;
|
||||
|
||||
let seen = {};
|
||||
for (let key in properties(obj, !toplevel)) {
|
||||
let globals = values(toplevel && Class.objectGlobal(obj) === obj ? JavaScript.globalNames : []);
|
||||
for (let key in iterAll(globals, properties(obj, !toplevel))) {
|
||||
set.add(seen, key);
|
||||
yield key;
|
||||
}
|
||||
@@ -587,6 +588,17 @@ const JavaScript = Module("javascript", {
|
||||
*/
|
||||
completers: {},
|
||||
|
||||
/**
|
||||
* A list of properties of the global object which are not
|
||||
* enumerable by any standard method.
|
||||
*/
|
||||
globalNames: ["Array", "Boolean", "Date", "Error", "EvalError",
|
||||
"Function", "Infinity", "Math", "NaN", "Number", "Object",
|
||||
"RangeError", "ReferenceError", "RegExp", "String",
|
||||
"SyntaxError", "TypeError", "URIError", "decodeURI",
|
||||
"decodeURIComponent", "encodeURI", "encodeURIComponent", "eval",
|
||||
"isFinite", "isNaN", "parseFloat", "parseInt", "undefined"],
|
||||
|
||||
/**
|
||||
* Installs argument string completers for a set of functions.
|
||||
* The second argument is an array of functions (or null
|
||||
|
||||
@@ -734,8 +734,9 @@ function Module(name, prototype) {
|
||||
defineModule.modules.push(instance);
|
||||
return module;
|
||||
}
|
||||
|
||||
if (Cu.getGlobalForObject)
|
||||
Module.callerGlobal = function (caller) {
|
||||
Class.objectGlobal = function (caller) {
|
||||
try {
|
||||
return Cu.getGlobalForObject(caller);
|
||||
}
|
||||
@@ -744,7 +745,7 @@ if (Cu.getGlobalForObject)
|
||||
}
|
||||
};
|
||||
else
|
||||
Module.callerGlobal = function (caller) {
|
||||
Class.objectGlobal = function (caller) {
|
||||
while (caller.__parent__)
|
||||
caller = caller.__parent__;
|
||||
return caller;
|
||||
|
||||
@@ -103,7 +103,7 @@ const Sanitizer = Module("sanitizer", tmp.Sanitizer, {
|
||||
function (key, event, arg) {
|
||||
if (event == name)
|
||||
params.action.apply(params, arg);
|
||||
}, Module.callerGlobal(params.action));
|
||||
}, Class.objectGlobal(params.action));
|
||||
|
||||
if (params.privateEnter || params.privateLeave)
|
||||
storage.addObserver("private-mode",
|
||||
@@ -111,7 +111,7 @@ const Sanitizer = Module("sanitizer", tmp.Sanitizer, {
|
||||
let meth = params[arg ? "privateEnter" : "privateLeave"];
|
||||
if (meth)
|
||||
meth.call(params);
|
||||
}, Module.callerGlobal(params.action));
|
||||
}, Class.objectGlobal(params.action));
|
||||
},
|
||||
|
||||
observe: {
|
||||
|
||||
Reference in New Issue
Block a user