x
x
x


Do so in a way which:

 does not involve string manipulation of the input source code
 is plausibly extensible to a runtime-chosen set of bindings rather than just x
 does not make x a global variable


or note that these are impossible.



See also

 For more general examples and language-specific details, see Eval.
 Dynamic variable names is a similar task.


func eval_with_x(code, x, y) {
    var f = eval(code);
    x = y;
    eval(code) - f;
}
 
say eval_with_x(x: 3, y: 5, code: '2 ** x');   # => 24