public static void copyFrameState(ControlFrame fromframe, ControlFrame toframe) {
    toframe.proposition = fromframe.proposition;
    KeyValueList.setDynamicSlotValue(toframe.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, ((Description)(KeyValueList.dynamicSlotValue(fromframe.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))), null);
    toframe.reversePolarityP = fromframe.reversePolarityP;
    toframe.up = fromframe.up;
    toframe.partialMatchFrame = fromframe.partialMatchFrame;
    toframe.inheritedPatternRecord = fromframe.inheritedPatternRecord;
    toframe.choicePointUnbindingOffset = fromframe.choicePointUnbindingOffset;
    toframe.nextStrategies = fromframe.nextStrategies;
    KeyValueList.setDynamicSlotValue(toframe.dynamicSlots, Logic.SYM_LOGIC_CACHED_BINDINGS_ITERATOR, ((Iterator)(KeyValueList.dynamicSlotValue(fromframe.dynamicSlots, Logic.SYM_LOGIC_CACHED_BINDINGS_ITERATOR, null))), null);
    toframe.goalBindings = fromframe.goalBindings;
    KeyValueList.setDynamicSlotValue(toframe.dynamicSlots, Logic.SYM_LOGIC_GOAL_CACHE, ((GoalCache)(KeyValueList.dynamicSlotValue(fromframe.dynamicSlots, Logic.SYM_LOGIC_GOAL_CACHE, null))), null);
  }