 
     constructor: (event) ->
       @nativeEvent = event
-      @memo = event.memo
-      @type = event.type
-
-      @char = event.char
-      @key = event.key
+
+      # This is to satisfy YUICompressor which doesn't seem to like 'char', even
+      # though it doesn't appear to be a reserved word.
+      this[name] = event[name] for name in ["memo", "type", "char", "key"]
 
     # Stops the event which prevents further propagation of the DOM event,
     # as well as DOM event bubbling.


    timeoutID = window.setInterval animator

    styles[styleName] = initial
    element.setStyle styles

  # Generic view of an DOM event that is passed to a handler function.

    throw new Error "Provided value <#{content}> is not valid as DOM element content."

  # _internal_: Currently don't want to rely on Scriptaculous, since our needs are pretty minor.
  animate = (element, styleName, initialValue, finalValue, duration, callbacks) ->
    styles = {}
    range = finalValue - initialValue
    initialTime = Date.now()
    first = true
    animator = ->
      elapsed = Date.now() - initialTime
      if elapsed >= duration
        styles[styleName] = finalValue
        element.setStyle styles
        window.clearInterval timeoutID
        callbacks.oncomplete and callbacks.oncomplete()
