+ } else if(c->opcode == OPCODE_NEWOBJECT ||
+ c->opcode == OPCODE_NEWARRAY) {
+ // we can discard these if they're not eating up stack parameters
+ if(!c->data[0])
+ return code_cutlast(c);
+ } else if(op->stack_minus ==0 && op->stack_plus == 0 &&
+ !(op->flags&~(OP_REGISTER|OP_SET_DXNS)) && c->prev) {
+ // trim code *before* the kill, inclocal, declocal, dxns
+ code_t*p = c->prev;
+ p->next = 0;
+ c->prev = 0;
+ return code_append(cut_last_push(p), c);
+ } else