diff --git a/ReactCommon/cxxreact/JSCExecutor.cpp b/ReactCommon/cxxreact/JSCExecutor.cpp index a28b99e92126df..01c8c96de19560 100644 --- a/ReactCommon/cxxreact/JSCExecutor.cpp +++ b/ReactCommon/cxxreact/JSCExecutor.cpp @@ -689,11 +689,14 @@ namespace facebook { return JSC_JSValueMakeUndefined(m_context); } - JSValueRef JSCExecutor::nativeRequire( - size_t argumentCount, - const JSValueRef arguments[]) { - uint32_t bundleId, moduleId; - std::tie(bundleId, moduleId) = parseNativeRequireParameters(m_context, arguments, argumentCount); + JSValueRef JSCExecutor::nativeRequire(size_t count, const JSValueRef arguments[]) { + if (count > 2 || count == 0) { + throw std::invalid_argument("Got wrong number of args"); + } + + uint32_t moduleId = folly::to(Value(m_context, arguments[0]).getNumberOrThrow()); + uint32_t bundleId = count == 2 ? folly::to(Value(m_context, arguments[1]).getNumberOrThrow()) : 0; + ReactMarker::logMarker(ReactMarker::NATIVE_REQUIRE_START); loadModule(bundleId, moduleId); ReactMarker::logMarker(ReactMarker::NATIVE_REQUIRE_STOP); diff --git a/ReactCommon/cxxreact/JSCUtils.cpp b/ReactCommon/cxxreact/JSCUtils.cpp index 74942bc629b3d6..8681faa443f418 100644 --- a/ReactCommon/cxxreact/JSCUtils.cpp +++ b/ReactCommon/cxxreact/JSCUtils.cpp @@ -15,25 +15,5 @@ String jsStringFromBigString(JSContextRef ctx, const JSBigString& bigstr) { } } -std::pair parseNativeRequireParameters( - const JSGlobalContextRef& context, - const JSValueRef arguments[], - size_t argumentCount) { - uint32_t moduleId = 0, bundleId = 0; - - // use "getNumber" & "folly::to" to throw explicitely in case of an overflow - // error during conversion - if (argumentCount == 1) { - moduleId = folly::to(Value(context, arguments[0]).getNumberOrThrow()); - } else if (argumentCount == 2) { - moduleId = folly::to(Value(context, arguments[0]).getNumberOrThrow()); - bundleId = folly::to(Value(context, arguments[1]).getNumberOrThrow()); - } else { - throw std::invalid_argument("Got wrong number of args"); - } - - return std::make_pair(bundleId, moduleId); -} - } } diff --git a/ReactCommon/cxxreact/JSCUtils.h b/ReactCommon/cxxreact/JSCUtils.h index ebf83a679ef767..dfa1df71594548 100644 --- a/ReactCommon/cxxreact/JSCUtils.h +++ b/ReactCommon/cxxreact/JSCUtils.h @@ -11,13 +11,5 @@ namespace react { String jsStringFromBigString(JSContextRef ctx, const JSBigString& bigstr); -/** - * Parses "nativeRequire" parameters - * and returns pair of "bundle id" & "module id" values - */ -std::pair parseNativeRequireParameters(const JSGlobalContextRef& context, - const JSValueRef arguments[], - size_t argumentCount); - } }