#### Type
`inconsistency` for common use cases.
`bug` for projects relying on correct DOM emissions.

#### Description
It's unclear to me if the following is a known issue or not.
Take in consideration the snippet below:
```jsx
<input type="checkbox" defaultChecked={true} />
```
#### Current Behavior
Setting the `defaultValue` prop on inputs of other types sets both the `value` and `defaultValue` attribute on the DOM element.

When setting the `defaultChecked` prop on inputs of type `checkbox` only the `checked` attribute is correctly set, leaving the `defaultChecked` attribute unchanged.

#### Expected Behaviour
Like mentioned above, the expected behavior would be for the `defaultChecked` prop to set both the `checked` and `defaultChecked` attributes on the corresponding DOM node (like it's the case with the `defaultValue` prop).

});
  it('should properly control a value of number `0`', () => {
    const stub = <input type="text" value={0} onChange={emptyFunction} />;
    const node = ReactTestUtils.renderIntoDocument(stub);
    node.value = 'giraffe';
    ReactTestUtils.Simulate.change(node);
    expect(node.value).toBe('0');
  });
  it('should properly control 0.0 for a text input', () => {
    const stub = <input type="text" value={0} onChange={emptyFunction} />;
    const node = ReactTestUtils.renderIntoDocument(stub);
    node.value = '0.0';
    ReactTestUtils.Simulate.change(node, {target: {value: '0.0'}});
    expect(node.value).toBe('0');
  });
  it('should properly control 0.0 for a number input', () => {
    const stub = <input type="number" value={0} onChange={emptyFunction} />;
    const node = ReactTestUtils.renderIntoDocument(stub);
    node.value = '0.0';
    ReactTestUtils.Simulate.change(node, {target: {value: '0.0'}});
    expect(node.value).toBe('0.0');
  });
  it('should properly transition from an empty value to 0', function() {
    const container = document.createElement('div');
    ReactDOM.render(<input type="text" value="" />, container);
    ReactDOM.render(<input type="text" value={0} />, container);
    const node = container.firstChild;
    expect(node.value).toBe('0');
    expect(node.defaultValue).toBe('0');
  });