**Do you want to request a _feature_ or report a _bug_?**

This is a bug (I think)

**What is the current behavior?**

When rendering `<input type="..." />` (without name attribute), it will render `<input type="..." name />` to the DOM.

![2016-07-06 at 09 49](https://cloud.githubusercontent.com/assets/11071/16611205/13bcd376-4360-11e6-9ef5-de6bec6eaa4a.png)

**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://jsfiddle.net or similar (template: https://jsfiddle.net/reactjs/69z2wepo/).**

Here is the example with the regression using React 15.2.0: https://esnextb.in/?gist=c4923716061ca73e37f7ed476920aa9c

![2016-07-06 at 09 49](https://cloud.githubusercontent.com/assets/11071/16611190/0ba328e8-4360-11e6-8e1a-049048c661f5.png)

**What is the expected behavior?**

No `name` attribute rendered if it is not provided.

Here is the expected behavior with React 15.1.0: https://esnextb.in/?gist=aee86dfa6eec38aa2bc24b4c25425905

![2016-07-06 at 09 54](https://cloud.githubusercontent.com/assets/11071/16611196/10edae9a-4360-11e6-8191-eb19fd9363f8.png)

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

Regression: v15.2.0

Good: v15.1.0

);
  });
  it('should warn if uncontrolled radio switches to controlled', function() {
    var stub = <input type="radio" />;
    var container = document.createElement('div');
    ReactDOM.render(stub, container);
    ReactDOM.render(<input type="radio" checked={true} />, container);
    expect(console.error.calls.count()).toBe(1);
    expect(console.error.calls.argsFor(0)[0]).toContain(
      'A component is changing an uncontrolled input of type radio to be controlled. ' +
      'Input elements should not switch from uncontrolled to controlled (or vice versa). ' +
      'Decide between using a controlled or uncontrolled input ' +
      'element for the lifetime of the component. More info: https://fb.me/react-controlled-components'
    );
  });
  it('should not warn if radio value changes but never becomes controlled', function() {
    var container = document.createElement('div');
    ReactDOM.render(<input type="radio" value="value" />, container);
    ReactDOM.render(<input type="radio" />, container);
    ReactDOM.render(<input type="radio" value="value" defaultChecked={true} />, container);
    ReactDOM.render(<input type="radio" value="value" onChange={() => null} />, container);
    ReactDOM.render(<input type="radio" />, container);
    expect(console.error.calls.count()).toBe(0);
  });
  it('should not warn if radio value changes but never becomes uncontrolled', function() {
    var container = document.createElement('div');
    ReactDOM.render(<input type="radio" checked={false} onChange={() => null} />, container);
    ReactDOM.render(
      <input
        type="radio"