hunk.code_window: }
   ABI15_0_0RCT_EXPORT_METHOD(dismissBrowser) {
     [ABI15_0_0RCTPresentedViewController() dismissViewControllerAnimated:true completion:^{
       _redirectResolve(@{
                          @"type": @"dismissed",
                          });
       [self flowDidFinish];
     }];
   }
  
hunk.labels: keep keep keep replace replace replace replace replace keep keep keep
hunk.after_edit:   __weak typeof(self) weakSelf = self;
     [ABI15_0_0RCTPresentedViewController() dismissViewControllerAnimated:YES completion:^{
       __strong typeof(self) strongSelf = weakSelf;
       if (strongSelf) {
         strongSelf.redirectResolve(@{
                            @"type": @"dismissed",
                            });
         [strongSelf flowDidFinish];
       }
  
hunk.file_path: ios/versioned-react-native/ABI15_0_0/Exponent/Modules/Api/ABI15_0_0EXWebBrowser.m
hunk.type: replace
file: /**
   * Copyright (c) 2015-present, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   */
  'use strict';
  
  jest.unmock('../Platform.ios');
  jest.unmock('../Platform.android');
  
  var PlatformIOS = require('../Platform.ios');
  var PlatformAndroid = require('../Platform.android');
  
  describe('Platform', () => {
  
    describe('OS', () => {
      it('should have correct value', () => {
        expect(PlatformIOS.OS).toEqual('ios');
        expect(PlatformAndroid.OS).toEqual('android');
      });
    });
  
    describe('select', () => {
      it('should return platform specific value', () => {
        const obj = { ios: 'ios', android: 'android' };
        expect(PlatformIOS.select(obj)).toEqual(obj.ios);
        expect(PlatformAndroid.select(obj)).toEqual(obj.android);
      });
    });
  
  });
  