private void evalNewObjectArray(int pos, CodeIterator iter, Frame frame) throws BadBytecode {
        // Convert to x[] format
        Type type = resolveClassInfo(constPool.getClassInfo(iter.u16bitAt(pos + 1)));
        String name = type.getCtClass().getName();
        int opcode = iter.byteAt(pos);
        int dimensions;

        if (opcode == MULTIANEWARRAY) {
            dimensions = iter.byteAt(pos + 3);
        } else {
            name = name + "[]";
            dimensions = 1;
        }

        while (dimensions-- > 0) {
            verifyAssignable(Type.INTEGER, simplePop(frame));
        }

        simplePush(getType(name), frame);
    }