   variant is used.
   ###
   done: (args...) =>
-    return this if args.length == 0
+    return this if args.length is 0
     functions = flatten(args)
-    if @_state == 'resolved'
+    if @_state is 'resolved'
       functions.forEach (fn) =>
         fn.apply(@_context, @_withArguments)
-    else if @_state == 'pending'
+    else if @_state is 'pending'
       @_doneCallbacks or= []
       @_doneCallbacks.push(functions...)
     this

  Add progress callbacks to be fired when using notify()
  ###
  progress: (args...) =>
    return this if args.length == 0 or @_state != 'pending'
    functions = flatten(args)
    @_progressCallbacks or= []
    @_progressCallbacks.push(functions...)

  variants are used.
  ###
  always: (args...) =>
    return this if args.length is 0
    functions = flatten(args)
    if @_state is 'pending'
      @_alwaysCallbacks or= []
      @_alwaysCallbacks.push(functions...)
    else
