]> git.donarmstrong.com Git - dactyl.git/blobdiff - common/modules/javascript.jsm
Import 1.0 supporting Firefox up to 14.*
[dactyl.git] / common / modules / javascript.jsm
index a4d1ab6bf435024c35d1cb68e0ce64bcaf133414..c33ca86930e8eb8bf36e229ff5955b7f47dfe649 100644 (file)
@@ -10,7 +10,8 @@ try {
 
 Components.utils.import("resource://dactyl/bootstrap.jsm");
 defineModule("javascript", {
-    exports: ["JavaScript", "javascript"]
+    exports: ["JavaScript", "javascript"],
+    require: ["util"]
 }, this);
 
 let isPrototypeOf = Object.prototype.isPrototypeOf;
@@ -53,9 +54,9 @@ var JavaScript = Module("javascript", {
 
     lazyInit: true,
 
-    newContext: function () this.modules.newContext(this.modules.userContext, true),
+    newContext: function () this.modules.newContext(this.modules.userContext, true, "Dactyl JS Temp Context"),
 
-    get completers() JavaScript.completers, // For backward compatibility
+    completers: Class.Memoize(function () Object.create(JavaScript.completers)),
 
     // Some object members are only accessible as function calls
     getKey: function (obj, key) {
@@ -550,7 +551,7 @@ var JavaScript = Module("javascript", {
                 }
                 catch (e) {}
                 if (!completer)
-                    completer = JavaScript.completers[funcName];
+                    completer = this.completers[funcName];
                 if (!completer)
                     return null;
 
@@ -765,10 +766,10 @@ var JavaScript = Module("javascript", {
                 let self = this;
                 let sandbox = true || isinstance(context, ["Sandbox"]);
 
-                this.context = modules.newContext(context, !sandbox);
+                this.context = modules.newContext(context, !sandbox, "Dactyl REPL Context");
                 this.js = modules.JavaScript();
                 this.js.replContext = this.context;
-                this.js.newContext = function newContext() modules.newContext(self.context, !sandbox);
+                this.js.newContext = function newContext() modules.newContext(self.context, !sandbox, "Dactyl REPL Temp Context");
 
                 this.js.globals = [
                    [this.context, /*L*/"REPL Variables"],