hunk.code_window: #import "ABI15_0_0EXUnversioned.h"
   @interface ABI15_0_0EXWebBrowser () <SFSafariViewControllerDelegate>
   @end
   NSString *ABI15_0_0EXWebBrowserErrorCode = @"ABI15_0_0EXWebBrowser";
  
hunk.labels: keep keep keep add keep keep keep keep
hunk.after_edit: @property (nonatomic, copy) ABI15_0_0RCTPromiseResolveBlock redirectResolve;
   @property (nonatomic, copy) ABI15_0_0RCTPromiseRejectBlock redirectReject;
  
hunk.file_path: ios/versioned-react-native/ABI15_0_0/Exponent/Modules/Api/ABI15_0_0EXWebBrowser.m
hunk.type: add
file: // Copyright 2004-present Facebook. All Rights Reserved.
  
  #include <memory>
  
  #include <fb/fbjni.h>
  
  #include <cxxreact/Executor.h>
  
  namespace facebook {
  namespace react {
  
  class JavaScriptExecutorHolder : public jni::HybridClass<JavaScriptExecutorHolder> {
   public:
    static constexpr auto kJavaDescriptor =
      "Lcom/facebook/react/cxxbridge/JavaScriptExecutor;";
  
    std::shared_ptr<JSExecutorFactory> getExecutorFactory() {
      return mExecutorFactory;
    }
  
   protected:
    JavaScriptExecutorHolder(std::shared_ptr<JSExecutorFactory> factory)
        : mExecutorFactory(factory) {}
  
   private:
    std::shared_ptr<JSExecutorFactory> mExecutorFactory;
  };
  
  }}
  