I think you know the archtecture better, but anyway, here is a short debugging scenario T3 4.5.2 with IE8:
[1] BREAK AT: t3editor.js,130: [required to catch „keyup“]
CODE IS: $(that.outerdiv).fire('t3editor:keyup', {t3editor: that, actualEvent: event});
at this point: event.type is "keyup". [OK]
[2] PROCEED, STEP INSIDE, UNTIL: prototype.js,4054:
at this point:
memo is valid(?), and
memo.actualEvent.keyCode is valid (none-zero) (type is "keyup"). [OK]
[3] PROCEED, UNTIL: prototype.js,4073:
CODE IS: element.fireEvent(event.eventType, event);
at this point:
event is initialized (correct?),
event.eventType is "ondataavailable",
event.memo and event.memo.actualEvent is valid,
event.memo.actualEvent.keyCode is valid (none-zero) (type is "keyup"). [OK]
[4] PROCEED, STEP INSIDE: prototype.js,3961:
at this point:
event and event.memo.actualEvent are invalid (!?),
event.eventType is "ondataavailable", and
event.memo.actualEvent.type is "dataavailable",
event.memo.actualEvent.keyCode is 0. [WRONG?]
More steps are involved, not shown here, but with [4]:
„event.memo.actualEvent“ seems to be intentionally consumed or mistakenly overwritten during event propagation. The dot „.“ (keyCode 190) is displayed, but gone lost, so no code completion takes place.
What's going on?