function evaluate(void UnaryExpression) { var expr = evaluate(UnaryExpression); GetValue(expr).[[Call]]; // but how else to "call" it? doesnt make sense for non-function vars though return undefined; }
The void operator simply always returns undefined, while stille valuating the operand. It will always evaluate the operand because side effects might be observed.