let variables = {};

export default {
    dup(stack) {
        let value = stack.pop();

        stack.push(value);
        stack.push(value);
        return {
            stack
        };
    },
    pop(stack) {
        stack.pop();

        return {
            stack
        };
    },
    store(stack) {
        let variableName = stack.pop(),
            variableValue = stack.pop();

        variables[variableName] = variableValue;
        return {
            stack
        };
    },
    retrieve(stack) {
        let variableName = stack.pop();

        stack.push(variables[variableName]);
        return {
            stack
        };
    },
    _getVariables() {
        return variables;
    },
    _clearVariables() {
        variables = {};
    }
};

@@ -31,16 +31,204 @@
 fault %7B%0A
+    swap(stack) %7B%0A        let val1 = stack.pop(),%0A            val2 = stack.pop();%0A%0A        stack.push(val1);%0A        stack.push(val2);%0A        return %7B%0A            stack%0A        %7D;%0A    %7D,%0A
     dup(

Add swap operator