After a discussion with @spicyj we decided to keep the warning even though the functions will throw in production. The warning is the only way to learn about that.

We should also document how to pass the secret through in case you know what you're doing.

};
        },
      };
      typeCheckPass(PropTypes.node, iterable);
    });
    it('should not warn for entry iterables', () => {
      var iterable = {
        '@@iterator': function() {
          var i = 0;
          return {
            next: function() {
              var done = ++i > 2;
              return {value: done ? undefined : ['#' + i, <MyComponent />], done: done};
            },
          };
        },
      };
      iterable.entries = iterable['@@iterator'];
      typeCheckPass(PropTypes.node, iterable);
    });
    it('should not warn for null/undefined if not required', () => {
      typeCheckPass(PropTypes.node, null);
      typeCheckPass(PropTypes.node, undefined);
    });
    it('should warn for missing required values', () => {
      typeCheckFailRequiredValues(PropTypes.node.isRequired);
    });
    it('should accept empty array for required props', () => {
      typeCheckPass(PropTypes.node.isRequired, []);
    });