code: function(reactions, x) {
          reactions.forEach(function(reaction) {
            enqueue(function() {
              // PromiseReactionTask
              var handler = reaction.handler;
              var capability = reaction.capability;
              var resolve = capability.resolve;
              var reject = capability.reject;
              try {
                var result = handler(x);
                if (result === capability.promise) {
                  throw new TypeError('self resolution');
                }
                var updateResult =
                  updatePromiseFromPotentialThenable(result, capability);
                if (!updateResult) {
                  resolve(result);
                }
              } catch (e) {
                reject(e);
              }
            });
          });
        }
docs: fallback