2003/06/16 08:44:09
[org.ibex.core.git] / src / org / xwt / js / ScopeImpl.java
index ecb9b91..5162c0e 100644 (file)
@@ -5,33 +5,28 @@ import org.xwt.util.*;
 import java.io.*;
 import java.util.*;
 
-/** A JavaScript Scope */
+/** Implementation of a JavaScript Scope */
 class ScopeImpl extends JS.Obj { 
     private JS.Scope parentScope;
     private static Object NULL = new Object();
-    public ScopeImpl(JS.Scope parentScope) { this(parentScope, false); }
     public ScopeImpl(JS.Scope parentScope, boolean sealed) {
         super(sealed);
         if (parentScope == this) throw new Error("can't make a scope its own parent!");
         this.parentScope = parentScope;
     }
-    public JS.Scope getParentScope() { return parentScope; }
-    
-    // transparent scopes are not returned by THIS
-    public boolean isTransparent() { return false; }
-    
+    public Object[] keys() { throw new Error("you can't enumerate the properties of a Scope"); }
     public boolean has(Object key) { return super.get(key) != null; }
     public Object get(Object key) {
-        if (!has(key)) return parentScope == null ? null : getParentScope().get(key);
+        if (!has(key)) return parentScope == null ? null : parentScope.get(key);
         Object ret = super.get(key); return ret == NULL ? null : ret;
     }
     public void put(Object key, Object val) {
-        if (!has(key) && parentScope != null) getParentScope().put(key, val);
+        if (!has(key) && parentScope != null) parentScope.put(key, val);
         else super.put(key, val == null ? NULL : val);
     }
-    public Object[] keys() { throw new Error("you can't enumerate the properties of a Scope"); }
+    public boolean isTransparent() { return false; }
     public void declare(String s) {
-        if (isTransparent()) getParentScope().declare(s);
+        if (isTransparent()) parentScope.declare(s);
         else super.put(s, NULL);
     }
 }