если выражение укладывается в синтаксис javascript, то можно использовать
with
with ({x: 1, y: 2}) {
with(Math) {
alert(eval('pow(y, x + 3) + sin(PI / 2)'));
}
}
здесь использованы переменные, функции из Math и константа PI оттуда же.
Однако eval считается плохой практикой (с чем я согласен), да и with вроде как тоже.
Потому всё это дело можно переписать через new Function, используя для нее набор переменных, чтобы прокинуть функции и переменные.