docs: function fireWith(context, args) {
              if (list && (!_fired || stack)) {
                  args = args || [];
                  args = [context, args.slice ? args.slice() : args];
                  if (firing) {
                      stack.push(args);
                  } else {
                      fire(args);
                  }
              }
              return this;
          }