From a34b8b149fe323f7e32fbce3ca749160a8f087c5 Mon Sep 17 00:00:00 2001 From: Nicolas Gallagher Date: Fri, 17 Feb 2017 10:07:52 -0800 Subject: [PATCH] [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'. --- src/modules/createDOMElement/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/createDOMElement/index.js b/src/modules/createDOMElement/index.js index a57c228b..e8567ebf 100644 --- a/src/modules/createDOMElement/index.js +++ b/src/modules/createDOMElement/index.js @@ -19,7 +19,7 @@ const roleComponents = { region: 'section' }; -const createDOMElement = (component, rnProps = emptyObject) => { +const createDOMElement = (component, rnProps) => { const { accessibilityLabel, accessibilityLiveRegion, @@ -29,7 +29,7 @@ const createDOMElement = (component, rnProps = emptyObject) => { testID, type, ...domProps - } = rnProps; + } = rnProps || emptyObject; const accessibilityComponent = accessibilityRole && roleComponents[accessibilityRole]; const Component = accessibilityComponent || component;