HACK introduce get() and put() calls in trap functions for subclasses
authorcrawshaw <crawshaw@ibex.org>
Sat, 8 Jan 2005 10:02:24 +0000 (10:02 +0000)
committercrawshaw <crawshaw@ibex.org>
Sat, 8 Jan 2005 10:02:24 +0000 (10:02 +0000)
darcs-hash:20050108100224-2eb37-2571c7361dca301842fd5b3000d9ce59b69fe4f9.gz

src/org/ibex/js/JS.java

index c988746..9cf36df 100644 (file)
@@ -234,13 +234,15 @@ public interface JS extends Pausable {
             if (t != null && (t = t.write()) != null) {
                 val = (JS)new Interpreter(t, val, false).run(null);
             }
+            put(key, val); // HACK: necessary for subclasses overriding put()
+            /*if (i < 0) i = put(i, key);
             if (val == null) entries[i + 1] = holder;
-            else entries[i + 1] = val;
+            else entries[i + 1] = val;*/
             return val;
         }
         public JS getAndTriggerTraps(JS key) throws JSExn {
             Trap t = null; int i = indexOf(key);
-            if (i < 0) return null;
+            if (i < 0) return get(key); // HACK: necessary for subclasses overriding get()
             t = (Trap)entries[i + 2];
             return t == null ? (JS)entries[i + 1] : (JS)new Interpreter(t, null, false).run(null);
         }