From 26ee665d50a99407b952ff130715e52ea75d12d7 Mon Sep 17 00:00:00 2001 From: Yaya-Cout Date: Sun, 14 Dec 2025 12:02:58 +0100 Subject: [PATCH] [simulator/web] Fix keyHandler not defined (backported from Upsilon Workshop) --- ion/src/simulator/web/calculator.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ion/src/simulator/web/calculator.js b/ion/src/simulator/web/calculator.js index 2234f1fa6..6b57004ea 100644 --- a/ion/src/simulator/web/calculator.js +++ b/ion/src/simulator/web/calculator.js @@ -54,6 +54,9 @@ function Calculator(emModule) { function eventHandler(keyHandler) { return function(ev) { var key = this.getAttribute('data-key'); + /* We use eval as "emModule._IonSimulatorKeyboardKeyDown" is still missing + * even after loading Epsilon, probably due to some async init */ + keyHandler = eval(keyHandler); keyHandler(key); /* Always prevent default action of event. * First, this will prevent the browser from delaying that event. Indeed @@ -69,8 +72,8 @@ function Calculator(emModule) { ev.preventDefault(); }; } - var downHandler = eventHandler(emModule._IonSimulatorKeyboardKeyDown); - var upHandler = eventHandler(emModule._IonSimulatorKeyboardKeyUp); + var downHandler = eventHandler("emModule._IonSimulatorKeyboardKeyDown"); + var upHandler = eventHandler("emModule._IonSimulatorKeyboardKeyUp"); calculatorElement.querySelectorAll('span').forEach(function(span){ /* We decide to hook both to touch and mouse events