From 3b0800a49a3c3a4cf770380acce1410ac2cb53fb Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Thu, 11 Mar 2021 20:46:58 -0800 Subject: [PATCH] EventTarget (native)/InstanceHandle (JS) is not optional, assert that it's non-null Summary: When EventTarget is created in createNode, it's currently treated as optional in native, but it's not optional in JS. We should assert that it's non-null to make the contract more clear. For now, we keep it as an assert so we catch issues in debug/dev, but it won't impact prod. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D27002506 fbshipit-source-id: c541dc02d3de22df19292deaef1a3b68fe57ba1f --- ReactCommon/react/renderer/uimanager/primitives.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ReactCommon/react/renderer/uimanager/primitives.h b/ReactCommon/react/renderer/uimanager/primitives.h index 1c7306ea926..75c96cd761b 100644 --- a/ReactCommon/react/renderer/uimanager/primitives.h +++ b/ReactCommon/react/renderer/uimanager/primitives.h @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -110,6 +111,7 @@ inline static SharedEventTarget eventTargetFromValue( jsi::Runtime &runtime, jsi::Value const &eventTargetValue, jsi::Value const &tagValue) { + react_native_assert(!eventTargetValue.isNull()); if (eventTargetValue.isNull()) { return nullptr; }