import {

noop,
resolve as _resolve

} from '../-internal';

/**

`RSVP.Promise.resolve` returns a promise that will become resolved with the
passed `value`. It is shorthand for the following:

```javascript
var promise = new RSVP.Promise(function(resolve, reject){
  resolve(1);
});

promise.then(function(value){
  // value === 1
});
```

Instead of writing the above, your code now simply becomes the following:

```javascript
var promise = RSVP.Promise.resolve(1);

promise.then(function(value){
  // value === 1
});
```

@method resolve
@static
@param {Any} value value that the returned promise will be resolved with
@param {String} label optional string for identifying the returned promise.
Useful for tooling.
@return {Promise} a promise that will become fulfilled with the given
`value`

*/ export default function resolve(object, label) {

/*jshint validthis:true */
var Constructor = this;

if (object && typeof object === 'object' && object.constructor === Constructor) {
  return object;
}

var promise = new Constructor(noop, label);
_resolve(promise, object);
return promise;

}