HACK introduce get() and put() calls in trap functions for subclasses
[org.ibex.js.git] / 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);
         }