[fix] V8 deopt in compiled 'createDOMElement'

Fixes V8 "deopt" warning: "Bad value context for arguments value".

This deopt was caused by the babel-compiled output of the ES6 argument
default value for 'rnProps':

    var t = arguments.length > 1 && void 0 !== arguments[1]
      ? arguments[1]
      : l

Not relying on ES6 default arguments avoids the function 'deopt'.
This commit is contained in:
Nicolas Gallagher
2017-02-17 10:07:52 -08:00
parent 6166024d15
commit a34b8b149f
+2 -2
View File
@@ -19,7 +19,7 @@ const roleComponents = {
region: 'section' region: 'section'
}; };
const createDOMElement = (component, rnProps = emptyObject) => { const createDOMElement = (component, rnProps) => {
const { const {
accessibilityLabel, accessibilityLabel,
accessibilityLiveRegion, accessibilityLiveRegion,
@@ -29,7 +29,7 @@ const createDOMElement = (component, rnProps = emptyObject) => {
testID, testID,
type, type,
...domProps ...domProps
} = rnProps; } = rnProps || emptyObject;
const accessibilityComponent = accessibilityRole && roleComponents[accessibilityRole]; const accessibilityComponent = accessibilityRole && roleComponents[accessibilityRole];
const Component = accessibilityComponent || component; const Component = accessibilityComponent || component;