function waitForEvent(event, elem) {
        suspend {
          var rv;
          var listener_func = function(e) {
            rv = e;
            resume();
          };
          if (elem.addEventListener) 
            elem.addEventListener(event, listener_func, false);
          else // IE special case
            elem.attachEvent("on"+event, listener_func);
        }
        finally {
          if (elem.removeEventListener)
            elem.removeEventListener(event, listener_func, false);
          else // IE special case
            elem.detachEvent("on"+event, listener_func);
        }
      }

      while (true) {
        waitForEvent("click", document.getElementById('button1'));
        alert("You clicked the button");
      }