     button = (if button isnt undefined then button else MOUSE_TOUCH_ANY)
     throw new Error("Missing argument: shape") if shape is undefined #dev
     throw new Error("Argument shape has implement a \"contains\"-function") if typeof shape.contains isnt "function" #dev
-    i = undefined
-    pointers = undefined
-    pointer = undefined
-    ret = undefined
 
     # Narrow possible presses down to the pressed pointers within the selected buttons
     pointers = @isReleased(button)
-    return false unless pointers
 
     # Check each of the pointers to see if they are inside the shape
     ret = []
-    i = 0
-    while i < pointers.length
-      pointer = pointers[i]
+    for pointer in pointers
       continue if pointer.x is false or pointer.y is false
       if not outside and shape.contains(pointer)
         ret.push pointer
-      else ret.push pointer if outside and not shape.contains(pointer)
-      i++
+      else
+        ret.push pointer if outside and not shape.contains(pointer)
 
     # Return the pointers which are inside the shape
-    (if ret.length then ret else false)
-
+    ret
 
   ###
   Checks if an area defined by a geometric shape, or its outside, is down (currently clicked by mouse or touch).


    # Update pressed touches
    for eventTouch in event.changedTouches
      if eventTouch.identifier > 20
        touchNumber = @findTouchNumber()
      else
        touchNumber = eventTouch.identifier

      pointerTouch = @touches[touchNumber]
      pointerTouch.identifier = eventTouch.identifier
      pointerTouch.events = pointerTouch.events.slice(0, 1)
      pointerTouch.events.unshift new Date().getTime()

    # Update all touch positions

      button.events.unshift new Date().getTime()
    return

  ###
  Registers every onmouseup event to the Mouse object.

