diff --git a/src/browser/ui/dom/components/ReactDOMSelect.js b/src/browser/ui/dom/components/ReactDOMSelect.js
index d18fe854289..fc4ce90d8c8 100644
--- a/src/browser/ui/dom/components/ReactDOMSelect.js
+++ b/src/browser/ui/dom/components/ReactDOMSelect.js
@@ -89,7 +89,9 @@ function updateOptions(component, propValue) {
return;
}
}
- options[0].selected = true;
+ if (options.length) {
+ options[0].selected = true;
+ }
}
}
diff --git a/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js b/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js
index 07a7bc457d5..1b369ec6276 100644
--- a/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js
+++ b/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js
@@ -43,6 +43,14 @@ describe('ReactDOMSelect', function() {
expect(node.value).toEqual('giraffe');
});
+ it('should not throw with `defaultValue` and without children', function() {
+ var stub = ;
+
+ expect(() => {
+ ReactTestUtils.renderIntoDocument(stub);
+ }).not.toThrow();
+ });
+
it('should not control when using `defaultValue`', function() {
var stub =