2002/07/16 00:39:23
[org.ibex.core.git] / src / org / xwt / util / JSObject.java
index ddc7779..4739a24 100644 (file)
@@ -41,7 +41,7 @@ public class JSObject implements Scriptable {
     private static Hash nodeNameToPackageNameHash = new Hash(1000, 2);
 
     /** converts a nodeName (source code filename) into the 'package name' (resource name of its directory) */
-    private static String nodeNameToPackageName(String nodeName) {
+    public static String nodeNameToPackageName(String nodeName) {
         if (nodeName == null) return null;
         String ret = (String)nodeNameToPackageNameHash.get(nodeName);
         if (ret != null) return ret;
@@ -77,6 +77,7 @@ public class JSObject implements Scriptable {
     public JSObject() { }
     public JSObject(boolean privateVars) { this.privateVars = privateVars; }
 
+    public Object get(String name) { return get(name, null); }
     public Object get(String name, Scriptable start) {
         if (name == null || name.equals("") || properties == null) return null;
 
@@ -116,6 +117,7 @@ public class JSObject implements Scriptable {
      *  Top), by a script for whom we are in the ultimate parent
      *  scope, it must be a var-declaration
      */
+    public void put(String name, Object value) { put(name, null, value); }
     public void put(String name, Scriptable start, Object value) {
         if (sealed) return;
         if (name == null || name.equals("")) return;
@@ -191,6 +193,12 @@ public class JSObject implements Scriptable {
 
     }
 
+    // Helper class for defining functions. //////////////////////////////////////
+
+    public static abstract class JSFunction extends JSObject implements Function {
+        JSFunction() { setSeal(true); }
+        public Scriptable construct(Context cx, Scriptable scope, java.lang.Object[] args) { return null; }
+    }
 
     // Trivial Methods ///////////////////////////////////////////////////////////