export default function(node, {evaluate, scope}) { const {argument, operator, prefix} = node; const {value} = evaluate(argument, {scope}); const update = (value) => { if (prefix) { switch (operator) { case '++': return scope.set(argument.value, value + 1); case '--': return scope.set(argument.value, value - 1); } } switch (operator) { case '++': scope.set(argument.value, value + 1); return value; case '--': scope.set(argument.value, value - 1); return value; } /* v8 ignore next */ throw new Error(`operator not implemented: ${operator}`); }; return {value: update(value)}; }