From a quick glance:
- OPcolon2 is not checked
- ```!e1``` will always evaluate to false looking at surrounding code: This change is the same as:
```
         if (!e2) // Line 5010
         {
+           if (op == OPcolon)
+               return e;
            if (!leftgoal)
```
Otherwise I'm not familiar enough with the function to validate the changes.