If Decker itself doesn't have APIs for doing something, and you're willing to constrain an application to only work in web-decker, calling internal functions via danger.js[] may be the only way to make it happen; I just reserve the right to change those internal functions in the future.
I'm a bit puzzled by the specific example you're raising, though. Clicking a button widget to fire a script takes place while in "interact" mode, whereas the internal "undo()" function in web-decker is part of the apparatus used in "widget" and drawing tool modes. Can you provide some broader context for what you're trying to do?