fix npe when putting to cascade in a normal func
authorbrian <brian@brianweb.net>
Wed, 2 Jun 2004 03:06:15 +0000 (03:06 +0000)
committerbrian <brian@brianweb.net>
Wed, 2 Jun 2004 03:06:15 +0000 (03:06 +0000)
darcs-hash:20040602030615-24bed-d8b7b9085f72ddff78c2a5b9fe55cf4b39485f6c.gz

src/org/ibex/js/Interpreter.java

index 6fc2859..0d2c219 100644 (file)
@@ -218,25 +218,24 @@ class Interpreter implements ByteCodes, Tokens {
 
                 Trap t = null;
                 if (target instanceof JSScope && key.equals("cascade")) {
-                   Trap.TrapScope ts = null;
+                    Trap.TrapScope ts = null;
                     JSScope p = (JSScope)target; // search the scope-path for the trap
-                   if (target instanceof Trap.TrapScope) {
+                    if (target instanceof Trap.TrapScope) {
                        ts = (Trap.TrapScope)target;
-                   }
-                   else {
-                       while (ts == null && p.getParentScope() != null) {
-                           p = p.getParentScope();
-                           if (p instanceof Trap.TrapScope) {
-                               ts = (Trap.TrapScope)p;
-                           }
-                       }
-                   }
-                   t = ts.t.next;
-                   ts.cascadeHappened = true;
-                    while (t != null && t.f.numFormalArgs == 0) t = t.next;
-                    if (t == null) { target = ts.t.trapee; key = ts.t.name; }
-
-                } else if (target instanceof JS) {
+                    } else {
+                        while (ts == null && p.getParentScope() != null) {
+                            p = p.getParentScope();
+                            if (p instanceof Trap.TrapScope) ts = (Trap.TrapScope)p;
+                        }
+                    }
+                    if(ts != null) {
+                        t = ts.t.next;
+                        ts.cascadeHappened = true;
+                        while (t != null && t.f.numFormalArgs == 0) t = t.next;
+                        if (t == null) { target = ts.t.trapee; key = ts.t.name; }
+                    }
+                }
+                if(t == null) {
                     if (target instanceof JSScope) {
                         JSScope p = (JSScope)target; // search the scope-path for the trap
                         t = p.getTrap(key);