1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 14:27:58 +01:00

Manually add list of global object properties to global objects.

--HG--
extra : rebase_source : 53318cbfe4a044e6bbf9facb1ce6bc5933ba6fd9
This commit is contained in:
Kris Maglione
2010-09-25 12:28:55 -04:00
parent 8f34359ab8
commit 0956c9a83b
5 changed files with 30 additions and 10 deletions

View File

@@ -347,9 +347,15 @@ const CompletionContext = Class("CompletionContext", {
this.lastActivated = this.top.runCount;
}
if (!this.itemCache[this.key]) {
let res = this._generate.call(this);
if (res != null)
this.itemCache[this.key] = res;
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];
},

View File

@@ -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");

View File

@@ -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

View File

@@ -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;

View File

@@ -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: {