```coffeescript
#= require utensils/utensils

class utensils.Detect

  # Describes browser detection for transition end events
  # utensils.Detect.transition.end
  # utensils.Detect.hasTransition
  @transition = (=>
    transitionEnd = (->
      el = document.createElement("tranny")
      transEndEventNames =
        WebkitTransition: "webkitTransitionEnd"
        MozTransition: "transitionend"
        OTransition: "oTransitionEnd"
        msTransition: "MSTransitionEnd"
        transition: "transitionend"
      name = undefined
      for name of transEndEventNames
        return transEndEventNames[name]  if el.style[name] isnt `undefined`
    )()
    @hasTransition = if transitionEnd then true else false
    return {end: transitionEnd ?= false}
  )()

```

Remove transition end for MS and Opera
user
```coffeescript
#= require utensils/utensils

class utensils.Detect

  # Describes browser detection for transition end events
  # utensils.Detect.transition.end
  # utensils.Detect.hasTransition
  @transition = (=>
    transitionEnd = (->
      el = document.createElement("tranny")
      transEndEventNames =
        WebkitTransition: "webkitTransitionEnd"
        MozTransition: "transitionend"
        transition: "transitionend"
      name = undefined
      for name of transEndEventNames
        return transEndEventNames[name]  if el.style[name] isnt `undefined`
    )()
    @hasTransition = if transitionEnd then true else false
    return {end: transitionEnd ?= false}
  )()

```
assistant