| 'use strict'; | |
| var aFunction = require('../internals/a-function'); | |
| var PromiseCapability = function (C) { | |
| var resolve, reject; | |
| this.promise = new C(function ($$resolve, $$reject) { | |
| if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); | |
| resolve = $$resolve; | |
| reject = $$reject; | |
| }); | |
| this.resolve = aFunction(resolve); | |
| this.reject = aFunction(reject); | |
| }; | |
| // 25.4.1.5 NewPromiseCapability(C) | |
| module.exports.f = function (C) { | |
| return new PromiseCapability(C); | |
| }; |