I think something like this should do about the same.
/// ===============================
/// LFO ENGINE
/// ===============================
const LFO_RATE = 0.3;
const LFO_DEPTH = 0.25;
const TIME_SCALE = 0.03;
reg phase = 0.0;
xypad.startTimer(30);
xypad.setTimerCallback(function()
{
phase = (phase + LFO_RATE * motionSpeed * TIME_SCALE) % 1.0;
const angle = phase * Math.PI * 2;
lfoX = Math.sin(angle) * LFO_DEPTH * 0.5;
lfoY = Math.cos(angle) * LFO_DEPTH * 0.5;
updateXY();
});