Appears to be working in Firefox but at least Chrome & Safari are broken. Should be a really recent regression so very few possible changes to blame...

Easiest repo: the todo list on our homepage.

'Warning: Invalid attribute name: `blah" onclick="beevil" noise="hi`'
      );
    });
    it('should update arbitrary attributes for tags containing dashes', function() {
      var container = document.createElement('div');
      var beforeUpdate = React.createElement('x-foo-component', {}, null);
      ReactDOM.render(beforeUpdate, container);
      var afterUpdate = <x-foo-component myattr="myval" />;
      ReactDOM.render(afterUpdate, container);
      expect(container.childNodes[0].getAttribute('myattr')).toBe('myval');
    });
    it('should clear all the styles when removing `style`', function() {
      var styles = {display: 'none', color: 'red'};
      var container = document.createElement('div');
      ReactDOM.render(<div style={styles} />, container);
      var stubStyle = container.firstChild.style;
      ReactDOM.render(<div />, container);
      expect(stubStyle.display).toEqual('');
      expect(stubStyle.color).toEqual('');
    });
    it('should update styles when `style` changes from null to object', function() {
      var container = document.createElement('div');
      var styles = {color: 'red'};
      ReactDOM.render(<div style={styles} />, container);
      ReactDOM.render(<div />, container);
      ReactDOM.render(<div style={styles} />, container);
      var stubStyle = container.firstChild.style;
      expect(stubStyle.color).toEqual('red');
    });
    it('should empty element when removing innerHTML', function() {