1'use strict';
2// 25.4.1.5 NewPromiseCapability(C)
3var aFunction = require('./_a-function');
4
5function PromiseCapability(C) {
6  var resolve, reject;
7  this.promise = new C(function ($$resolve, $$reject) {
8    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
9    resolve = $$resolve;
10    reject = $$reject;
11  });
12  this.resolve = aFunction(resolve);
13  this.reject = aFunction(reject);
14}
15
16module.exports.f = function (C) {
17  return new PromiseCapability(C);
18};
19