private void storeToVariable(Variable var, Runnable callback) {
            if (var.isField() && !var.isStatic()) {
                mBuilder.loadThis();
            }

            callback.run();

            if (var.isField()) {
                if (!mVariableMap.containsKey(var)) {
                    declareVariable(var, null);
                }

                TypeDesc td = makeDesc(var);
                if (var.isStatic()) {
                    mBuilder.storeStaticField(var.getName(), td);
                }
                else {
                    mBuilder.storeField(var.getName(), td);
                }
            }
            else {
                mBuilder.storeLocal(getLocalVariable(var));
            }
        }