Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove _workQueue of webSocket set to NULL which may leads to crash #19489

Closed
wants to merge 1 commit into from

Conversation

zhongwuzw
Copy link
Contributor

@zhongwuzw zhongwuzw commented May 29, 2018

Fixes #21086.

This PR fixes a crash caused by a race condition when webSocket deallocated and NSStream delegate callback, because NSStream's delegate callback be called on RCTSR_networkRunLoop.

This PR mainly changes:

  • Remove unnecessary nil operation in dealloc method.
  • Add a new method _scheduleCleanUp to schedule webSocket cleanup also on RCTSR_networkRunLoop.
  • In stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode delegate method, add a wself to make safe further.

Test Plan

Reproduce steps:
Run any react-native project, and keep it running, it would crash at some point.

Release Notes

[IOS] [BUGFIX] [RCTSRWebSocket] - No needs to set NULL explicitly.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label May 29, 2018
@zhongwuzw
Copy link
Contributor Author

Crash backtrace:

(lldb) bt
* thread #9, name = 'com.squareup.SocketRocket.NetworkThread', stop reason = EXC_BAD_ACCESS (code=1, address=0x20)
    frame #0: 0x0000000183a601a0 libobjc.A.dylib`objc_retain + 16
    frame #1: 0x0000000183a60218 libobjc.A.dylib`objc_storeStrong + 44
    frame #2: 0x000000010084a0c4 AwesomProject`__copy_helper_block_((null)=0x00000001c526d240, (null)=0x000000016fc91a08) at RCTSRWebSocket.m:1350
    frame #3: 0x000000018421c964 libsystem_blocks.dylib`_Block_copy + 140
    frame #4: 0x0000000100cc91b0 libdispatch.dylib`_dispatch_Block_copy + 64
    frame #5: 0x0000000100cca3f8 libdispatch.dylib`dispatch_async + 64
  * frame #6: 0x0000000100849538 AwesomProject`-[RCTSRWebSocket stream:handleEvent:](self=0x0000000101206cb0, _cmd="stream:handleEvent:", aStream=0x00000001c4105a90, eventCode=NSStreamEventErrorOccurred) at RCTSRWebSocket.m:1350
    frame #7: 0x00000001847c3b34 CoreFoundation`_signalEventSync + 212
    frame #8: 0x00000001847c3a40 CoreFoundation`_cfstream_shared_signalEventSync + 460
    frame #9: 0x0000000184833404 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
    frame #10: 0x0000000184832c2c CoreFoundation`__CFRunLoopDoSources0 + 276
    frame #11: 0x000000018483079c CoreFoundation`__CFRunLoopRun + 1204
    frame #12: 0x0000000184750da8 CoreFoundation`CFRunLoopRunSpecific + 552
    frame #13: 0x00000001851c5674 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
    frame #14: 0x000000010084b644 AwesomProject`-[_RCTSRRunLoopThread main](self=0x00000001c408f870, _cmd="main") at RCTSRWebSocket.m:1592
    frame #15: 0x00000001852d5efc Foundation`__NSThread__start__ + 1040
    frame #16: 0x00000001844b1220 libsystem_pthread.dylib`_pthread_body + 272
    frame #17: 0x00000001844b1110 libsystem_pthread.dylib`_pthread_start + 292
    frame #18: 0x00000001844afb10 libsystem_pthread.dylib`thread_start + 4

Copy link
Contributor

@hramos hramos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please describe how you tested this change.

@zhongwuzw
Copy link
Contributor Author

@hramos I sync the cleanup code of RCTSRWebSocket from SRWebSocket.

Enhance some cleanup logic of *Stream.
The PR handles some edge cases, would you give me any thoughts about how to test?

kkkevinnn pushed a commit to kkkevinnn/react-native that referenced this pull request Jul 15, 2018
facebook#19489

Fix TextInput chinese char input issue
facebook#18456
@zhongwuzw
Copy link
Contributor Author

@hramos Just ping. Many people face these crash things, please see #6117 .

@facebook-github-bot
Copy link
Contributor

@zhongwuzw I tried to find reviewers for this pull request and wanted to ping them to take another look. However, based on the blame information for the files in this pull request I couldn't find any reviewers. This sometimes happens when the files in the pull request are new or don't exist on master anymore. Is this pull request still relevant? If yes could you please rebase? In case you know who has context on this code feel free to mention them in a comment (one person is fine). Thanks for reading and hope you will continue contributing to the project.

@zhongwuzw
Copy link
Contributor Author

@shergin , I found no people can handle this, but I see you work so much in iOS, please review it if you can. Thanks.

@zhongwuzw
Copy link
Contributor Author

@facebook-github-bot marks #6117 resolved. But it's not.

@connoremma
Copy link

@zhongwuzw Still seeing #6117 on version:

react-native-cli: 2.0.1
react-native: 0.55.4

@zhongwuzw
Copy link
Contributor Author

@connoremma Yeah, this bug still exist, but no one can review this PR currently. 😂

@connoremma
Copy link

@zhongwuzw is there any workaround for this issue? i.e. downgrading, etc.?

Does this issue only happen running in debug mode?

@heyfrench
Copy link

@connoremma it's happened to me in production and debugging. I can post what I have from Crashlytics if that would help anybody.

FWIW, it hasn't happened since I implemented this patch a few weeks ago: #6117 (comment)

@zhongwuzw
Copy link
Contributor Author

@connoremma, this bug always exist, so no downgrading we can have. 😂 Just like @heyfrench said, you can apply this patch using git, or just copy the files I changed in this PR in your project.

@ujwal-setlur
Copy link

I am running into this issue daily multiple times on my iOS simulator. I will try this patch

@ujwal-setlur
Copy link

@zhongwuzw Is there a bug open against react-native for this? If not, we should open one.

@zhongwuzw
Copy link
Contributor Author

@ujwal-setlur There had one previous. Please see #6117 , but unfortunately @facebook-github-bot marks #6117 resolved.

@connoremma
Copy link

@zhongwuzw @heyfrench Thank you both for the recommendations, I have copied over the contents of Libraries/WebSocket/RCTSRWebSocket.m from this PR into my project, but unfortunately I am still having the error. Perhaps the script is necessary since I'm unsure if these files are created during react-native-init or react-native run-ios. My knowledge is limited on the topic so apologies for any misunderstanding

@pribeh
Copy link

pribeh commented Aug 19, 2018

This is an issue for us – we run feathersjs which uses websockets a lot. Thanks for working on this @zhongwuzw. I believe the patch has resolved the issue for us but we're going to run more tests.

@mattijsf
Copy link
Contributor

@zhongwuzw can you try rebasing? that might take care of the failing test cases as they are most likely unrelated to your changes.

@ujwal-setlur
Copy link

@zhongwuzw since I have applied this patch, I have not seen the problem. My app has been running for several hours. Thank you so much for this PR.

@zhongwuzw
Copy link
Contributor Author

@pribeh @ujwal-setlur ❤️

@mattijsf Yeah, I can later if anyone can review this PR 😂 , maybe we need to wait a long time.

@connoremma You can try the git script to apply, if you face any error, please comment in this page, crash backtrace or something would be appreciated.

@ujwal-setlur
Copy link

I think it's best to open new bug report and link this PR to it. Maybe it will get attention then.

@hramos
Copy link
Contributor

hramos commented Sep 12, 2018

#6117 has been closed for a long time. Commenting on closed issues is rarely the best way to reach maintainers. I recommend you go ahead and file a new issue, even though this PR already exists - that way we can continue tracking the issue in case this PR does not get merged.

I'm going through PRs right now and it's hard for me, at a glance, to get an understanding of what you're trying to fix here and how your change fixed it. Perhaps you can elaborate a bit more on your PR description? You can edit the original post here on GitHub.

@zhongwuzw
Copy link
Contributor Author

@hramos Thanks, I already file a new issue, please see #21086.

The reason for crash is the race condition when webSocket deallocated and NSStream delegate callback, because NSStream's delegate callback be called on RCTSR_networkRunLoop.
So this PR mainly changes:

  • Remove unnecessary nil operation in dealloc method.
  • Add a new method _scheduleCleanUp to schedule webSocket cleanup also on RCTSR_networkRunLoop.
  • In stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode delegate method, add a wself to make safe further.

Copy link
Contributor

@facebook-github-bot facebook-github-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hramos has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

@hramos hramos added Missing Test Plan This PR appears to be missing a test plan. and removed ✅Test Plan labels Sep 13, 2018
@react-native-bot react-native-bot added ✅Test Plan and removed Missing Test Plan This PR appears to be missing a test plan. labels Sep 13, 2018
Copy link
Contributor

@hramos hramos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'd be good to get a test plan and steps to repro.

Libraries/WebSocket/RCTSRWebSocket.m Outdated Show resolved Hide resolved
@hramos hramos added Missing Test Plan This PR appears to be missing a test plan. and removed ✅Test Plan labels Sep 28, 2018
// Cleanup NSStream delegate's in the same RunLoop used by the streams themselves:
// This way we'll prevent race conditions between handleEvent and SRWebsocket's dealloc
NSTimer *timer = [NSTimer timerWithTimeInterval:(0.0f) target:self selector:@selector(_cleanupSelfReference:) userInfo:nil repeats:NO];
[[NSRunLoop RCTSR_networkRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit nervous about doing the NSTimer to the RCTSR_networkRunLoop and would prefer just deallocating it in advance. Is there no other way?

Copy link
Contributor Author

@zhongwuzw zhongwuzw Sep 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I looked into this again, and we do all network callback on _workQueue, for the sake of thread safe, we put _cleanupSelfReference on _workQueue would be better.

Seems still need to schedule on RCTSR_networkRunLoop, because (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode would be called even WebSocket already be wild pointer, so strange.

Copy link

@stephencookdev stephencookdev Oct 10, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we not just make handleEvent be more robust, so it can handle the cleanup not having occurred?
That way, we can be more flexible with when we do the cleanup

@stephencookdev
Copy link

I can fairly reliably repro this issue by just running any react-native project in a Simulator, and leaving it. It's not easy to hit, but if you just leave your app running all day, you'll almost certainly see it's hit this error by the end of the day.

As for repro steps that are programatic, so we can write a test plan... I've not been able to work out a way of forcing the race condition, short of just waiting 😞

Tbh I'm struggling to follow this PR fully... But am I right in understanding, @zhongwuzw, that specifically the issue is around handleEvent being executed after the cleanup occurs? And if so, could we write an integration test (since, as I understand it, React iOS doesn't have unit tests?) that triggers this, and we can just test that no crash occurs?

@ishigamii
Copy link

Is this issue merged somewhere ? can we safely make the PR in our project to clear this issue that happens quite a lot ?
Thanks a lot.

@ujwal-setlur
Copy link

It does not seem to be merged, but I have been applying this patch and have had no problems. Haven't seen this issue since.

@connoremma
Copy link

noob question; is RTCSRWebsocket.m generated during react-native init?

There have been times where I’ve replaced my copy with the one in this PR, and others where I’ve had to rebuild the project and started seeing it again, anyone familiar with this?

@tomaszwojcik
Copy link

Still struggling with the com.squareup.SocketRocket.NetworkThread (9): signal SIGABRT issue on 0.57.4 ☹️ Any ETA on the merge?

@zhongwuzw
Copy link
Contributor Author

@tomaszwojcik Emm, seems we still need to wait to merge, but you can also just apply this patch first.

@AndrewJack
Copy link
Contributor

FYI: We've applied this PR as a patch on top of 0.57 and we haven't seen the com.squareup.SocketRocket.NetworkThread crash since.

If there's any chance of this being rebased & merged, that would be awesome. 😁

@pull-bot
Copy link

pull-bot commented Nov 27, 2018

Warnings
⚠️

🔒 package.json - Changes were made to package.json. This will require a manual import by a Facebook employee.

⚠️

📋 Release Notes - This PR may have incorrectly formatted Release Notes.

⚠️

❗ Big PR - This PR is extremely unlikely to get reviewed because it touches 199170 lines.

Generated by 🚫 dangerJS

Remove _workQueue of webSocket set to NULL which may leads to crash

Remove _delegateDispatchQueue nil handler

Sync stream event cleanup with SRWebSocket

Added operation for unschedule stream from runloop

Adjust order of weakSelf

Adding `Wrapper` suffix to `EventHandler` and `EventHandler` type names

Summary:
It's maybe not so important/crucial, but this thing bothers me a lot.
We use raw opaque `EventTarget`, `InstanceHandle` and `EventHandler` pointers in application layer quite a lot and we don't have any kind of type-safety here. I believe all those opaque types should be represented as named scalar types which compiler at least can differentiate at compile time.
So I propose introducing named aliases for them which will point to particular empty `struct`s. This will allow us to tag types properly in all functions and methods and ensure that we pass right values as right arguments.
Again, they are *just aliases*, which are effectively still `void *`, no any additional logic or names are involved.

Unfortunately, those nice type names are already taken by `JSIFabricUIManager` local anonymous namespace (even if they are inside anonymous namespace we cannot use them https://stackoverflow.com/questions/3673353/anonymous-namespace-ambiguity).  I think it's fair to rename them because... it's local. And we already use `Wrapper` suffix for them anyways.

Reviewed By: fkgozali

Differential Revision: D8181151

fbshipit-source-id: 9b55b43fb671a56b32a862ac54f78d528e1188ce

Export JSExecutor

Reviewed By: rzito

Differential Revision: D8187754

fbshipit-source-id: e0da3781e2b3e24cef04086d15e3f5394e059d30

Vendor fetch polyfill, remove default blob response type

Summary:
While investigating an issue about blobs (https://github.com/facebook/react-native/issues/18223), I noticed that the fetch polyfill (https://github.com/github/fetch) uses blobs as the response type by default if the module is available (https://github.com/github/fetch/blob/master/fetch.js#L454). This surfaced some issue with the blob implementation on iOS that has since been fixed.

However after further review of the fetch polyfill and the way Blobs work in RN, I noticed a major issue that causes blobs created by fetch to leak memory. This is because RN blobs are not deallocated automatically like in the browser (see comment https://github.com/facebook/react-native/blob/master/Libraries/Blob/Blob.js#L108) and the fetch polyfill does not deallocate them explicitly using the close method.

Ideally we should implement automatic blob cleanup when the instance is garbage collected but implementing that is probably somewhat complex as it requires integrating with JSC. For now I suggest disabling the default handling of requests as blobs in the fetch polyfill. This will mitigate the issue for people not using Blobs directly. I'm not sure how well documented the Blob module is but we should make it clear that they currently require explicit deallocation with the close method for people using them directly.

Run a simple http request using fetch and make sure it does not use the Blob module anymore.

[GENERAL] [BUGFIX] [fetch] - Do not use blobs to handle responses in the fetch polyfill, fixes potential memory leak.
Closes https://github.com/facebook/react-native/pull/19333

Differential Revision: D8125463

Pulled By: hramos

fbshipit-source-id: 8f4602190dfc2643606606886c698e8e9b1d91d1

Fabric: Using types `EventTarget`, `EventHandler` & co. instead of `void *` everywhere

Summary:
Nothing actually changed besides type names... which actually helps me found an issue in FabricUIManager!
Now there is no a single `void *` in Fabric/C++ and JavaScript bindings. Yay!

Reviewed By: fkgozali

Differential Revision: D8191420

fbshipit-source-id: b1eb60b6bc34dd25ab200aab854ffbd7ccf5b15d

cli: upgrade envinfo for new features in `react-native info`

Summary:
envinfo has done a good job reporting issues in the issue template so far, and I've done a lot of work between version 3.x and 5.x that react-native could benefit from. This adds:
- better information organization, including versions and paths
- Platform/CPU/RAM
- Android and iOS SDK version detection
- npm package globbing (select all babel* packages
- global npm packages (with globbing)

envinfo also can report IDE versions, other binaries, languages and browsers if needed, and in different formats. Take a look here if interested: https://github.com/tabrindle/envinfo

- run `react-native info` // standard info
- run `react-native info --packages` // all packages in package.json
- run `react-native info --packages jest,eslint,babel-polyfill` // specified packages
- run `react-native info --packages *babel*` // globbed packages

Sample standard output:
```
  System:
    OS: macOS High Sierra 10.13
    CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
    Memory: 97.59 MB / 16.00 GB
    Shell: 5.4.2 - /usr/local/bin/zsh
  Binaries:
    Node: 8.11.0 - ~/.nvm/versions/node/v8.11.0/bin/node
    Yarn: 1.5.1 - ~/.yarn/bin/yarn
    npm: 5.6.0 - ~/.nvm/versions/node/v8.11.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0
    Android SDK:
      Build Tools: 27.0.3
      API Levels: 26
  IDEs:
    Android Studio: 3.0 AI-171.4443003
    Xcode: 9.0/9A235 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.3.2 => 16.3.2
    react-native: 0.55.0 => 0.55.0
  npmGlobalPackages:
    create-react-native-app: 1.0.0
    react-native-cli: 2.0.1
```

https://github.com/facebook/react-native/pull/14428 - original inclusion of `react-native info`

[CLI] [ENHANCEMENT] [local-cli/info/info.js] - add more info to react-native info cli command, like global npm packages, binary paths, and SDK versions
Closes https://github.com/facebook/react-native/pull/19331

Differential Revision: D8049650

Pulled By: hramos

fbshipit-source-id: 35c677f369bcad1a014eb083b2ce60ba33fee0ea

Update Jest snapshots

Summary:
Jest will now exclude undefined props from snapshots (https://github.com/facebook/jest/pull/6162). Updating the snapshots should fix the current `test_javascript` failures.

Circle CI

[INTERNAL][MINOR][Snapshots] - Update snapshots
Closes https://github.com/facebook/react-native/pull/19414

Differential Revision: D8125193

Pulled By: hramos

fbshipit-source-id: db8dcfcd8afbf9d6256f83c6e922680a7872d776

Add Feature Request template

Summary: Closes https://github.com/facebook/react-native/pull/19498

Differential Revision: D8197147

Pulled By: hramos

fbshipit-source-id: 0668b885a0eb04a3af948f5643649d5b68488c71

OSS: ignore xcodeproj in root dir

Summary: We don't need Xcode project in root dir.

Reviewed By: davidaurelio

Differential Revision: D8197985

fbshipit-source-id: dbbb8820111e84181c9880372dab9af55e0876e6

jest@23.0.1 in xplat/js

Reviewed By: rafeca

Differential Revision: D8195559

fbshipit-source-id: 7e96f24ae1f9586e9fbc6e1687f731420979352d

deleted UI Action Sheet Delegate Methods

Reviewed By: PeteTheHeat

Differential Revision: D8191111

fbshipit-source-id: 39867683cf5e0cdf8a94a76269d939b5ecf6bbd4

Fix ART surface sleep issue

Summary: Fixes https://github.com/facebook/react-native/issues/17565.

Reviewed By: achen1

Differential Revision: D8194925

fbshipit-source-id: 5448d49d959078eaded697f791e1b382471fabdb

Fix TextInput's initial layout measurements

Reviewed By: mdvacca

Differential Revision: D7732819

fbshipit-source-id: 0ca4e5643d2cfefe304d7f189474a671c4bcb31e

Fix ReactInstanceManager unmountApplication

Reviewed By: mdvacca

Differential Revision: D7945746

fbshipit-source-id: 0c2eed9a623e442fa4a4ff29ffa01f025466c9b6

Introducing Scheduling of JS calls from native

Reviewed By: achen1

Differential Revision: D7729226

fbshipit-source-id: 9869e0a6a2b0c58b7538836ed2c13a4b28dd8887

Refactor setup of Event Dispatcher

Reviewed By: achen1

Differential Revision: D7746311

fbshipit-source-id: cfee1c2ced6d85477628085f3260496e80ae48c2

First implementation of scheduleWork method

Reviewed By: shergin

Differential Revision: D7799412

fbshipit-source-id: b78a0bc0e80868f6877a31f862d7e6104fd4a049

Deprecate UIManagerModule#getEventDispatcher and refactor usages

Reviewed By: shergin

Differential Revision: D7832079

fbshipit-source-id: 263a2f8ff96ab6e14b91395644710b4d5f36dc50

store / retrieve instanceHandle from View

Reviewed By: shergin, achen1

Differential Revision: D8074014

fbshipit-source-id: aee0d41e0e9da44e8748f47da04dcd76dbe96d8d

Include instanceHandle in cloning mechanism

Reviewed By: shergin, achen1

Differential Revision: D8072075

fbshipit-source-id: 2fcfdfa5116850ce0bac6c2c86d87e5bf00fd7f0

Binding for js events

Reviewed By: fkgozali

Differential Revision: D8181616

fbshipit-source-id: 5937c83f22ac09e3041fcb0f8d4e9e3026b2b397

Initialize Event Emitter as part of UIManagerModule

Reviewed By: achen1

Differential Revision: D8216184

fbshipit-source-id: 3b188804e2dad2b112f566da49a939eb4338713d

Use timestamps from QPL by default

Differential Revision: D8207166

fbshipit-source-id: 1e43d6874ee400cb2e26a11cbcfb12ee32d28d3c

Upgrade Jest to 23.1.0

Reviewed By: davidaurelio

Differential Revision: D8212583

fbshipit-source-id: 245a5ccc9bcd63a0995dcb5a1770a6f5f34cd04e

Revert D8194925: Fix ART surface sleep issue

Differential Revision:
D8194925

Original commit changeset: 5448d49d9590

fbshipit-source-id: c01e11d44424e1f6fb79866bb845ed60764c5f13

Fix jest snapshot testing on windows

Summary:
Fixes #19370

Applied changes to existing project that uses jest snapshot testing. Testing was broken before and now works.

To verify: Run any snapshot test containing an image reference on Windows before and after this PR.

[WINDOWS][BUGFIX][jest] - Fixed jest snapshot testing on windows
Closes https://github.com/facebook/react-native/pull/19496

Differential Revision: D8195947

Pulled By: hramos

fbshipit-source-id: 909b5fe7cfd8c6286baf161a227a359854a37603

Enable webhooks on Circle

Summary:
Release Notes
=============

[INTERNAL][MINOR][CircleCI] - Send webhooks to Facebook.
Closes https://github.com/facebook/react-native/pull/19527

Differential Revision: D8228361

Pulled By: hramos

fbshipit-source-id: 5d7c0960392b9a860d3f665e2a316c18153879eb

Migrate Android sources to MIT license header

Reviewed By: fkgozali

Differential Revision: D8065619

fbshipit-source-id: 719c303b40c96950bab8e5dde9a75f449b2956c6

Upgrade Metro to 0.37.2

Reviewed By: rafeca

Differential Revision: D8223545

fbshipit-source-id: fdaacbb514e2947b9244cb55ef9170af55ba2f60

Rename default RN transformer

Differential Revision: D8235001

fbshipit-source-id: 59a4b2f13185dd9be0d33f01589d907d49493a26

Change default metro transformer

Differential Revision: D8234984

fbshipit-source-id: 83cecfbfa3300f7703ea197009d985bbbc58127a

Bump metro@0.38.0

Reviewed By: davidaurelio

Differential Revision: D8235787

fbshipit-source-id: a22802c829920e7e182a9aae70bd69a6446d5f8f

Fabric: Integrating `tag` into `EventHandlers`

Summary:
In order to dispatch event, `EventHandlers` must also know react tag. So we have to store it inside.
We plan to illuminate this requirement (and `tag` from `EventHandlers`) eventually.

Reviewed By: fkgozali

Differential Revision: D8211685

fbshipit-source-id: 2064c0f4a7869cbf4d2c92d0349f4ee3998cb8f5

Fabric: The first version of event dispatching pipeline

Summary:
This is the first attempt to implement some base part of event dispatching pipeline from end-to-end.
Even when it is working, all this is still incomplete and generally up in the air. We are still messing proper implementation of event queue, priority, and synchronization of react reconciliation process with event scheduling.

Reviewed By: fkgozali

Differential Revision: D8212271

fbshipit-source-id: 92f9427d14726441c70ffff294ac95eeb004152a

Fabric: Removed unused type aliases

Summary: Trivial.

Reviewed By: fkgozali

Differential Revision: D8212287

fbshipit-source-id: 228951742568d28a064ee03b6314a4c01532b9c9

Clamp typechecks -> Flow

Reviewed By: yungsters

Differential Revision: D8219220

fbshipit-source-id: e849d9dae573459e4b09e317cc6dc37bec9ce4e8

RefreshControl ES6 Class

Reviewed By: sahrens

Differential Revision: D8219221

fbshipit-source-id: 445243964d64dd5274c1e47bdc137645dc8eecaf

ActivityIndicator ES6 Class

Reviewed By: yungsters

Differential Revision: D8219463

fbshipit-source-id: 7d252d15bb4a7345d156b1659b09be2a4a69ba6c

DatePickerIOS add onChange event definition

Reviewed By: sahrens

Differential Revision: D8219622

fbshipit-source-id: 37f26d0981318b7eab9d3c734c44e7714fa6f0e8

DatePickerIOS ES6 Class

Reviewed By: sahrens

Differential Revision: D8219657

fbshipit-source-id: cef48cf3ad24ad442f07df0edad55ab97d96c6f2

Delete EventDispatcher interface

Reviewed By: achen1

Differential Revision: D8232129

fbshipit-source-id: 6d618b4a587c0b0e1dfac967e8d22c05a62c44ee

RN: Remove Native Prop Validation

Summary:
As we migrate over to static typing solutions for props, we cannot rely on always having `propTypes` available at runtime.

This gets us started on that journey by removing the native prop validation that happens when we require native components.

bypass-lint

Reviewed By: TheSavior

Differential Revision: D7976854

fbshipit-source-id: f3ab579a7f0f8cfb716b0eb7fd4625f8168f3d96

Bump to BUCK v2018.03.26.01

Summary:
Bumps CI to latest BUCK release.

Test Plan
---------

Run on Circle CI.

Release Notes
-------------

[INTERNAL] [MINOR] [Tests] - Bump to BUCK v2018.03.26.01
Closes https://github.com/facebook/react-native/pull/19535

Differential Revision: D8240382

Pulled By: hramos

fbshipit-source-id: 60812cc90542201b362ef264083dd79dbf5d9360

make logMarker visible for consistency with logTaggedMarker

Differential Revision: D8240294

fbshipit-source-id: 8d056dc89adff41ff43c0df2f752b01ac1fb189f

react-native-xcode.sh: Support Homebrew-installed nodenv

Summary:
As well as nvm.

https://github.com/facebook/react-native/blob/9d315f4a1e7b0c9cd80a51903db0b1b561b19e33/scripts/react-native-xcode.sh#L56-L60

Build React Native iOS app with Release configuration and run the script using `node` command which is installed through Homebrew-installed `nodenv` and `node-build`.

None.

[IOS] [ENHANCEMENT] [scripts/react-native-xcode.sh] - Support Homebrew-installed nodenv
Closes https://github.com/facebook/react-native/pull/19509

Differential Revision: D8243181

Pulled By: hramos

fbshipit-source-id: fbd75f377f4aebf89ce35b96a47c59238e62e9ce

Low the priority for logging events in fabric

Reviewed By: achen1

Differential Revision: D8238957

fbshipit-source-id: f2e8bd941ac68ead4c5ed7cadfcf83a753e44cab

better place for dismiss all button

Summary:
This pr makes a little bit simpler to dismiss all warnings (1 click instead of 2)
Sometimes you don't want to use `YellowBox.ignoreWarnings` to remember.

RNTester sceenshot:

<img width="322" alt="screen shot 2018-05-30 at 09 51 25" src="https://user-images.githubusercontent.com/1488195/40701475-1142506a-63ef-11e8-8fc9-ea1696d9cb65.png">
Or RNTester -> Native Animation Example -> Force JS Stalls (in the end of the list) also cause warning to test.

[GENERAL][ENHANCEMENT][YellowBox] - Move `Dismiss All` yellow box button to another place which makes a little bit simpler to dismiss warnings.
Closes https://github.com/facebook/react-native/pull/19501

Differential Revision: D8243823

Pulled By: hramos

fbshipit-source-id: 31887469cddb4adfd7b889ae0c29a3bf41e87b7b

Slider remove $FlowFixMe

Reviewed By: sahrens

Differential Revision: D8234803

fbshipit-source-id: cfc0466a54f3c219d8a2eadfebf840399a2abdd8

refactor JSI module initialization

Reviewed By: fkgozali

Differential Revision: D8111636

fbshipit-source-id: 6e32703b077144962519485002adff8c9f6084ad

Add backward compatible support for onLayout event in Fabric

Reviewed By: achen1

Differential Revision: D8231722

fbshipit-source-id: 3d0641a7813e742ca81b98576f9ffc30ee597f30

Implement release of FabricUIManager resources

Reviewed By: achen1

Differential Revision: D8232155

fbshipit-source-id: 6683c692a830f5a73aab2c606167e54d668ae5c2

normalizeColor to compute regexps lazily

Reviewed By: johnislarry

Differential Revision: D8241955

fbshipit-source-id: 0939f442bb1e51118207449e0b95c6da97b899da

Revert D8234803: [RN] Slider remove $FlowFixMe

Differential Revision:
D8234803

Original commit changeset: cfc0466a54f3

fbshipit-source-id: 354fcc1853597cbcd518abaf4be5b11116f594b3

Slider remove $FlowFixMe #take2

Reviewed By: fkgozali

Differential Revision: D8246336

fbshipit-source-id: 21555a318bd823309ac2c285b49c2045338c2b28

Slider move prop comments to flow types

Reviewed By: yungsters

Differential Revision: D8246378

fbshipit-source-id: f62a77d64016f6502b3445ab6d0d1558034333e6

Slider to ES6 Class

Reviewed By: yungsters

Differential Revision: D8246422

fbshipit-source-id: 1955ae87abe077115ac8f8ea105be85db8ea66b4

Switch to ES6 Class

Reviewed By: yungsters

Differential Revision: D8246980

fbshipit-source-id: fbd6998429e6791000ea093d3fa15c1a486914bd

Remove duplicated attachWebsocketServer module

Reviewed By: jeanlauliac

Differential Revision: D8248752

fbshipit-source-id: b829de4b0d75d154dd80196b589fe70b0050be4d

Bump metro@0.38.1

Reviewed By: jeanlauliac

Differential Revision: D8248753

fbshipit-source-id: aa6d0da4e96e8b4109b6b5bca050614ec1860fc2

Trigger nested VirtualizedLists to re-measure if their containing cell's onLayout fires

Reviewed By: sahrens

Differential Revision: D8272040

fbshipit-source-id: c490ffa875bfd0547ac54d214c5ebbeb23c99942

skip dismiss all if all rows are hidden (#19564)

Summary:
Small fix based on
https://github.com/facebook/react-native/pull/19501#issuecomment-394486884

No need to mention it

[GENERAL] [BUGFIX] [YellowBox] - Message
Closes https://github.com/facebook/react-native/pull/19564

Differential Revision: D8276808

Pulled By: hramos

fbshipit-source-id: 59832d3d6e60ae30afbeb7c9303405746e9eec45

Fix events not working after closing and navigating back to Fabric screen in FB4A

Reviewed By: fkgozali

Differential Revision: D8240344

fbshipit-source-id: 992945f94843589cefdf7ea24da709449ee38778

Enable proguard for Fabric in release builds

Reviewed By: shergin

Differential Revision: D8247814

fbshipit-source-id: 94ed8a767fcf4f6093646618a5691ff17753ffe0

Use correct library reference for libfishhook.a in RCTWebSocket (#19579)

Summary:
This uses the reference for `libfishhook.a` from the Products, rather than
the reference from the Frameworks group.

This fixes the build for the new Xcode build system, on both Xcode 9 and
Xcode 10.

Fixes #19569

- Using Xcode 10:
	- Open `RNTester/RNTester.xcodeproj`
	- Build RNTester, noting build errors
- Using Xcode 9:
	- Open `RNTester/RNTester.xcodeproj`
	- Switch to using new build system in `File > Project Settings > Build System`, selecting `New Build System (Preview)`
	- Build RNTester, noting build errors

none

[IOS] [BUGFIX] [RCTWebSocket] - Fix build for new Xcode build system
Closes https://github.com/facebook/react-native/pull/19579

Differential Revision: D8287487

Pulled By: hramos

fbshipit-source-id: 5bfc9decb09ebc763824df8474b5897099d39ad7

Add open source Flow declaration for Metro module

Summary:
Fix Flow failure by adding a declaration to the Flow config used in open source. This did not get caught internally because we use a different Flow config.

Release Notes
-------------
[INTERNAL] [MINOR] [Flow] - Fix Flow config.

Reviewed By: rafeca

Differential Revision: D8257641

fbshipit-source-id: 3f4b2cbe622b2e76aa018e9369216a6b9ac25f47

Fix/security issues (#19373)

Summary:
This updates both [`react-devtools-core`](https://github.com/facebook/react-devtools/issues/941) and [`plist`](https://github.com/TooTallNate/plist.js/commit/04c8ee7646d4abcfe13b3fdc3037b75047069ead) to include security fixes, reported by `npm audit`.

Fixes #18854

_Only dependencies are updated with security patches, no change in actual code._

_Only dependencies are updated with security patches, no change in actual code._

[GENERAL] [ENHANCEMENT] [react-devtools-core] - Bump to `3.2.2` for a security fix for `ws`
[GENERAL] [ENHANCEMENT] [plist] - Bump to `3.0.0` for a security fix for `xmlbuilder`

Closes https://github.com/facebook/react-native/pull/19373

Reviewed By: sophiebits

Differential Revision: D8149200

Pulled By: hramos

fbshipit-source-id: 732fd627b232c315be60ed2da432742e8256a38a

Bump Prettier to 1.13.4 on xplat

Summary:
Bump Prettier to use version 1.13.4
All code changes are caused by running Prettier and should only affect files that have an `format` header.
All other changes caused by yarn.

Reviewed By: ryanmce

Differential Revision: D8251255

fbshipit-source-id: 0b4445c35f1269d72730f2000002a27c1bc35914

Change error message on interpolation (#19571)

Summary:
Change message in Animated.Interpolation to "inputRange must be monotonically non-decreasing" as it's allowed to give the same x's like in the test [example](https://github.com/facebook/react-native/blob/4435f087713e1d0ac3639e3b3196d71c6402898e/Libraries/Animated/src/__tests__/Interpolation-test.js#L71)

Simply giving improper value of interpolation input

[GENERAL] [MINOR] [AnimatedInterpolation.js] - Change error message on interpolation improper range error
Closes https://github.com/facebook/react-native/pull/19571

Differential Revision: D8310791

Pulled By: TheSavior

fbshipit-source-id: 803ef55104ad2a36231c5f18c0c089bd14822bf3

Modified deepFreezeAndThrowOnMutationInDev to use Object.prototype.ha… (#19598)

Summary:
This PR fixes a bug in `deepFreezeAndThrowOnMutationInDev` which did not take into account that objects passed to it may have been created with `Object.create(null)` and thus may not have a prototype. Such objects don't have the methods `hasOwnProperty`, `__defineGetter__`, or `__defineSetter__` on the instance.

I ran into an unrecoverable error in React Native when passing this type of object across the bridge because `deepFreezeAndThrowOnMutationInDev` attempts to call `object.hasOwnProperty(key)`, `object.__defineGetter__` and `object__defineSetter__` on objects passed to it. But my object instance does not have these prototype methods.

Changes:
* Defined `Object.prototype.hasOwnProperty` as a `const` (pattern used elsewhere in React Native)
* Modified calls to `object.hasOwnProperty(key)` to use `hasOwnProperty.call(object, key)` (Per ESLint rule [here](https://eslint.org/docs/rules/no-prototype-builtins))
* Modified calls to deprecated methods `object.__defineGetter__` and `object.__defineSetter__` to instead use `Object.defineProperty` to define get and set methods on the object. (Per guidance on [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__))
* Added a new test to `deepFreezeAndThrowOnMutationInDev-test` to verify the fix.

I tried to create a reproducible example to post to Snack by passing prototype-less objects to a `Text` component, in various ways, but they appear to be converted to plain objects before crossing the bridge and therefore they do not throw an error.

However, I was able to create a new test to reproduce the issue. I added the following test to `deepFreezeAndThrowOnMutationInDev-test`:

```JavaScript
it('should not throw on object without prototype', () => {
    __DEV__ = true;
    var o = Object.create(null);
    o.key = 'Value';
    expect(() => deepFreezeAndThrowOnMutationInDev(o)).not.toThrow();
  });
```

The changes in this PR include this new test.

ESLint test produced no change in Error count (3) or Warnings (671)

N/A
Other areas with _possibly_ the same issue:
https://github.com/facebook/react-native/blob/c6b96c0df789717d53ec520ad28ba0ae00db6ec2/Libraries/vendor/core/mergeInto.js#L50
https://github.com/facebook/react-native/blob/8dc3ba0444c94d9bbb66295b5af885bff9b9cd34/Libraries/ReactNative/requireNativeComponent.js#L134

 [GENERAL] [BUGFIX] [Libraries/Utilities/deepFreezeAndThrowOnMutationInDev] -Fix for compatibility with objects without a prototype.
Closes https://github.com/facebook/react-native/pull/19598

Differential Revision: D8310845

Pulled By: TheSavior

fbshipit-source-id: 020c414a1062a637e97f9ee99bf8e5ba2d1fcf4f

Update Danger token (#19606)

Summary:
Trivial.
Closes https://github.com/facebook/react-native/pull/19606

Differential Revision: D8314419

Pulled By: hramos

fbshipit-source-id: b298e265c2c87cdc01175b1a014f9003e0673f40

Remove unused include. (#19548)

Summary:
`LayoutableShadowNode.cpp` includes `"LayoutableShadowNode.h"` as well as `<fabric/core/LayoutContext.h>`. In turn, `LayoutContext.h` then includes `<fabric/core/LayoutableShadowNode.h>`. `LayoutContext.h` doesn't actually require `LayoutableShadowNode.h`, but this unnecessary inclusion can cause duplicate definition errors if the two include paths don't map to exactly the same file. This patch removes the unnecessary include.

The CI's build system should cover the testing needed.

[INTERNAL] [MINOR] [fabric] - Remove an unnecessary include in fabric/core/layout.
Closes https://github.com/facebook/react-native/pull/19548

Differential Revision: D8313337

Pulled By: shergin

fbshipit-source-id: 2e01e29ff25131543d9a8601483c2e716c7437be

Fix ReactImagePropertyTest SoLoader failures (#19607)

Summary:
Fixes #18637 & #19309

<!--
  Required: Write your test plan here. If you changed any code, please provide us with
  clear instructions on how you verified your changes work. Bonus points for screenshots and videos!
-->

Check Android `ReactImagePropertyTest` tests pass.

<!--
  Does this PR require a documentation change?
  Create a PR at https://github.com/facebook/react-native-website and add a link to it here.
-->

<!--
  Required.
  Help reviewers and the release process by writing your own release notes. See below for an example.
-->

 [ANDROID] [BUGFIX] [Unit Tests] - Fix ReactImagePropertyTest SoLoader failure

<!--
  **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

    CATEGORY
  [----------]      TYPE
  [ CLI      ] [-------------]    LOCATION
  [ DOCS     ] [ BREAKING    ] [-------------]
  [ GENERAL  ] [ BUGFIX      ] [ {Component} ]
  [ INTERNAL ] [ ENHANCEMENT ] [ {Filename}  ]
  [ IOS      ] [ FEATURE     ] [ {Directory} ]   |-----------|
  [ ANDROID  ] [ MINOR       ] [ {Framework} ] - | {Message} |
  [----------] [-------------] [-------------]   |-----------|

 EXAMPLES:

 [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things
 [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput
 [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with
 [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word
 [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position
 [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see
-->
Closes https://github.com/facebook/react-native/pull/19607

Differential Revision: D8325415

Pulled By: hramos

fbshipit-source-id: 598baa3499646bb50da065815c19bb9f76bf6c87

Fixed concurrency issue in remote debugger

Reviewed By: rafeca

Differential Revision: D8316215

fbshipit-source-id: 70b5000a9bf09897bb9b9d505bfc5dcc7c4c3a41

Fix NullPointerException when emiting event using UIManagerModule

Reviewed By: achen1

Differential Revision: D8321766

fbshipit-source-id: ae5052c83f46e08d540b90bf5b71c68f354c566d

QuickPerformanceLogger.js: markerPoint + iOS/Android JS binding

Reviewed By: alexeylang

Differential Revision: D8125546

fbshipit-source-id: bb02921c7d89faba64001bff3b9aaf13f64a7f8b

Fabric: Using Size instead of Point as textShadowOffset's type

Summary:
The current implementation of React Native uses `Size` as the underlying type of `textShadowOffset` which is clearly terribly wrong (especially because negative size values makes no sense). This mistake was borrowed from `NSShadow`, I believe.
I don't have time to fix this in every implementation of RN now, so let's use `Size` in Fabric as well.

Reviewed By: fkgozali

Differential Revision: D8246714

fbshipit-source-id: 1f0bf9b9dfa83802ef3faef2971fed5510494bfd

Fabric: Using exact UIFontWeight* constants instead of CGFloat

Summary: SUDDENLY, `-[UIFont systemFontOfSize:weight:]` returns incorrect result if `weight` is not exactly equal to any of built-in constants.

Reviewed By: fkgozali

Differential Revision: D8246712

fbshipit-source-id: 13d59cc8d66a4494437f28d791fd93fa83ebe6fb

Fabric: Data model of Touch Events

Summary: The data model of Touch events and payload serialization. The implementation mimics W3C standard and current React Native implementation.

Reviewed By: fkgozali

Differential Revision: D8246711

fbshipit-source-id: 955b2068674f290d8bdb82da1ebfb796dd32971b

Fabric: Introducing RCTSurfaceTouchHandler

Summary:
RCTSurfaceTouchHandler is a complete rewrite of RCTTouchHandler which uses direct Fabric-specific event dispatching pipeline and several new approaches to managing active events (such as high-performant C++ collections, better management of identifier pool, and so on).
Besides that, the new implementation is much more W3C compliant that it used to be (see old TODOs near `receiveTouches()` implementation in Javascript).
So, touch events work now!

Reviewed By: fkgozali

Differential Revision: D8246713

fbshipit-source-id: 218dc15cd8f982237de7e2497ff36a7bfe6d37cc

Fabric: `convertRawProp` was extended to accept an optional default value

Summary:
During transforming raw prop (`rawProps[<prop>]`) to typed props (`MyProps.<prop>`) we can face three different cases:
 * `rawProps` collection has proper serialized value for the key. In this case, we have to set a new value of the typed prop converting value using `fromDynamic`.
 * `rawProps` collection does not have value for the key. In this case, we have to copy a value from source prop (`sourceValue`).
 * `rawProps` collection has `null` value for the key. This is the special case which means that the prop was removed from the particular component instance and we have to reset it to some *default* value (which is *not* the same as `sourceValue`). Now the default value of the `defaultValue` (sic!) argument is a default value of the type of the value (which may be different from logical default value).

We didn't handle the last case previously and this caused crashes (and unexpected behavior) because `fromDynamic` often cannot handle `null` value.

And yes, all this mean that we also have to update all `convertRawProp` call sites where logical default values are not equal to type-specific default values. This is a potential error-prone place, especially because now we have to specify logical default values in two places (in a prop declaration and in a parameterized constructor). And seems there is no way to avoid that without performance loss (because both of those places are basically constructors).

My hope is that codegen (where default values are also defined in JavaScript) will help with it eventually.

Reviewed By: fkgozali

Differential Revision: D8247652

fbshipit-source-id: 2cbe65f5f5cccd7a0d34aaa19e385aacebfe8cb1

Bump eslint-plugin-react in FBSource

Reviewed By: yungsters

Differential Revision: D8247892

fbshipit-source-id: 4072e65ccf2fdc654f58087a16b4c7709ce393f8

have circle ci use xcode 9.4 (#19629)

Summary:
Circle CI just released Xcode 9.4 https://discuss.circleci.com/t/xcode-9-4-availability-on-circleci/22648/5

Make sure react native still works with Xcode 9.4.

None

[IOS][MINOR] Upgrade CI
Closes https://github.com/facebook/react-native/pull/19629

Differential Revision: D8343236

Pulled By: hramos

fbshipit-source-id: 2266aeafc9a1b1c77ad842f06c9a137bb05b135d

Disallow requiring from invariant/warning (#19634)

Summary:
In this repo we have to require from fbjs/lib/invariant and issues occur when we require directly from invariant/warning. Flow doesn't complain about those requires right now because we have a transitive dependency on invariant and warning causing them to happen to be at the root of node_modules.

This change blacklists requiring directly from invariant and warning using Flow. janicduplessis opened a pull request to do this with ESLint back in 2017: https://github.com/facebook/react-native/pull/13014
Closes https://github.com/facebook/react-native/pull/19634

Reviewed By: hramos

Differential Revision: D8343060

Pulled By: TheSavior

fbshipit-source-id: 9cfc7915b2fb68a567355fc2f5edc4dfcd46f4af

Fabric: All *EventHandlers were renamed to *EventEmitter

Summary:
Using `EventHandlers` name was a bad idea, and I cannot tolerate it anymore.
The worst part of it is that when you have a collection of `EventHandlers` objects you cannot use plural word to describe it because `EventHandlers` is an already plural word.

And, this object is actually an event emitter, the thing on which we call events.

Reviewed By: fkgozali

Differential Revision: D8247723

fbshipit-source-id: b3303a4b9529bd6d32bb8ca0378287ebefaedda8

Add MIT License Header

Summary: When a third party library is vendored, both the original copyright header as well as React Native's header are required.

Reviewed By: fkgozali

Differential Revision: D8284116

fbshipit-source-id: 1748eb011c843a87e9ed421597571b66334edfd2

Migrate PickerIOS to ES6 Class

Reviewed By: sahrens

Differential Revision: D8343380

fbshipit-source-id: 9432f0810c67034f20b44ba9f4955d4ffd2ef1d2

Fix some typos in dumpReactTree.js (#19636)

Summary:
Simple doc fixes
Closes https://github.com/facebook/react-native/pull/19636

Differential Revision: D8344481

Pulled By: TheSavior

fbshipit-source-id: b6fa064f70793bdaf1d6346b2775373b74c2ae3b

iOS: fix fabric core test

Reviewed By: shergin

Differential Revision: D8344613

fbshipit-source-id: 10c604e7fbe2ff3b8c47babedea12a197c0c56b2

Switch to Platform.isTV to pass Android Flow

Reviewed By: sahrens

Differential Revision: D8345911

fbshipit-source-id: 9af7a25127e7c35844a6c59b267a77cf8adba535

Passing forwardedRef to Slider

Reviewed By: sahrens

Differential Revision: D8345883

fbshipit-source-id: d2affdba14d38593541e591fe72006c76fca166f

Enable Flow for bezier

Reviewed By: sahrens

Differential Revision: D8346102

fbshipit-source-id: bb1a2eccb5472bf6f3fe113303ad96cf3f386cab

Don't pass additional args to requireNativeComponent in .android.js files

Reviewed By: sahrens

Differential Revision: D8345921

fbshipit-source-id: 187048ad4c1b361f0b99b993052bdcaf47a266db

Fix iOS e2e tests: bump react-native-babel-preset to ^5 (#19625)

Summary:
We opt in to version ^5 of the React Native Babel Preset, as required after the bump to Babel 7. This fixes the Objective-C end-to-end test failure in master. (Fixes #19538)

See https://github.com/facebook/react-native/commit/34bd776af2f2529009188fced91083203a48fd40#commitcomment-29024085 for prior discussion.

There have already been several changes made to the repo during the transition to Babel 7. This PR brings all tests back to green and allows us to move forward with the 0.56 branch cut.

We also bump our tests to use Xcode 9.4.0 and iOS 11.4, the latest stable versions of both.

Once the 0.56 branch makes it to stable, we can change `react-native-babel-preset@latest` on npm to point to `react-native-babel-preset@5.0.1` (or newer), and undo the change made to `init.js` we made as part of this diff.

Wait for Circle CI to run: https://circleci.com/workflow-run/e39a66d7-bf8a-4b31-a22f-eef30a2c53bc

[GENERAL] [BREAKING] [Babel] - Bump React Native Babel Preset version used by RN CLI to Babel v7 compliant release
Closes https://github.com/facebook/react-native/pull/19625

Reviewed By: TheSavior

Differential Revision: D8343861

Pulled By: hramos

fbshipit-source-id: 42644d5b0bfb40a8bc592ae3461c5008deef8232

Upgrade to Flow v0.74.0

Reviewed By: panagosg7

Differential Revision: D8322344

fbshipit-source-id: 1208528009785f7f797201777287af525d0a9ca1

Open source Flow definition for Jest

Reviewed By: sahrens

Differential Revision: D8347198

fbshipit-source-id: 0b6194bfd14bad09db7dcd462f0bf342c9c6fe44

Add back deprecated getParent methods for non-breaking API change (#775)

Summary:
I'm not totally sure what I'm doing so if this needs changes let me know.
Closes https://github.com/facebook/yoga/pull/775

Reviewed By: emilsjolander

Differential Revision: D8331892

Pulled By: passy

fbshipit-source-id: eb1023e666322d2472e4081fd4a4e72a7b43d049

Trigger onFocus/onBlur instead of onPressIn/onPressOut (eventually, but for now just deprecate) (#18470)

Summary:
Currently on iOS and Android focus/blur events trigger onPressIn/onPressOut. Based on discussions with people are several companies who use react-native we're proposing instead triggering new events onFocus/onBlur. Initial discussion on Slack with some from the core team on Slack seemed positive.

Couple reasons:

* The current API behavior overloads onPressIn/onPressOut. That means on platforms like react-native-web, if focus/blur support was added (as we're hoping for), even though onPressIn/onPressOut would be useful as the name describes, you wouldn't be able to distinguish between it and browser element focus/blur events.
* The names aren't as self-documenting/intuitive as onFocus/onBlur, especially for react-dom users.

There aren't any current tests around this, but I intend to add them if we solidify the API.

There's also an option question on the transition--do we deprecate the existing API with a warning? This PR just deprecates them, though it will on any TV platform when something becomes focused regardless of whether they use the API or not. This isn't ideal. It's not clear if there are alternatives or if just right away breaking the API for TV users is the correct solution, if we can get consensus between the few parties who are using it.

***

I'm interested to hear counter points or prior discussions.

Cc/ matthargett dlowder-salesforce rozele
Closes https://github.com/facebook/react-native/pull/18470

Differential Revision: D8368109

Pulled By: hramos

fbshipit-source-id: 22587b82e091645e748b6c2d721fdff06d54837f

Jest: Upgrade Flow Definition in RN + Metro

Reviewed By: sahrens

Differential Revision: D8371076

fbshipit-source-id: 12d03c545ca190a5fda1ff319e5ea906173d2241

RN: A wild YellowBox has appeared!

Summary:
Replaces the existing `YellowBox` with a modern one.

Here are the notable changes:

- Sort warnings by recency (with most recent on top).
- Group warnings by format string if present.
- Present stack traces similar to RedBox.
- Show status of loading source maps.
- Support inspecting each occurrence of a warning.
- Fixed a bunch of edge cases and race conditions.

Reviewed By: TheSavior

Differential Revision: D8345180

fbshipit-source-id: b9e10d526b262c3985bbea639ba2ea0e7cad5081

fix forwardRef displayName on Text and View

Reviewed By: TheSavior

Differential Revision: D8342852

fbshipit-source-id: 5af80edfd5de5b6d6ea6fdc24abf8931f767c812

Fix more forwardRef displayNames

Reviewed By: TheSavior

Differential Revision: D8342904

fbshipit-source-id: b6e53da7305d71635528a42e80910f4a9db0455c

Upgrade react-test-render to handle React.forwardRef

Reviewed By: TheSavior

Differential Revision: D8346704

fbshipit-source-id: fc6686fab12a429780fb16e4129e8987529b13af

iOS: Fixed some props conversion errors

Summary:
* numbers in JS are doubles in native land, since there's no notion of int or int64 in JS - so simply convert numbers to int instead of assuming it's int
* the parsing of Yoga props with `'...%'` string value has a bug: it should be copying the number instead of the `%`

Reviewed By: shergin

Differential Revision: D8370873

fbshipit-source-id: 44e9e3f0530c000c963e8e9ca66e8b0a48d80bcd

Flow: textShadownOffest needs to be stricter

Summary: `width` and `height` are required for this style prop, for the sake of consistency (and Fabric). Callsites should set one of them to 0 instead of not specifying it.

Reviewed By: TheSavior, shergin

Differential Revision: D8371064

fbshipit-source-id: b0ffd6b6543ac5456a3708382966e7b3df241f7e

Revert D8346704: Upgrade react-test-render to handle React.forwardRef

Differential Revision:
D8346704

Original commit changeset: fc6686fab12a

fbshipit-source-id: 4d1a9d109ef5be93c40df2701f35966bf441eb0a

Revert D8342904: [StrictMode] Fix more forwardRef displayNames

Differential Revision:
D8342904

Original commit changeset: b6e53da7305d

fbshipit-source-id: abf5fa6ccb16058f20cbb569ecfc790fad017133

fix No bundle url present in iOS (#19643)

Summary:
fix No bundle url present in iOS.
Related issue: https://github.com/facebook/react-native/issues/14118, https://github.com/facebook/react-native/issues/12754.
Pass all current ci
none
 [GENERAL] [BUGFIX] [iOS] - fix No bundle url present in iOS
Closes https://github.com/facebook/react-native/pull/19643

Differential Revision: D8374583

Pulled By: hramos

fbshipit-source-id: 62d621f431d2067825dc701f87044ecb1d720f14

Fixed comparison on possible null object (#19675)

Summary:
Motivation: getting NPE on BlobModule part

<img width="1718" alt="screen shot 2018-06-12 at 3 03 48 pm" src="https://user-images.githubusercontent.com/4340636/41292212-31e0acc8-6e52-11e8-916a-dd6fc2bb695a.png">

Should still build and pass all tests since project settings changes should be safe changes.

<!--
  Required: Write your test plan here. If you changed any code, please provide us with
  clear instructions on how you verified your changes work. Bonus points for screenshots and videos!
-->

No documentation change is required
<!--
  Does this PR require a documentation change?
  Create a PR at https://github.com/facebook/react-native-website and add a link to it here.
-->

<!--
  Required.
  Help reviewers and the release process by writing your own release notes. See below for an example.
-->

[ANDROID][BUGFIX][BlobModule] safe equals checks

<!--
  **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

    CATEGORY
  [----------]      TYPE
  [ CLI      ] [-------------]    LOCATION
  [ DOCS     ] [ BREAKING    ] [-------------]
  [ GENERAL  ] [ BUGFIX      ] [ {Component} ]
  [ INTERNAL ] [ ENHANCEMENT ] [ {Filename}  ]
  [ IOS      ] [ FEATURE     ] [ {Directory} ]   |-----------|
  [ ANDROID  ] [ MINOR       ] [ {Framework} ] - | {Message} |
  [----------] [-------------] [-------------]   |-----------|

 EXAMPLES:

 [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things
 [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput
 [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with
 [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word
 [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position
 [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see
-->
Closes https://github.com/facebook/react-native/pull/19675

Differential Revision: D8380228

Pulled By: hramos

fbshipit-source-id: 1d3caefdb7a7d638228490ef7b3771617745d26f

Implement console group APIs (#18555)

Summary:
Thank you for sending the PR! We appreciate you spending the time to work on these changes.
Help us understand your motivation by explaining why you decided to make this change.

React Native provides an implementation of the Web "Console" API, which is a powerful mechanism for debugging and analyzing RN apps. However, one subset of the Console API that RN does not provide is the "grouping" functions, namely `console.group` and `console.groupEnd`. These functions provide a useful way to see how an application behaves within a different parts of an application hierarchy.

I modified the "RNTester" app to create a console group each time an example is tapped, and the group is ended when the "Back" button is tapped. Here is an example of the grouping as seen in the Xcode console.

<img width="651" alt="console grouping" src="https://user-images.githubusercontent.com/445421/37882070-d2ae7860-306d-11e8-8cf4-be843a864f43.png">

https://github.com/facebook/react-native-website/pull/270

[GENERAL] [ENHANCEMENT] [console.js] - Add `console.group()` and `console.groupEnd()` APIs, matching the Web Console API.
Closes https://github.com/facebook/react-native/pull/18555

Differential Revision: D7992131

Pulled By: hramos

fbshipit-source-id: 0d28896292563922240ae2100ed49e35b6d1f102

Bump soloader to 0.5.0 (#19676)

Summary:
Closes https://github.com/facebook/react-native/pull/19676

0.5.0 adds compatibility for Android P.

Reviewed By: mdvacca

Differential Revision: D8379610

fbshipit-source-id: cbef6c2e5e82e2d9e17756b00d210fecb04e8a40

Expose getResolverMainFields() config param

Reviewed By: mjesun

Differential Revision: D8380198

fbshipit-source-id: 3d5b7a5873095db2b90a23b5054fb94579df3f1a

Bump metro@0.39.0

Reviewed By: mjesun, davidaurelio

Differential Revision: D8380199

fbshipit-source-id: 6b9e3aa343e8d0526a3c42d5ea266c44428d31f8

YellowBox: Apply SafeAreaView in Header

Summary: Uses `SafeAreaView` in the YellowBox inspector header so that it does not collide with the status bar.

Reviewed By: sahrens

Differential Revision: D8374861

fbshipit-source-id: e67358ac9268db8291cacf79df402f3bd5a2173d

use android build-tools 26.0.2 and set compileSdk to 26 (#19662)

Summary:
Android Target API Level 26 will be required starting from August 2018, it's so soon 😄.Read https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html

This PR uses android build tools 26.0.2, support library 26.1.0 (with android lifecycle) and setting compileSdkVersion to 26, but leaving minSdkVersion and targetSdkVersion intact, which will make targeting 26 easy.

Circle CI: https://circleci.com/gh/dulmandakh/react-native/209

Everything will build and work just fine.

[ANDROID] [ENHANCEMENT] [TOOLS] - Use android build-tools 26.0.2 and set compileSdk to 26, and use support library version 26.1.0.
Closes https://github.com/facebook/react-native/pull/19662

Differential Revision: D8398855

Pulled By: hramos

fbshipit-source-id: a4066eb04cb5f947efe1f3202b638c1092b79aae

Support animated values for border dimensions

Summary:
The flow types for these were too restrictive.

Fixes https://github.com/facebook/react-native/issues/19093

Reviewed By: yungsters

Differential Revision: D8409550

fbshipit-source-id: e4774e8856efc998ff1fa6cdcbe7b0cb6db2c4e3

YellowBox: Define in __DEV__ Only

Summary: This makes it so that `YellowBox` and its dependencies are completely stripped from production bundles.

Reviewed By: sahrens

Differential Revision: D8402545

fbshipit-source-id: 6993521280a02dfe5eab8863d12c46781f35444f

- Keyboard layout now updates when changing keyboardType while it has focus (#19027)

Summary:
This PR makes sure that changing the `keyboardType` props of `<TextInput>` is reflected while the text field has focus. It is something that is also discusses in #13782. The workaround mentioned in that issue using `key` causes the TextInput to re-render itself which has some undesired side-effects.

Fixes #13782

```javascript
export default class KeyboardTypeApp extends Component {
  state = { keyboardType: 'default' };

  toggleKeyboardType = () => {
    this.setState({
      keyboardType: this.state.keyboardType === 'default' ? 'numeric' : 'default'
    });
  }

  render() {
    return (
      <View style={{ padding: 40 }}>
        <TextInput autoFocus value="Press Toggle :)" keyboardType={this.state.keyboardType} />
        <Button title="Toggle" onPress={this.toggleKeyboardType} />
      </View>
    );
  }
}
```

![video](https://user-images.githubusercontent.com/706368/39268429-3e331440-48d0-11e8-947c-7d334e3cec50.gif)

<!--
  Does this PR require a documentation change?
  Create a PR at https://github.com/facebook/react-native-website and add a link to it here.
-->

 [IOS] [ENHANCEMENT] [TextInput] - Keyboard layout now updates when changing `keyboardType` while it has focus

<!--
  **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

    CATEGORY
  [----------]      TYPE
  [ CLI      ] [-------------]    LOCATION
  [ DOCS     ] [ BREAKING    ] [-------------]
  [ GENERAL  ] [ BUGFIX      ] [ {Component} ]
  [ INTERNAL ] [ ENHANCEMENT ] [ {Filename}  ]
  [ IOS      ] [ FEATURE     ] [ {Directory} ]   |-----------|
  [ ANDROID  ] [ MINOR       ] [ {Framework} ] - | {Message} |
  [----------] [-------------] [-------------]   |-----------|

 EXAMPLES:

 [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things
 [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput
 [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with
 [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word
 [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position
 [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see
-->
Closes https://github.com/facebook/react-native/pull/19027

Differential Revision: D8416007

Pulled By: PeteTheHeat

fbshipit-source-id: c4f89ab3dc0819bca52feddbc9c7a9f62fd96794

Bumping Metro to 0.39.1

Reviewed By: rafeca

Differential Revision: D8418105

fbshipit-source-id: 66032deb53f46a388b81233e8d00d7af6a2c7fa7

improve NativeModuleRegistryBuilder.java (#16402)

Summary:
I met the error `Native module xyz tried to override xyz for module name xyzModuleName. If this was your intention...` after something went wrong during `react-native link` - one module somehow ended up being included twice in the `getPackages` method, as in:

```java
Override
        protected List<ReactPackage> getPackages() {
            return Arrays.<ReactPackage>asList(
                    new MainReactPackage(),
            new WowPackage(),
            new WowPackage(),
```

Since I have > 20 native modules it took me a little while to find out what the problem was. The improved error message should make the problem clearer to anybody who may encounter it. I did try to refactor the code a little more, by extracting the whole part of:

```java
        String name = moduleHolder.getName();
        if (namesToType.containsKey(name)) {
          Class<? extends NativeModule> existingNativeModule = namesToType.get(name);
          if (!moduleHolder.getCanOverrideExistingModule()) {
            throw new IllegalStateException(getModuleOverridingExceptionMessage(
              type.getSimpleName(),
              existingNativeModule.getSimpleName(),
              name
            ));
          }

          mModules.remove(existingNativeModule);
        }

        namesToType.put(name, type);
        mModules.put(type, moduleHolder);
```

out into a separate method since there were two places where nearly identical code was written.

I have built RN from source and used it in a very simple app with RN vector icons (the package creates a native module as can be seen [here](https://github.com/oblador/react-native-vector-icons/blob/master/android/src/main/java/com/oblador/vectoricons/VectorIconsPackage.java#L19)).

After including the module twice, ie.

```java
        Override
        protected List<ReactPackage> getPackages() {
            return Arrays.<ReactPackage>asList(
                    new MainReactPackage(),
                    new VectorIconsPackage(),
                    new VectorIconsPackage()
            );
        }
```

I get the improved error description, as seen in the screenshot.

<img src="https://user-images.githubusercontent.com/1566403/36340960-3289d9d0-13e7-11e8-8d17-e1651da17841.png" height="500">

[ANDROID] [MINOR] [NativeModuleRegistryBuilder] - Improve error message and refactor putting native modules to module maps
Closes https://github.com/facebook/react-native/pull/16402

Differential Revision: D8421392

Pulled By: hramos

fbshipit-source-id: 719bd37b4681933d35858621b402ae73dd460a5b

YellowBox: Restore ES5 Compatibility

Reviewed By: sahrens

Differential Revision: D8421561

fbshipit-source-id: c2b8d430f4d0c9ce0d5177f0af5eb5f404916024

Publish releases automatically, update docs (#19715)

Summary:
Now that tests are green, we can return to automatic publishing to npm based on git tags. As long as all tests are passing, deploying a new release of React Native is as easy as tagging a commit. I've updated `Releases.md` to reflect today's release process.

Future Work: Include information about updating the website, as this is no longer done automatically.
Closes https://github.com/facebook/react-native/pull/19715

Differential Revision: D8429834

Pulled By: hramos

fbshipit-source-id: 2c6f2c80ac43c4e6d20c01e06ba14a7e4b16180d

Feature/add decimal pad to android (#19714)

Summary:
For a current use-case we need the a keyboard with characters 0-9 and a decimal point (or comma depending on language settings)

This exists on iOS as UIKeyboardType "decimalPad" and this is what react-native maps to for both "numeric" and "decimal-pad". This also exists on Android as inputType "numberDecimal", but is currently not accessible through react-native.

This PR maps the value "decimal-pad" of the keyboardType property of TextInput to the Android inputType "numberDecimal", effectively making "decimal-pad" cross platform without breaking anything.

* https://facebook.github.io/react-native/docs/textinput.html#keyboardtype
* https://developer.apple.com/documentation/uikit/uikeyboardtype
* https://developer.android.com/reference/android/widget/TextView#attr_android:inputType

There is this bug in some Samsung keyboards where both the - sign and decimal sign disappear when the keyboardType is set to "number" and both the "signed" and "decimal" flags are set. (Like is the case when using the react-native keyboardType prop "numeric".) https://androidforums.com/threads/numeric-soft-keyboard-missing-minus-sign-in-android-8-0-samsung-a5.1272628/

For developers that need decimal numbers but not negative ones, using "decimal-pad" will provide a workaround. I reproduced this on a Samsung A5 only, but maybe other phones have this exact issue. https://github.com/facebook/react-native/issues/12988 https://github.com/facebook/react-native/issues/12977 https://github.com/facebook/react-native/issues/17473 https://github.com/facebook/react-native/issues/17474

* Added testcase consistent with existing keyboardType tests
* Also added testcase for the related, but missing number-pad

This PR follows the same approach as the recently merged PR introducing "number-pad" https://github.com/facebook/react-native/pull/18350/commits/b638847a46491bd75e7ce7928c73f7cb78399195

Documentation PR: https://github.com/facebook/react-native-website/pull/405

 [ANDROID] [ENHANCEMENT] [TextInput] - Added "decimal-pad" keyboard type
Closes https://github.com/facebook/react-native/pull/19714

Differential Revision: D8429185

Pulled By: mdvacca

fbshipit-source-id: 6b56da2088f2be427ebffa04c4e17c91ffb9f7d9

add google maven repo in android project template (#19712)

Summary:
This PR will add Google maven repo to RN project template that contains com.android.support:appcompat-v7:26.1.0, thus fixes `react-native run-android` using version 0.56.0-rc.1

CI is Green - https://circleci.com/gh/dulmandakh/react-native/235

new Android projects will build and run just fine.
Closes https://github.com/facebook/react-native/pull/19712

Differential Revision: D8433730

Pulled By: hramos

fbshipit-source-id: b7d5a1cd5a97b1c4aad2a307158d6dbfcf9a42a5

bump gradle-plugin@2.3.3, gradle@3.5.1, gradle-download-task@3.4.3 (#19697)

Summary:
bump gradle-plugin@2.3.3, gradle@3.5.1, gradle-download-task@3.4.3, as we landed build tools 26.0.2 with https://github.com/facebook/react-native/commit/065c5b6590de18281a8c592a04240751c655c03c

Will improve Android build performance.

Everything will work as normal, but build faster.

<!--
  Required.
  Help reviewers and the release process by writing your own release notes. See below for an example.
-->

[ANDROID] [ENHANCEMENT] [TOOLS] - bump gradle-plugin@2.3.3, gradle@3.5.1, gradle-download-task@3.4.3
Closes https://github.com/facebook/react-native/pull/19697

Differential Revision: D8433743

Pulled By: hramos

fbshipit-source-id: da72aeb314bed7f63807a0c69bebd24c633cc807

Update GitHub Issue templates (#19723)

Summary:
Now that we have templates for everything we want to handle in the repo, the bot will go back to automatically closing issues that do not use one of the provided templates.

We have an escape valve for generic issues ("For Discussion"), so anyone who gets their issue closed automatically by the bot is unlikely to have read our instructions.
Closes https://github.com/facebook/react-native/pull/19723

Differential Revision: D8435415

Pulled By: hramos

fbshipit-source-id: 41db33cefce1367ad8f3d9440b7bba27565679cb

add RNTester to ci (#19673)

Summary:
* Current ci is missing an important part to test the whole part. With this we can make sure the js and android part compiles.
* Ensure the current android proguard rules is okay.

The `my-release-key.keystore` is just a copy of debug.keystore in `react-native/keystores`.
Pass all ci.
none
 [GENERAL] [ENHANCEMENT] [CI] - Add RNTester to ci
Closes https://github.com/facebook/react-native/pull/19673

Differential Revision: D8435419

Pulled By: hramos

fbshipit-source-id: d3d92a5d1b8477c1f298643cc96695769e5c93ea

iOS: Fixed the bug where a Backspace event was emitted when entering characters after clearing a text in TextInput by an empty string (#18627)

Summary:
The bug #18374 was caused by the loose condition to execute `stringByReplacingCharactersInRange` in the method `textInputShouldChangeTextInRange` . As a result, `findMismatch` wrongly returning `true` which ends up the Backspace event being fired in another `textInputShouldChangeTextInRange` call in `textInputDidChange`.

<!--
  Required: Write your motivation here.
  If this PR fixes an issue, type "Fixes #issueNumber" to automatically close the issue when the PR is merged.
-->

1. Pass all the tests by `yarn run test`
2. Run the following code and type any text. (This code is brought from #18374. Thank you michalpetrov!!) And then verify that 'Backspace' events are not emitted after clearing text
and entering any letters.

```javascript
type Props = {};
type State = {
  text: string,
  keys: string
};
export default class App extends Component<Props, State> {
  state = {text: '', keys: ''}
  render() {
    return (
      <View style={styles.container}>
        <TextInput style={styles.textInput} value={this.state.text} onChangeText={this.onChangeText} onKeyPress={this.onKeyPress}/>
        <Button title="Clear" onPress={this.onClear}/>
        <Text>Text: {this.state.text}</Text>
        <Text>Keys: {this.state.keys}</Text>
      </View>
    );
  }

  onChangeText = (text: string) => {
    this.setState({text})
  }

  onKeyPress = ({ nativeEvent }: Object) => {
    this.setState({keys: this.state.keys + nativeEvent.key + ', '})
  }

  onClear = () => {
    this.setState({text: '', keys: ''})
  }
}
```

<!--
  Does this PR require a documentation change?
  Create a PR at https://github.com/facebook/react-native-website and add a link to it here.
-->

<!--
  Required.
  Help reviewers and the release process by writing your own release notes. See below for an example.
-->

[IOS] [BUGFIX] [TextInput] - Fixed the bug where Backspace event was emitted when entering a character after clearing a text in TextInput by an empty string

<!--
  **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

    CATEGORY
  [----------]      TYPE
  [ CLI      ] [-------------]    LOCATION
  [ DOCS     ] [ BREAKING    ] [-------------]
  [ GENERAL  ] [ BUGFIX      ] [ {Component} ]
  [ INTERNAL ] [ ENHANCEMENT ] [ {Filename}  ]
  [ IOS      ] [ FEATURE     ] [ {Directory} ]   |-----------|
  [ ANDROID  ] [ MINOR       ] [ {Framework} ] - | {Message} |
  [----------] [-------------] [-------------]   |-----------|

 EXAMPLES:

 [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things
 [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput
 [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with
 [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word
 [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position
 [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see
-->
Closes https://github.com/facebook/react-native/pull/18627

Differential Revision: D8436331

Pulled By: hramos

fbshipit-source-id: ec75a6ca926061cbf7cb106db652f2b4a71c9a0c

Refactor Log to Flog in Fabric

Reviewed By: shergin

Differential Revision: D8363593

fbshipit-source-id: fb4104b66ef3d50d4101c39a1bf4515e6d0ecd19

Adding UIManager performance counters in Fabric

Reviewed By: fkgozali

Differential Revision: D8381255

fbshipit-source-id: d817557c8a3033d0d7ae47e5ea0a21d224279e29

Add systrace logging for Fabric android

Reviewed By: fkgozali

Differential Revision: D8387339

fbshipit-source-id: 2e202566541cc25fb6b8773a94e607e8b40fb0ce

Tightening some Image Flow Types

Reviewed By: yungsters

Differential Revision: D7270059

fbshipit-source-id: 3b9727363aeb6910fbbdc613a70d9e8cac97b3b1

ios: expose surfaceForRootTag: up the chain

Summary: The app needs to find the surface by rootTag at some point.

Reviewed By: shergin

Differential Revision: D8391957

fbshipit-source-id: b0bb107b7be882071890afb46de17b50e7ee060d

Keep UIManagerModule as a default renderer

Reviewed By: fkgozali

Differential Revision: D8439626

fbshipit-source-id: d761d977c9e6dab38f21e18da72b045483431f79

Checkbox to inherit from AppCompatCheckBox (#18318)

Summary:
The checkbox components inherits from `android.widget.CheckBox`. `AppCompatCheckBox` offers better appearance and support for advanced features (eg. tinting) on older APIs.

~~However, the build fails for some reason; If somebody could shed some light on this, I'd appreciate it.~~ Thanks for the comment, I was being blind and somehow ignored the BUCK file.

I have created a simple app with a checkbox.

Screenshot from android 4.1 (current master):

<img src="https://user-images.githubusercontent.com/1566403/37357997-2d34bdb8-26ea-11e8-8c77-709a4f96c6bf.png" width="300" />

Screenshot after applying the change, also android 4.1:

<img src="https://user-images.githubusercontent.com/1566403/37358016-3c28fb86-26ea-11e8-8dca-3a92e41450c9.png" width="300" />

https://github.com/facebook/react-native/pull/18300 (this PR is needed to support tinting on older android api levels)

[ANDROID]  [ENHANCEMENT]  [Checkbox] - Checkbox inherits from AppCompatCheckBox
Closes https://github.com/facebook/react-native/pull/18318

Differential Revision: D7268393

Pulled By: hramos

fbshipit-source-id: 01cb2819f4d56c4e0f94cdd1fb5e1a90667a398a

Bump Metro dep in RN preset to 39.1, preset to 5.0.2

Reviewed By: rubennorte

Differential Revision: D8445528

fbshipit-source-id: e8937509bb1384a2d62e880c860306d8c86dab92

Revert "Bump soloader to 0.5.0 (#19676)" (#19739)

Summary:
This reverts commit e3c5524bc65026a4c3d062cb05cee85b6d835286.
Closes https://github.com/facebook/react-native/pull/19739

Differential Revision: D8446714

Pulled By: hramos

fbshipit-source-id: 1b0e78fe57e9864faafcc766364bd76a1ba5bd03

Bugfix/ci lint proguard (#19724)

Summary:
* avoid lint to interrupt ci
* add proguard rules
pass all ci
none
 [GENERAL] [ENHANCEMENT] [CI] - Fix lint and proguard
Closes https://github.com/facebook/react-native/pull/19724

Differential Revision: D8446721

Pulled By: hramos

fbshipit-source-id: b21c5418210b27dda6a7194995a25df39af0c92a

fix permission requests on pre-M android (#19734)

Summary:
On pre-M devices, `PermissionsAndroid.request` currently returns a boolean, whereas on newer, it returns GRANTED, DENIED or other constants defined in `PermissionsModule.java`

given the example form the [docs](https://facebook.github.io/react-native/docs/permissionsandroid.html) which I guess many people use, this will lead to code that does not work before M (it will tell you that permissions are not given even if they are in the manifest).

I believe the author of [this](https://github.com/facebook/react-native/commit/51efaab1209a41254c90dcba596d49e3cbc2d925) forgot to change the resolved value in this one place but changed it in other places, eg [here](https://github.com/facebook/react-native/commit/51efaab1209a41254c90dcba596d49e3cbc2d925#diff-2a74096453bc8faa5d4a1599ad0ab33fL99).

The docs are written correctly:

> On devices before SDK version 23, the permissions are automatically granted if they appear in the manifest, so check and request should always be true.

but the code is not right because we'd need to check for `if (granted === PermissionsAndroid.RESULTS.GRANTED || granted === true) {`

Also, the behavior is done correctly in [requestMultiplePermissions](https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java#L148) so returning a boolean is an inconsistency.

I tested this locally. The code is the same as on line [148](https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java#L148) where it is done correctly.

[ANDROID] [BUGFIX] [PermissionAndroid] - return GRANTED / DENIED instead of true / false on pre-M android

<!--
  **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

    CATEGORY
  [----------]      TYPE
  [ CLI …
Copy link

@analysis-bot analysis-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code analysis results:

  • eslint found some issues.

@@ -134,7 +134,9 @@ describe('Animated tests', () => {
expect(callback).toBeCalled();
});

it('send toValue when an underdamped spring stops', () => {
// This test is flaky and we are asking open source to fix it
// https://github.com/facebook/react-native/issues/21517

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jest/no-disabled-tests: Skipped test

@kelset
Copy link
Contributor

kelset commented Nov 27, 2018

Hey @zhongwuzw it seems that something went wrong during your rebase 😅

Probably it would be easier if you open a new PR instead? 🤔

@zhongwuzw
Copy link
Contributor Author

@kelset Yes 😂 , I make a new PR #22439 .

Closing in favor of #22439 .

@zhongwuzw zhongwuzw closed this Nov 28, 2018
facebook-github-bot pushed a commit that referenced this pull request Aug 5, 2020
Summary:
# Please include the following changelog as your Diff Summary:
This sync includes the following changes:
- **[a437f3ff3](https://github.com/facebook/react/commit/a437f3ff3 )**: Use RN fork in default branch of feature flags (#19522) //<Ricky>//
- **[86314d5b4](https://github.com/facebook/react/commit/86314d5b4 )**: Turn off new component stacks for React Native (#19521) //<Ricky>//
- **[5f1890f12](https://github.com/facebook/react/commit/5f1890f12 )**: Bugfix: Don't unmount siblings of deleted node (#19516) //<Andrew Clark>//
- **[93a0c2830](https://github.com/facebook/react/commit/93a0c2830 )**: Add static version of Passive subtree tag (#19510) //<Andrew Clark>//
- **[3d0895557](https://github.com/facebook/react/commit/3d0895557 )**: Disable onScroll bubbling statically except for WWW (#19503) //<Dan Abramov>//
- **[332ecefac](https://github.com/facebook/react/commit/332ecefac )**: Revert "Statically enable enableFilterEmptyStringAttributesDOM (#19502)" (#19504) //<Dan Abramov>//
- **[815ee89bf](https://github.com/facebook/react/commit/815ee89bf )**: Statically enable enableFilterEmptyStringAttributesDOM (#19502) //<Dan Abramov>//
- **[ede917064](https://github.com/facebook/react/commit/ede917064 )**: Move passive logic out of layout phase (#19500) //<Andrew Clark>//
- **[6ef997b53](https://github.com/facebook/react/commit/6ef997b53 )**: Check for passive effects on the root fiber (#19488) //<Andrew Clark>//
- **[e1f96b82b](https://github.com/facebook/react/commit/e1f96b82b )**: Check PassiveStatic instead of Passive (#19489) //<Andrew Clark>//
- **[eae90cdbe](https://github.com/facebook/react/commit/eae90cdbe )**: Effects list refactor continued: passive effects traversal (#19374) //<Brian Vaughn>//
- **[74cd7e5f1](https://github.com/facebook/react/commit/74cd7e5f1 )**: Use feature flags for React Native in the test renderer (#19486) //<Ricky>//
- **[7c8cc4358](https://github.com/facebook/react/commit/7c8cc4358 )**: Add postTask browser scheduler implementation  (#19479) //<Ricky>//
- **[5227a3786](https://github.com/facebook/react/commit/5227a3786 )**: Add "unstable_" prefix to experimental mutable source APIs (#19472) //<Brian Vaughn>//
- **[52c514627](https://github.com/facebook/react/commit/52c514627 )**: Add SchedulerHostConfig fork for post task (#19470) //<Ricky>//
- **[722bc046d](https://github.com/facebook/react/commit/722bc046d )**: Don't rely on `didTimeout` for SyncBatched (#19469) //<Andrew Clark>//
- **[96ac799ea](https://github.com/facebook/react/commit/96ac799ea )**: Remove `callbackId` field from FiberRoot (#19458) //<Andrew Clark>//
- **[c24b641b7](https://github.com/facebook/react/commit/c24b641b7 )**: Remove `timeout` option from `scheduleCallback` (#19457) //<Andrew Clark>//
- **[06d104e8e](https://github.com/facebook/react/commit/06d104e8e )**: Don't emulate bubbling of the scroll event (#19464) //<Dan Abramov>//
- **[b55f75d0a](https://github.com/facebook/react/commit/b55f75d0a )**: fix issue #19362 + test (#19412) //<Robert Ferentz>//
- **[d93c8faad](https://github.com/facebook/react/commit/d93c8faad )**: Move Persistent Mode Optimization away from firstEffect (#19381) //<Sebastian Markbåge>//
- **[909b612e2](https://github.com/facebook/react/commit/909b612e2 )**: Sync React Native types (#19437) //<Ricky>//
- **[c9749d38e](https://github.com/facebook/react/commit/c9749d38e )**: Generate RN renderers for stable builds (#19421) //<Ricky>//
- **[ab1f51700](https://github.com/facebook/react/commit/ab1f51700 )**: isFBBundle should be true if it's FB for www or FB for RN (#19420) //<Sebastian Markbåge>//
- **[b23ea02be](https://github.com/facebook/react/commit/b23ea02be )**: Track event times per lane on the root (#19387) //<Andrew Clark>//
- **[faa697f4f](https://github.com/facebook/react/commit/faa697f4f )**: Set current update lane priority for user blocking events (#19342) //<Ricky>//
- **[51267c4ac](https://github.com/facebook/react/commit/51267c4ac )**: Sync scheduling profiler marks and debug tracing to new reconciler fork (#19375, #19376, #19396) //<Brian Vaughn>//
- **[aec934af7](https://github.com/facebook/react/commit/aec934af7 )**: Remove form event delegation flag (#19395) //<Dan Abramov>//
- **[9102719ba](https://github.com/facebook/react/commit/9102719ba )**: Tidy up React Scope API (#19352) //<Dominic Gannaway>//
- **[a226b9b44](https://github.com/facebook/react/commit/a226b9b44 )**: Effects list refactor continued: did-bailout flag (#19322) //<Brian Vaughn>//
- **[a89854bc9](https://github.com/facebook/react/commit/a89854bc9 )**: Fix Suspense-wrapping heuristic (and bump version numbers) (#19373) //<Brian Vaughn>//
- **[4961833db](https://github.com/facebook/react/commit/4961833db )**: Don't build shallow renderer UMD bundles //<Dan Abramov>//
- **[392277f0a](https://github.com/facebook/react/commit/392277f0a )**: Revert "Scheduling profiler updates (#19334)" (#19366) //<Dominic Gannaway>//
- **[6d7555b01](https://github.com/facebook/react/commit/6d7555b01 )**: Scheduling profiler updates (#19334) //<Brian Vaughn>//
- **[d1f2143aa](https://github.com/facebook/react/commit/d1f2143aa )**: Use RetryLanes instead of event time (follow up) (#19335) //<Andrew Clark>//
- **[fe19b4247](https://github.com/facebook/react/commit/fe19b4247 )**: eslint-plugin-react-hooks@4.0.8 //<Dan Abramov>//
- **[84479046f](https://github.com/facebook/react/commit/84479046f )**: reference not add to dependencies if only its type is used as typeof arg (#19316) //<Bianca Del Carretto>//
- **[26472c889](https://github.com/facebook/react/commit/26472c889 )**: Bubble onSubmit/onReset behind a feature flag (#19333) //<Dan Abramov>//
- **[61dd00db2](https://github.com/facebook/react/commit/61dd00db2 )**: Extract some of the tidy up changes from 19278 (#19315) //<Dominic Gannaway>//
- **[a2b4db05b](https://github.com/facebook/react/commit/a2b4db05b )**: eslint-plugin-react-hooks@4.0.7 //<Dan Abramov>//
- **[47915fd6e](https://github.com/facebook/react/commit/47915fd6e )**: [ESLint] Fix a bug causing a too coarse dependency suggestion (#19313) //<Dan Abramov>//
- **[970fa122d](https://github.com/facebook/react/commit/970fa122d )**: Use lanes to check if a render is a Suspense retry (#19307) //<Andrew Clark>//
- **[14084be28](https://github.com/facebook/react/commit/14084be28 )**: Refactor algorithm for next Lanes to work on (#19302) //<Andrew Clark>//
- **[965d08cff](https://github.com/facebook/react/commit/965d08cff )**: Add dedicated LanePriority for Suspense retries (#19287) //<Andrew Clark>//
- **[766af5968](https://github.com/facebook/react/commit/766af5968 )**: Move Scope API ref resolution to mutation phase (#19264) //<Dominic Gannaway>//
- **[77e872217](https://github.com/facebook/react/commit/77e872217 )**: Improve readability of isValidElementType (#19251) //<Behnam Mohammadi>//
- **[d87220f21](https://github.com/facebook/react/commit/d87220f21 )**: Add console group methods to dev disabled groups (#19069) //<Giovanni Fumagalli>//
- **[f5ea39c18](https://github.com/facebook/react/commit/f5ea39c18 )**: Modern Event System: make on*Capture events use capture phase (#19221) //<Dominic Gannaway>//
- **[40cddfeeb](https://github.com/facebook/react/commit/40cddfeeb )**: Add user timing marks for scheduling profiler tool (#19223) //<E-Liang Tan>//
- **[6fd432113](https://github.com/facebook/react/commit/6fd432113 )**: eslint-plugin-react-hooks@4.0.6 //<Dan Abramov>//
- **[7c35cb20e](https://github.com/facebook/react/commit/7c35cb20e )**: [ESLint] Handle optional member chains (#19275) //<Dan Abramov>//
- **[dccf541ec](https://github.com/facebook/react/commit/dccf541ec )**: Allow decoupleUpdatePriorityFromScheduler to be set (#19272) //<Ricky>//
- **[7ca1d861e](https://github.com/facebook/react/commit/7ca1d861e )**: [ESLint] Consistently treat optional chaining as regular chaining (#19273) //<Dan Abramov>//
- **[4eb9b1d2b](https://github.com/facebook/react/commit/4eb9b1d2b )**: Refactor createEventHandle signature (#19174) //<Dominic Gannaway>//
- **[91a2e8173](https://github.com/facebook/react/commit/91a2e8173 )**: Decouple update priority tracking from Scheduler package (#19121) //<Ricky>//
- **[0f84b0f02](https://github.com/facebook/react/commit/0f84b0f02 )**: Fix ExhaustiveDeps ESLint rule throwing with optional chaining (#19260) //<Joe Lencioni>//
- **[670c0376e](https://github.com/facebook/react/commit/670c0376e )**: Enable createEventHandle API for wWW test builds (#19262) //<Brian Vaughn>//
- **[9fba65efa](https://github.com/facebook/react/commit/9fba65efa )**: Enable modern event system and delete dead code (#19230) //<Dan Abramov>//
- **[e3f4eb727](https://github.com/facebook/react/commit/e3f4eb727 )**: Fork legacy-events folder into react-dom and react-native (#19228) //<Dan Abramov>//
- **[b231445f9](https://github.com/facebook/react/commit/b231445f9 )**: Move responder tests and remove dead code (#19226) //<Dan Abramov>//
- **[5707eeb2d](https://github.com/facebook/react/commit/5707eeb2d )**: Run ReactBrowserEventEmitter test on bundles (#19225) //<Dan Abramov>//
- **[b2bac7311](https://github.com/facebook/react/commit/b2bac7311 )**: Remove React Flare Keyboard responder (#19222) //<Dominic Gannaway>//
- **[f918b0eb4](https://github.com/facebook/react/commit/f918b0eb4 )**: Fix development mode hang when iframe is removed (#19220) //<Dan Abramov>//
- **[8bff8987e](https://github.com/facebook/react/commit/8bff8987e )**: Don't bailout after Suspending in Legacy Mode (#19216) //<Dan Abramov>//
- **[f4097c1ae](https://github.com/facebook/react/commit/f4097c1ae )**: Added warning to <Context.Provider> in case no value prop is provided (#19054) //<Shailendra Gupta>//
- **[47ff31a77](https://github.com/facebook/react/commit/47ff31a77 )**: Revert "Add regression test for #18497 (#18538)" (#19215) //<Dan Abramov>//
- **[fa32cf299](https://github.com/facebook/react/commit/fa32cf299 )**: Add regression tests where sync render causes later concurrent render to expire soon (#18608) //<jddxf>//
- **[1887c5d94](https://github.com/facebook/react/commit/1887c5d94 )**: eslint-plugin-react-hooks@4.0.5 //<Dan Abramov>//
- **[b0533fe33](https://github.com/facebook/react/commit/b0533fe33 )**: fix(eslint-plugin-react-hooks): Support optional chaining when accessing prototype method inside useCallback and useMemo #19061 (#19062) //<Fred Vollmer>//
- **[e9c1445ba](https://github.com/facebook/react/commit/e9c1445ba )**: Add regression test for #18497 (#18538) //<Sophie Alpert>//
- **[7d0e4150a](https://github.com/facebook/react/commit/7d0e4150a )**: Fix react-runtime `main` field (#19193) //<Christoph Nakazawa>//
- **[ffe516f3b](https://github.com/facebook/react/commit/ffe516f3b )**: use NoTimestamp instead of -1 (#19182) //<Chen Gang>//
- **[1425fcbb8](https://github.com/facebook/react/commit/1425fcbb8 )**: Re-enabled DebugTracing feature for old reconciler fork (#19161) //<Brian Vaughn>//
- **[5b9865690](https://github.com/facebook/react/commit/5b9865690 )**: fix: use define property to overwrite console, close #19099 (#19123) //<Jack Works>//
- **[6ba25b96d](https://github.com/facebook/react/commit/6ba25b96d )**: Bugfix: Legacy Mode + DevTools "force fallback" (#19164) //<Andrew Clark>//
- **[d1d9054e0](https://github.com/facebook/react/commit/d1d9054e0 )**: Revert "Re-enabled DebugTracing feature for old reconciler fork (#19142)" (#19159) //<Luna Ruan>//
- **[090c6ed75](https://github.com/facebook/react/commit/090c6ed75 )**: [eslint-plugin-react-hooks]: handling sparse array when no-inline callback (#19145) //<YeonJuan>//
- **[cc7c1aece](https://github.com/facebook/react/commit/cc7c1aece )**: Re-enabled DebugTracing feature for old reconciler fork (#19142) //<Brian Vaughn>//
- **[30b47103d](https://github.com/facebook/react/commit/30b47103d )**: Fix spelling errors and typos (#19138) //<Ricky>//
- **[655affa30](https://github.com/facebook/react/commit/655affa30 )**: Clarifications //<Rick Hanlon>//
- **[103ed08c4](https://github.com/facebook/react/commit/103ed08c4 )**: Remove shouldDeprioritizeSubtree from host config (#19124) //<Andrew Clark>//
- **[8f05f2bd6](https://github.com/facebook/react/commit/8f05f2bd6 )**: Land Lanes implementation in old fork (#19108) //<Andrew Clark>//
- **[7f28234f8](https://github.com/facebook/react/commit/7f28234f8 )**: Enable component stacks everywhere except RN (#19120) //<Sebastian Markbåge>//
- **[e3ccdf154](https://github.com/facebook/react/commit/e3ccdf154 )**: Remove synamic modern event system flag for FB (#19059) //<Dominic Gannaway>//
- **[4c7036e80](https://github.com/facebook/react/commit/4c7036e80 )**: Bugfix: Infinite loop in beforeblur event (#19053) //<Andrew Clark>//
- **[1d85bb3ce](https://github.com/facebook/react/commit/1d85bb3ce )**: Build FB specific Isomorphic Bundles (#19049) //<Sebastian Markbåge>//
- **[89edb0eae](https://github.com/facebook/react/commit/89edb0eae )**: Enable component stack locations in www (#19047) //<Sebastian Markbåge>//
- **[cb1416817](https://github.com/facebook/react/commit/cb1416817 )**: Remove unnecessary throw catch (#19044) //<Sebastian Markbåge>//
- **[c03b8661a](https://github.com/facebook/react/commit/c03b8661a )**: Upgrade Closure Compiler (#19041) //<Sebastian Markbåge>//
- **[2e7cc949a](https://github.com/facebook/react/commit/2e7cc949a )**: Remove www builds of fetch (#19038) //<Sebastian Markbåge>//
- **[76f157e3d](https://github.com/facebook/react/commit/76f157e3d )**: Add simple Node build (#19022) //<Sebastian Markbåge>//
- **[60afa3c11](https://github.com/facebook/react/commit/60afa3c11 )**: Lint bundles using the bundle config instead of scanning for files (#19025) //<Sebastian Markbåge>//
- **[518ce9c25](https://github.com/facebook/react/commit/518ce9c25 )**: Add Lazy Elements Behind a Flag (#19033) //<Sebastian Markbåge>//
- **[4985bb0a8](https://github.com/facebook/react/commit/4985bb0a8 )**: Rename 17 to 18 in warnings (#19031) //<Sebastian Markbåge>//
- **[86b4070dd](https://github.com/facebook/react/commit/86b4070dd )**: Cleaned up passive effects experimental flags (#19021) //<Brian Vaughn>//
- **[607148673](https://github.com/facebook/react/commit/607148673 )**: Remove ReactComponentTreeHook from internals (#19032) //<Sebastian Markbåge>//
- **[43e59f29d](https://github.com/facebook/react/commit/43e59f29d )**: Delete Entries without Build Output from package.json and the build directory (#19029) //<Sebastian Markbåge>//
- **[0219925e0](https://github.com/facebook/react/commit/0219925e0 )**: Remove regenerator from noop (#19024) //<Sebastian Markbåge>//
- **[c66ac10f4](https://github.com/facebook/react/commit/c66ac10f4 )**: Lint classic www build (#19023) //<Sebastian Markbåge>//
- **[55cb0b7ee](https://github.com/facebook/react/commit/55cb0b7ee )**: Only prepare extra stack frames if needed (#19014) //<Sebastian Markbåge>//
- **[9752d31f1](https://github.com/facebook/react/commit/9752d31f1 )**: Document `additionalHooks` option (#19005) //<Aaron Pettengill>//
- **[b7ff88819](https://github.com/facebook/react/commit/b7ff88819 )**: eslint-plugin-react-hooks@4.0.4 //<Dan Abramov>//
- **[18de3b6e7](https://github.com/facebook/react/commit/18de3b6e7 )**: Bug: Spawning hydration in response to Idle update (#19011) //<Andrew Clark>//
- **[fb735423b](https://github.com/facebook/react/commit/fb735423b )**: Fix rollup validate script (#18900) //<Toru Kobayashi>//
- **[8abc202c7](https://github.com/facebook/react/commit/8abc202c7 )**: [eslint-plugin-react-hooks] Prefer recommended eslint configuration (#18951) //<Julien Deniau>//
- **[4821d609e](https://github.com/facebook/react/commit/4821d609e )**: fix(eslint-plugin-react-hooks): Added matching for nullish coalescing and optional chaining of dependencies, relates to #18985 (#19008) //<Yann アウネ Eves>//
- **[67e130fc6](https://github.com/facebook/react/commit/67e130fc6 )**: eslint-plugin-react-hooks@4.0.3 //<Dan Abramov>//
- **[bb2239dc9](https://github.com/facebook/react/commit/bb2239dc9 )**: Revert "Feature: Add support to `exhaustive-deps` rule for any hook ending with `Effect` (#18580)" (#19004) //<Dan Abramov>//
- **[03e6b8ba2](https://github.com/facebook/react/commit/03e6b8ba2 )**: Make LegacyHidden match semantics of old fork (#18998) //<Andrew Clark>//
- **[3ca1904b3](https://github.com/facebook/react/commit/3ca1904b3 )**: react-refresh@0.8.3 //<Dan Abramov>//
- **[0aa4cc544](https://github.com/facebook/react/commit/0aa4cc544 )**: Resolve an edge case where ref.node can be falsy (#18984) //<yjimk>//
- **[8f4dc3e5d](https://github.com/facebook/react/commit/8f4dc3e5d )**: Warn if MutableSource snapshot is a function (#18933) //<Brian Vaughn>//
- **[142d4f1c0](https://github.com/facebook/react/commit/142d4f1c0 )**: useMutableSource hydration support (#18771) //<Brian Vaughn>//
- **[aefb97e6b](https://github.com/facebook/react/commit/aefb97e6b )**: DevTools: Add root and renderer version to inspected props panel (#18963) //<Brian Vaughn>//
- **[74394aa8c](https://github.com/facebook/react/commit/74394aa8c )**: Add unstable_isNewReconciler to dispatcher (#18975) //<Andrew Clark>//
- **[730ae7afa](https://github.com/facebook/react/commit/730ae7afa )**: Clear fiber.sibling field when clearing nextEffect (#18970) //<Dominic Gannaway>//
- **[4a3f779d6](https://github.com/facebook/react/commit/4a3f779d6 )**: Remove event pooling in the modern system (#18969) //<Dominic Gannaway>//
- **[22f7663f1](https://github.com/facebook/react/commit/22f7663f1 )**: Profiler: Don't count timed out (hidden) subtrees in base duration (#18966) //<Brian Vaughn>//
- **[64f50c667](https://github.com/facebook/react/commit/64f50c667 )**: Remove disableHiddenPropDeprioritization flag (#18964) //<Andrew Clark>//
- **[a30a1c6ef](https://github.com/facebook/react/commit/a30a1c6ef )**: Transfer actualDuration only once for SuspenseList (#18959) //<Sebastian Markbåge>//
- **[8b3b5c352](https://github.com/facebook/react/commit/8b3b5c352 )**: Bugfix: Missing mode check in resetChildLanes (#18961) //<Andrew Clark>//
- **[95ea8ed47](https://github.com/facebook/react/commit/95ea8ed47 )**: LegacyHidden: mode that defers without hiding (#18958) //<Andrew Clark>//
- **[c390ab364](https://github.com/facebook/react/commit/c390ab364 )**: Add test for displayName on React.memo components (#18925) //<Sebastian Silbermann>//
- **[6ed5c2243](https://github.com/facebook/react/commit/6ed5c2243 )**: Add MIT license to use-subscription package (#18927) //<Gabriele Prestifilippo>//
- **[121af3143](https://github.com/facebook/react/commit/121af3143 )**: Update inaccurate mapChildren comment (#18931) //<Ricky Vetter>//
- **[21dc41c32](https://github.com/facebook/react/commit/21dc41c32 )**: Simplify logic for mutable workInProgressSources (#18920) //<Sophie Alpert>//
- **[0fb747f36](https://github.com/facebook/react/commit/0fb747f36 )**: Add LegacyHidden to server renderer (#18919) //<Andrew Clark>//
- **[b4a1a4980](https://github.com/facebook/react/commit/b4a1a4980 )**: Disable <div hidden /> API in old fork, too (#18917) //<Andrew Clark>//
- **[9e5b2c94e](https://github.com/facebook/react/commit/9e5b2c94e )**: Add expando prop to disabledLog function (#18914) //<Brian Vaughn>//
- **[fdb641629](https://github.com/facebook/react/commit/fdb641629 )**: Fix useMutableSource tearing bug (#18912) //<Andrew Clark>//
- **[33589f742](https://github.com/facebook/react/commit/33589f742 )**: useMutableSource: "Entangle" instead of expiring (#18889) //<Andrew Clark>//
- **[43063fd84](https://github.com/facebook/react/commit/43063fd84 )**: eslint-plugin-react-hooks@4.0.2 //<Dan Abramov>//
- **[f6ff4c43d](https://github.com/facebook/react/commit/f6ff4c43d )**: Update changelog //<Dan Abramov>//
- **[487c69384](https://github.com/facebook/react/commit/487c69384 )**: [eslint-plugin-react-hooks] useWithoutEffectSuffix fix (#18902) (#18907) //<Boris Sergeev>//
- **[61f2a560e](https://github.com/facebook/react/commit/61f2a560e )**: Add experimental ReactDOM.createEventHandle (#18756) //<Dominic Gannaway>//
- **[14e554b31](https://github.com/facebook/react/commit/14e554b31 )**: Add missing changelog item //<Dan Abramov>//
- **[80c4dea0d](https://github.com/facebook/react/commit/80c4dea0d )**: Modern Event System: Add scaffolding for createEventHandle (#18898) //<Dominic Gannaway>//
- **[9f396bdd5](https://github.com/facebook/react/commit/9f396bdd5 )**: eslint-plugin-react-hooks@4.0.1 //<Dan Abramov>//
- **[c512aa008](https://github.com/facebook/react/commit/c512aa008 )**: [Blocks] Scaffolding react-fetch + first pass at node implementation (#18863) //<Richard Maisano>//
- **[e936034ee](https://github.com/facebook/react/commit/e936034ee )**: Add item to ESLint Hooks plugin changelog //<Dan Abramov>//
- **[c3ff21e01](https://github.com/facebook/react/commit/c3ff21e01 )**: feat(eslint-plugin-react-hooks): Support ESLint 7.x (#18878) //<Michaël De Boey>//
- **[8b9c4d168](https://github.com/facebook/react/commit/8b9c4d168 )**: Expose LegacyHidden type and disable <div hidden /> API in new fork (#18891) //<Andrew Clark>//
- **[ef0bf8e31](https://github.com/facebook/react/commit/ef0bf8e31 )**: Revert "Hard code enableComponentStacks in www (#18869)" (#18890) //<Dominic Gannaway>//
- **[ddcc69c83](https://github.com/facebook/react/commit/ddcc69c83 )**: Added clear message for functional component starting with lowercase (#18881) //<Rohith Srivathsav>//
- **[539527b64](https://github.com/facebook/react/commit/539527b64 )**: Don't cut off effects at end of list if hydrating (#18872) //<Sebastian Markbåge>//
- **[fd696df47](https://github.com/facebook/react/commit/fd696df47 )**: Hard code enableComponentStacks in www (#18869) //<Sebastian Markbåge>//
- **[6edaf6f76](https://github.com/facebook/react/commit/6edaf6f76 )**: Detect and prevent render starvation, per lane (#18864) //<Andrew Clark>//
- **[df14b5bcc](https://github.com/facebook/react/commit/df14b5bcc )**: add new IDs for each each server renderer instance and prefixes to distinguish between each server render (#18576) //<Luna Ruan>//
- **[fb3f0acad](https://github.com/facebook/react/commit/fb3f0acad )**: Disable Webpack setImmediate polyfill for DevTools (#18860) //<Brian Vaughn>//
- **[edf6eac8a](https://github.com/facebook/react/commit/edf6eac8a )**: Don't cut off the tail of a SuspenseList if hydrating (#18854) //<Sebastian Markbåge>//
- **[55f5cdee0](https://github.com/facebook/react/commit/55f5cdee0 )**: Disable setState before mount in legacy mode (#18851) //<Sebastian Markbåge>//
- **[47ebc90b0](https://github.com/facebook/react/commit/47ebc90b0 )**: Put render phase update change behind a flag (#18850) //<Andrew Clark>//
- **[96f3b7d1c](https://github.com/facebook/react/commit/96f3b7d1c )**: Warn if calling setState outside of render but before commit (#18838) //<Sebastian Markbåge>//
- **[40e602946](https://github.com/facebook/react/commit/40e602946 )**: wrap SuspenseInstanceRetry callback so scheduler waits for it (#18805) //<Fernando Lores>//
- **[3cde22a84](https://github.com/facebook/react/commit/3cde22a84 )**: Experimental test selector API (#18607) //<Brian Vaughn>//
- **[7992ca10d](https://github.com/facebook/react/commit/7992ca10d )**: eslint-plugin-react-hooks: allow OptionalMemberExpression in deps (#18819) (#18820) //<Kevin Lewis>//
- **[fe7163e73](https://github.com/facebook/react/commit/fe7163e73 )**: Add unstable prefix to experimental APIs (#18825) //<Andrew Clark>//
- **[cd4a96035](https://github.com/facebook/react/commit/cd4a96035 )**: Remove old CM exports (#18710) //<Sebastian Markbåge>//
- **[9751935ab](https://github.com/facebook/react/commit/9751935ab )**: Modern Event System: improve dispatching queue (#18799) //<Dominic Gannaway>//
- **[3e13d7098](https://github.com/facebook/react/commit/3e13d7098 )**: [RN] Remove debugging invariant (#18813) //<Dan Abramov>//
- **[d830cd998](https://github.com/facebook/react/commit/d830cd998 )**: [Blocks] Fix stale data on updates (#18810) //<Dan Abramov>//
- **[64d4b8420](https://github.com/facebook/react/commit/64d4b8420 )**: Rename Flight to Transport (#18808) //<Sebastian Markbåge>//
- **[93e078ddf](https://github.com/facebook/react/commit/93e078ddf )**: Initial Lanes implementation (#18796) //<Andrew Clark>//
- **[3c7d52c3d](https://github.com/facebook/react/commit/3c7d52c3d )**: Give unresolved lazy() a name in component stack (#16104) //<Moti Zilberman>//
- **[333deb707](https://github.com/facebook/react/commit/333deb707 )**: Remove hint to post feedback about exhaustive-deps rule (#18712) //<Benedikt Franke>//
- **[aa88589d0](https://github.com/facebook/react/commit/aa88589d0 )**: Refine experimental Scopes API (#18778) //<Dominic Gannaway>//
- **[d804f99b9](https://github.com/facebook/react/commit/d804f99b9 )**: eslint-plugin-react-hooks@4.0.0 //<Dan Abramov>//
- **[4e93b9364](https://github.com/facebook/react/commit/4e93b9364 )**: Add changelog for eslint-plugin-react-hooks (#18801) //<Dan Abramov>//
- **[5ac9ca72d](https://github.com/facebook/react/commit/5ac9ca72d )**: Feature: Add support to `exhaustive-deps` rule for any hook ending with `Effect` (#18580) //<Aaron Pettengill>//
- **[eab94403d](https://github.com/facebook/react/commit/eab94403d )**: Build Flight runtime for WWW (revert part of earlier change) //<Dan Abramov>//
- **[17dcc29cd](https://github.com/facebook/react/commit/17dcc29cd )**: Don't "schedule" discrete work if we're scheduling sync work (#18797) //<Sebastian Markbåge>//
- **[9491f3947](https://github.com/facebook/react/commit/9491f3947 )**: react-refresh@0.8.2 //<Dan Abramov>//
- **[43a1c7275](https://github.com/facebook/react/commit/43a1c7275 )**: Don't build react-data for WWW //<Dan Abramov>//
- **[01914a767](https://github.com/facebook/react/commit/01914a767 )**: Update bundle configs to not build some packages (#18800) //<Dan Abramov>//
- **[21670cf4b](https://github.com/facebook/react/commit/21670cf4b )**: [react-refresh/babel] Always insert registrations after var (#18794) //<Sophie Alpert>//
- **[914b57be2](https://github.com/facebook/react/commit/914b57be2 )**: Move legacy hidden API to new internal Fiber type (#18782) //<Andrew Clark>//
- **[ac533fde3](https://github.com/facebook/react/commit/ac533fde3 )**: Prevent stale legacy root from clearing a container (DRAFT) (#18792) //<Brian Vaughn>//
- **[5b89d353e](https://github.com/facebook/react/commit/5b89d353e )**: Update react-refresh README //<Dan Abramov>//
- **[3a9c37352](https://github.com/facebook/react/commit/3a9c37352 )**: [Blocks] Add preload to fetch (#18785) //<Dan Abramov>//
- **[dd7f0deb9](https://github.com/facebook/react/commit/dd7f0deb9 )**: [Blocks] Use native fetch (#18784) //<Dan Abramov>//
- **[515326753](https://github.com/facebook/react/commit/515326753 )**: [Blocks] Initial implementation of cache and data/fetch (#18774) //<Dan Abramov>//
- **[ea2af878c](https://github.com/facebook/react/commit/ea2af878c )**: Root API should clear non-empty roots before mounting (#18730) //<Brian Vaughn>//
- **[53ce0c345](https://github.com/facebook/react/commit/53ce0c345 )**: Allow flushSync to noop in life cycles but with a warning (#18759) //<Sebastian Markbåge>//
- **[f342a2399](https://github.com/facebook/react/commit/f342a2399 )**: SuspenseList: Reschedule at same priority (#18738) //<Andrew Clark>//
- **[cb7075399](https://github.com/facebook/react/commit/cb7075399 )**: Move hide/unhide logic to Offscreen component //<Andrew Clark>//
- **[cb48f974c](https://github.com/facebook/react/commit/cb48f974c )**: Wrap primary tree in Offscreen fiber type //<Andrew Clark>//
- **[ed01fdacc](https://github.com/facebook/react/commit/ed01fdacc )**: Add Offscreen component type //<Luna Ruan>//
- **[1df756ba2](https://github.com/facebook/react/commit/1df756ba2 )**: Always wrap Suspense children in fragment (#18711) //<Andrew Clark>//
- **[db6513914](https://github.com/facebook/react/commit/db6513914 )**: Make ExpirationTime an opaque type (#18732) //<Andrew Clark>//
- **[4b02b6611](https://github.com/facebook/react/commit/4b02b6611 )**: [ESLint] Extend isHook to recognize those under PascalCase's namespace (#18722) //<Chang Yan>//
- **[30cee2f4c](https://github.com/facebook/react/commit/30cee2f4c )**: Modern Event System: register onMouseEnter for portals (#18720) //<Dominic Gannaway>//
- **[b58dec979](https://github.com/facebook/react/commit/b58dec979 )**: Remove unnecessary stack (#18707) //<Sebastian Markbåge>//
- **[a2fb84beb](https://github.com/facebook/react/commit/a2fb84beb )**: Disable prepareStackTrace while we're generating stacks (#18708) //<Sebastian Markbåge>//
- **[b0cb137bc](https://github.com/facebook/react/commit/b0cb137bc )**: Don't dedupe using the stack (#18693) //<Sebastian Markbåge>//
- **[571f5ad2d](https://github.com/facebook/react/commit/571f5ad2d )**: Temporarily Remove DebugTracing from the New Reconciler (#18697) //<Sebastian Markbåge>//
- **[2325375f4](https://github.com/facebook/react/commit/2325375f4 )**: Nit: add suffix _TIMEOUT consistently in scheduler (#18696) //<Sebastian Markbåge>//
- **[36cab2720](https://github.com/facebook/react/commit/36cab2720 )**: DevTools: Improved "native" component stacks (#18656) //<Brian Vaughn>//
- **[940f48b99](https://github.com/facebook/react/commit/940f48b99 )**: Avoid passing custom stacks to console.error (#18685) //<Sebastian Markbåge>//
- **[ff431b7fc](https://github.com/facebook/react/commit/ff431b7fc )**: Remove ReactDOM.useEvent and associated types+tests (#18689) //<Dominic Gannaway>//
- **[80d39d8b5](https://github.com/facebook/react/commit/80d39d8b5 )**: Remove null sibling (#18687) //<Dominic Gannaway>//
- **[0960b7ba5](https://github.com/facebook/react/commit/0960b7ba5 )**: Upgrade fbjs-scripts (#18684) //<Sebastian Markbåge>//
- **[a152827ef](https://github.com/facebook/react/commit/a152827ef )**: Refine the heuristics around beforeblur/afterblur (#18668) //<Dominic Gannaway>//
- **[96203240d](https://github.com/facebook/react/commit/96203240d )**: ReactDOM: remove unstable-native-dependencies bundle (#18483) //<Nicolas Gallagher>//
- **[263bc5d54](https://github.com/facebook/react/commit/263bc5d54 )**: Fix incorrect unmounted state update warning (#18617) //<Brian Vaughn>//
- **[cfefc81ab](https://github.com/facebook/react/commit/cfefc81ab )**: Fix for #18657 (#18663) //<Andrew Clark>//
- **[e7163a9c2](https://github.com/facebook/react/commit/e7163a9c2 )**: Revise isFiberInsideHiddenOrRemovedTree (#18662) //<Dominic Gannaway>//
- **[a4b1e65af](https://github.com/facebook/react/commit/a4b1e65af )**: Remove redundant expiration time comparisons (#18620) //<Andrew Clark>//
- **[0301f3e24](https://github.com/facebook/react/commit/0301f3e24 )**: Statically disable factory components for WWW (#18641) //<Dan Abramov>//
- **[c12c2c4c8](https://github.com/facebook/react/commit/c12c2c4c8 )**: Run error replay test again new reconciler (#18628) //<Andrew Clark>//
- **[7b4403cec](https://github.com/facebook/react/commit/7b4403cec )**: Fix requiring timers module with non standard require (#18632) //<Boris Serdiuk>//
- **[71964c034](https://github.com/facebook/react/commit/71964c034 )**: Fix CI (#18626) //<Brian Vaughn>//
- **[22dc2e42b](https://github.com/facebook/react/commit/22dc2e42b )**: Add experimental DebugTracing logger for internal use (#18531) //<Brian Vaughn>//
- **[b68017484](https://github.com/facebook/react/commit/b68017484 )**: Delete mutableSourceFirstPendingUpdateTime (#18613) //<Andrew Clark>//
- **[d53988a9d](https://github.com/facebook/react/commit/d53988a9d )**: ReactDOM.useEvent: add useEvent interaction hook (#18604) //<Dominic Gannaway>//
- **[bf55ea743](https://github.com/facebook/react/commit/bf55ea743 )**: Move beforeblur phase to prepareForCommit (#18609) //<Dominic Gannaway>//
- **[843b50cbe](https://github.com/facebook/react/commit/843b50cbe )**: Remove `.internal` from more test suites (#18597) //<Andrew Clark>//
- **[b928fc030](https://github.com/facebook/react/commit/b928fc030 )**: Delete flushSuspenseFallbacksInTests flag (#18596) //<Andrew Clark>//
- **[bec759906](https://github.com/facebook/react/commit/bec759906 )**: Migrate conditional tests to gate pragma (#18585) //<Andrew Clark>//
- **[65237a237](https://github.com/facebook/react/commit/65237a237 )**: Codemod it.experimental to gate pragma (#18582) //<Andrew Clark>//
- **[72d00ab62](https://github.com/facebook/react/commit/72d00ab62 )**: Fix Component Stacks for IE and Native Classes in Safari (#18575) //<Sebastian Markbåge>//
- **[98d410f50](https://github.com/facebook/react/commit/98d410f50 )**: Build Component Stacks from Native Stack Frames (#18561) //<Sebastian Markbåge>//
- **[50bdd75a6](https://github.com/facebook/react/commit/50bdd75a6 )**: Bubble errors if processing the error itself errors (#18567) //<Sebastian Markbåge>//
- **[348ed0e93](https://github.com/facebook/react/commit/348ed0e93 )**: Don't return from perform/completeUnitOfWork  (#18566) //<Sebastian Markbåge>//
- **[b04c7fa28](https://github.com/facebook/react/commit/b04c7fa28 )**: Decouple expiration times and transition timeouts (#17920) //<Andrew Clark>//
- **[dc630d337](https://github.com/facebook/react/commit/dc630d337 )**: Fork ReactFiberExpirationTime //<Andrew Clark>//
- **[e5d06e34b](https://github.com/facebook/react/commit/e5d06e34b )**: Revert "Clear more Fiber fields in detachFiber (#18556)" (#18562) //<Dan Abramov>//
- **[cbab25bb5](https://github.com/facebook/react/commit/cbab25bb5 )**: Exclude forwardRef and memo from stack frames (#18559) //<Sebastian Markbåge>//
- **[d48dbb824](https://github.com/facebook/react/commit/d48dbb824 )**: Clear more Fiber fields in detachFiber (#18556) //<Dominic Gannaway>//
- **[0566b706e](https://github.com/facebook/react/commit/0566b706e )**: Fix fiber memory leak with runAllPassiveEffectDestroysBeforeCreates (#18554) //<Dominic Gannaway>//
- **[ca1a703d2](https://github.com/facebook/react/commit/ca1a703d2 )**: Make enableLegacyFBSupport flag dynamic for www (#18551) //<Dominic Gannaway>//
- **[4c6470cb3](https://github.com/facebook/react/commit/4c6470cb3 )**: Point ReactDOMForked to the new implementation //<Andrew Clark>//
- **[17f582e04](https://github.com/facebook/react/commit/17f582e04 )**: Add forked copies of reconciler modules //<Andrew Clark>//
- **[376d5c1b5](https://github.com/facebook/react/commit/376d5c1b5 )**: Split cross-package types from implementation //<Andrew Clark>//
- **[d686f3f16](https://github.com/facebook/react/commit/d686f3f16 )**: Add `.old` prefix to reconciler modules //<Andrew Clark>//
- **[147bdef11](https://github.com/facebook/react/commit/147bdef11 )**: Port more tests to the Scheduler.unstable_yieldValue pattern and drop internal.js (#18549) //<Sebastian Markbåge>//
- **[b014e2d5e](https://github.com/facebook/react/commit/b014e2d5e )**: Don't use closures in DevTools injection (#18278) //<Sebastian Markbåge>//
- **[5474a83e2](https://github.com/facebook/react/commit/5474a83e2 )**: Disable console.logs in the second render pass of DEV mode double render (#18547) //<Sebastian Markbåge>//
- **[b225d4f26](https://github.com/facebook/react/commit/b225d4f26 )**: Revert "Revert "Refactor commitPlacement to recursively insert nodes (#17996)" (#18517)" (#18540) //<Dan Abramov>//
- **[241103a6f](https://github.com/facebook/react/commit/241103a6f )**: Fix bailout broken in lazy components due to default props resolving (#18539) //<jddxf>//
- **[2dddd1e00](https://github.com/facebook/react/commit/2dddd1e00 )**: Bugfix: Render phase update causes remaining updates in same component to be dropped (#18537) //<Andrew Clark>//
- **[2def7b3ca](https://github.com/facebook/react/commit/2def7b3ca )**: More robust fix for #18515 (#18535) //<Andrew Clark>//
- **[948fad357](https://github.com/facebook/react/commit/948fad357 )**: Improve detachFiber (#18536) //<Dominic Gannaway>//
- **[ddc4b65cf](https://github.com/facebook/react/commit/ddc4b65cf )**: Clear finished discrete updates during commit phase (#18515) //<jddxf>//
- **[dc49ea108](https://github.com/facebook/react/commit/dc49ea108 )**: Filter certain DOM attributes (e.g. src) if value is empty string (#18513) //<Brian Vaughn>//
- **[e69ca310e](https://github.com/facebook/react/commit/e69ca310e )**: Revert "Refactor commitPlacement to recursively insert nodes (#17996)" (#18517) //<Dan Abramov>//
- **[3278d2421](https://github.com/facebook/react/commit/3278d2421 )**: Add useOpaqueIdentifier Hook (#17322) //<Luna Ruan>//
- **[416942019](https://github.com/facebook/react/commit/416942019 )**: Refactor Component Stack Traces (#18495) //<Sebastian Markbåge>//
- **[a3875663f](https://github.com/facebook/react/commit/a3875663f )**: React Event System: cleanup plugins + break out update batching logic (#18503) //<Dominic Gannaway>//
- **[fe2cb5255](https://github.com/facebook/react/commit/fe2cb5255 )**: [eslint] Consider `useRef() as ...` as constant (#18496) //<Sophie Alpert>//
- **[2ff27ec11](https://github.com/facebook/react/commit/2ff27ec11 )**: [eslint] strip tailing property in assignments (#16784) //<Zen>//
- **[5022fdfd5](https://github.com/facebook/react/commit/5022fdfd5 )**: Refactor Error Dialog Logging (#18487) //<Sebastian Markbåge>//
- **[e2dd30898](https://github.com/facebook/react/commit/e2dd30898 )**: [Flight] Lazily parse models and allow any value to suspend (#18476) //<Sebastian Markbåge>//
- **[59fd09cb6](https://github.com/facebook/react/commit/59fd09cb6 )**: [Flight] Add webpack plugin build (#18485) //<Sebastian Markbåge>//
- **[a876808f0](https://github.com/facebook/react/commit/a876808f0 )**: remove jsx plugin from react (#18484) //<Luna Ruan>//
- **[f312a3fc3](https://github.com/facebook/react/commit/f312a3fc3 )**: useMutableSource: bugfix for new getSnapshot with mutation (#18297) //<Brian Vaughn>//
- **[a8f2165e8](https://github.com/facebook/react/commit/a8f2165e8 )**: Update to Jest 25 (#18480) //<Dan Abramov>//
- **[3c16baf84](https://github.com/facebook/react/commit/3c16baf84 )**: Remove /dist/ UMD builds (#18473) //<Sebastian Markbåge>//
- **[4123d729e](https://github.com/facebook/react/commit/4123d729e )**: Revert "Revert: Enable new passive effect behavior for FB builds (#18467)" (#18468) //<Brian Vaughn>//
- **[8815e4cc7](https://github.com/facebook/react/commit/8815e4cc7 )**: Cleanup getListener and EventSystemFlags (#18469) //<Dominic Gannaway>//
- **[5e464546a](https://github.com/facebook/react/commit/5e464546a )**: ReactDOM.useEvent: fix scope propagation issue (#18464) //<Dominic Gannaway>//
- **[d5e4b3ae1](https://github.com/facebook/react/commit/d5e4b3ae1 )**: Modern Event System: refine flags and handling of enableLegacyFBSupport (#18466) //<Dominic Gannaway>//
- **[3966081cf](https://github.com/facebook/react/commit/3966081cf )**: Revert: Enable new passive effect behavior for FB builds (#18467) //<Dominic Gannaway>//
- **[7dfdff42a](https://github.com/facebook/react/commit/7dfdff42a )**: Run more flags in VARIANT tests (#18461) //<Dan Abramov>//
- **[31734540d](https://github.com/facebook/react/commit/31734540d )**: Remove a flag for style collision warning (#18462) //<Dan Abramov>//
- **[663c13d71](https://github.com/facebook/react/commit/663c13d71 )**: Refactor Enter/Leave listener accumulation (#18405) //<Dominic Gannaway>//
- **[58afba066](https://github.com/facebook/react/commit/58afba066 )**: Fix: Don't read primaryChild.childExpirationTime (#18457) //<Andrew Clark>//
- **[2ea7c6079](https://github.com/facebook/react/commit/2ea7c6079 )**: Fixed race condition in release script (#18456) //<Brian Vaughn>//
- **[3f4684489](https://github.com/facebook/react/commit/3f4684489 )**: [eslint-plugin-react-hooks] Added meta property (including docs) (#16607) //<Gabriel McAdams>//
- **[2bf60d9f9](https://github.com/facebook/react/commit/2bf60d9f9 )**: Fix ESLint rule crash (#18455) //<Dan Abramov>//
- **[3e94bce76](https://github.com/facebook/react/commit/3e94bce76 )**: Enable prefer-const lint rules (#18451) //<Sebastian Markbåge>//
- **[e6ea3d387](https://github.com/facebook/react/commit/e6ea3d387 )**: Use Closure Compiler to compile to ES5 instead of Babel (#18449) //<Sebastian Markbåge>//
- **[7516bdfce](https://github.com/facebook/react/commit/7516bdfce )**: feat(createContext): Include displayName in warning (#18386) //<Sebastian Silbermann>//
- **[5ee0efe83](https://github.com/facebook/react/commit/5ee0efe83 )**: Remove state update warning for passive effect cleanup functions (#18453) //<Brian Vaughn>//
- **[d8d2b6e89](https://github.com/facebook/react/commit/d8d2b6e89 )**: Disable module components dynamically for WWW (#18446) //<Dan Abramov>//
- **[e2c6702fc](https://github.com/facebook/react/commit/e2c6702fc )**: Remove ConcurrentMode and AsyncMode symbols (#18450) //<Sebastian Markbåge>//
- **[dc3c6c956](https://github.com/facebook/react/commit/dc3c6c956 )**: ReactDOM.useEvent: revert and add guard for null stateNode (#18441) //<Dominic Gannaway>//
- **[0f334553c](https://github.com/facebook/react/commit/0f334553c )**: Reset stateNode in resetWorkInProgress (#18448) //<Sebastian Markbåge>//
- **[153b5c305](https://github.com/facebook/react/commit/153b5c305 )**: Cleanup previous shims directories before re-copying (#18447) //<Brian Vaughn>//
- **[4de3a6032](https://github.com/facebook/react/commit/4de3a6032 )**: Remove disableMapsAsChildren flag (#18445) //<Brian Vaughn>//
- **[f4cc97027](https://github.com/facebook/react/commit/f4cc97027 )**: Enable new passive effect behavior for FB builds (#18444) //<Brian Vaughn>//
- **[9065e02d6](https://github.com/facebook/react/commit/9065e02d6 )**: Fix a warning typo (#18443) //<Dan Abramov>//
- **[1960131f1](https://github.com/facebook/react/commit/1960131f1 )**: Add opt-in support for dangerous autofix (#18437) //<Dan Abramov>//
- **[90e90ac8e](https://github.com/facebook/react/commit/90e90ac8e )**: Revert useEvent PRs (#18438) //<Andrew Clark>//
- **[da54641a1](https://github.com/facebook/react/commit/da54641a1 )**: [ESLint] Check deps when callback body is outside the Hook call, too (#18435) //<Dan Abramov>//
- **[bf30e370a](https://github.com/facebook/react/commit/bf30e370a )**: Remove User Timings (#18417) //<Dan Abramov>//
- **[dd7e5e4f5](https://github.com/facebook/react/commit/dd7e5e4f5 )**: Add getInspectorDataForViewAtPoint (take two) (#18388) //<Ricky>//
- **[d7382b6c4](https://github.com/facebook/react/commit/d7382b6c4 )**: Bugfix: Do not unhide a suspended tree without finishing the suspended update (#18411) //<Andrew Clark>//
- **[1f8c40451](https://github.com/facebook/react/commit/1f8c40451 )**: Make interaction tracing on by default in all WWW builds (#18419) //<Dan Abramov>//
- **[ba31ad40a](https://github.com/facebook/react/commit/ba31ad40a )**: feat(StrictMode): Double-invoke render for every component (#18430) //<Sebastian Silbermann>//
- **[689d27586](https://github.com/facebook/react/commit/689d27586 )**: Reset lastEffect when resuming SuspenseList (#18412) //<Sebastian Markbåge>//
- **[be4c8b19c](https://github.com/facebook/react/commit/be4c8b19c )**: Don't show destroy function state update warning when updating ancestors (#18409) //<Brian Vaughn>//
- **[35a2f7497](https://github.com/facebook/react/commit/35a2f7497 )**: Delete leftover assignment from #18384 //<Andrew Clark>//
- **[9d67847f7](https://github.com/facebook/react/commit/9d67847f7 )**: [Bugfix] Dropped updates inside a suspended tree (#18384) //<Andrew Clark>//
- **[5bd1bc29b](https://github.com/facebook/react/commit/5bd1bc29b )**: eslint-plugin-react-hooks@3.0.0 //<Dan Abramov>//
- **[e0ab1a429](https://github.com/facebook/react/commit/e0ab1a429 )**: ReactDOM.useEvent: enable on internal www and add inspection test (#18395) //<Dominic Gannaway>//
- **[a16b34974](https://github.com/facebook/react/commit/a16b34974 )**: ReactDOM.useEvent: Add support for experimental scopes API (#18375) //<Dominic Gannaway>//
- **[dbb060d56](https://github.com/facebook/react/commit/dbb060d56 )**: Pass BundlerConfig through to Relay Integration (#18393) //<Sebastian Markbåge>//
- **[ce6fe50b0](https://github.com/facebook/react/commit/ce6fe50b0 )**: Add server-runtime to create Server Blocks (#18392) //<Sebastian Markbåge>//
- **[64ed221c3](https://github.com/facebook/react/commit/64ed221c3 )**: Formalize the Wakeable and Thenable types (#18391) //<Sebastian Markbåge>//
- **[a6924d77b](https://github.com/facebook/react/commit/a6924d77b )**: Change .model getter to .readRoot method (#18382) //<Sebastian Markbåge>//
- **[6498f62ed](https://github.com/facebook/react/commit/6498f62ed )**: Fix a mistake in ReactChildren refactor (#18380) //<Dan Abramov>//
- **[2ba43edc2](https://github.com/facebook/react/commit/2ba43edc2 )**: Rename internal fields (#18377) //<Dan Abramov>//
- **[a317bd033](https://github.com/facebook/react/commit/a317bd033 )**: Flip the arguments of Blocks and make the query optional (#18374) //<Sebastian Markbåge>//
- **[fc7835c65](https://github.com/facebook/react/commit/fc7835c65 )**: Revert "Upgrade to jest 25 (#17896)" (#18376) //<Andrew Clark>//
- **[a56309fb8](https://github.com/facebook/react/commit/a56309fb8 )**: [Flight] Integrate Blocks into Flight (#18371) //<Sebastian Markbåge>//
- **[fc96a52be](https://github.com/facebook/react/commit/fc96a52be )**: Refactor React.Children to reduce indirection (#18332) //<Dan Abramov>//
- **[fd61f7ea5](https://github.com/facebook/react/commit/fd61f7ea5 )**: Refactor Lazy Components to use teh Suspense (and wrap Blocks in Lazy) (#18362) //<Sebastian Markbåge>//
- **[31a9e391f](https://github.com/facebook/react/commit/31a9e391f )**: Remove unnecessary lines for `hasBadMapPolyfill` issue for rollup (#16231) //<Mohammad Aziz>//
- **[c0cd1be90](https://github.com/facebook/react/commit/c0cd1be90 )**: [Flight] Move bundler configs to use Suspense instead of returning thenable (#18367) //<Sebastian Markbåge>//
- **[b779dd51e](https://github.com/facebook/react/commit/b779dd51e )**: Stop syncing ReactTypes to RN (#18366) //<Sebastian Markbåge>//
- **[c5d2fc712](https://github.com/facebook/react/commit/c5d2fc712 )**: Move some files out of /shared and rename to upper case (#18363) //<Sebastian Markbåge>//
- **[a600408b2](https://github.com/facebook/react/commit/a600408b2 )**: ReactDOM.useEvent: add `EventTarget` support (#18355) //<Dominic Gannaway>//
- **[dbd85a08d](https://github.com/facebook/react/commit/dbd85a08d )**: ReactDOM.useEvent: support custom types (#18351) //<Dominic Gannaway>//
- **[7c1478680](https://github.com/facebook/react/commit/7c1478680 )**: fix string ref cannot be auto converted warning for React.jsxDEV (#18354) //<Luna Ruan>//
- **[fc91508c1](https://github.com/facebook/react/commit/fc91508c1 )**: Follow ups to bundler configs (#18352) //<Sebastian Markbåge>//
- **[ffefb4e77](https://github.com/facebook/react/commit/ffefb4e77 )**: ModernEventSystem: refine Flow types (#18349) //<Dominic Gannaway>//
- **[6818a2aa0](https://github.com/facebook/react/commit/6818a2aa0 )**: Revert accidental changes to package.json (#18348) //<Andrew Clark>//
- **[ad445b127](https://github.com/facebook/react/commit/ad445b127 )**: Update package.jsons for 16.13.1 patch relase //<Andrew Clark>//
- **[8311cb5d2](https://github.com/facebook/react/commit/8311cb5d2 )**: Modern Event System: refactor legacy FB support logic (#18336) //<Dominic Gannaway>//
- **[d3368beee](https://github.com/facebook/react/commit/d3368beee )**: [eslint-plugin-react-hooks] Disallow hooks in class components (#18341) //<Ian Obermiller>//
- **[8206b4b86](https://github.com/facebook/react/commit/8206b4b86 )**: Wire up bundler configs (#18334) //<Sebastian Markbåge>//
- **[5152c4a9f](https://github.com/facebook/react/commit/5152c4a9f )**: Fixed inconcistency with surrounding punctuation (#18339) //<ItsByteMe>//
- **[94505b961](https://github.com/facebook/react/commit/94505b961 )**: Don't use EventListener Fork in Modern WWW Builds (#18333) //<Sebastian Markbåge>//
- **[aae83a4b9](https://github.com/facebook/react/commit/aae83a4b9 )**: Fix UMD Builds (ReactSharedInternals) //<Luna Ruan>//
- **[fe1f79b95](https://github.com/facebook/react/commit/fe1f79b95 )**: Don't fire the render phase update warning for class lifecycles (#18330) //<Dan Abramov>//
- **[22cab1cbd](https://github.com/facebook/react/commit/22cab1cbd )**: test(getComponentName): Increase test coverage (#18149) //<Sebastian Silbermann>//
- **[90f8fe6f5](https://github.com/facebook/react/commit/90f8fe6f5 )**: add jsx-runtime and jsx-dev-runtime (#18299) //<Luna Ruan>//
- **[26666427d](https://github.com/facebook/react/commit/26666427d )**: Don't support older isomorphic React with newer renderers (#18329) //<Dan Abramov>//
- **[3a0076e0e](https://github.com/facebook/react/commit/3a0076e0e )**: useEvent: Small tweaks and changes (#18328) //<Dominic Gannaway>//
- **[924091853](https://github.com/facebook/react/commit/924091853 )**: Bump react-shallow-renderer to 16.13.1 (#18187) //<Minh Nguyen>//
- **[c804f9aeb](https://github.com/facebook/react/commit/c804f9aeb )**: ReactDOM.useEvent: wire to event system to the hook (#18304) //<Dominic Gannaway>//
- **[297f7588c](https://github.com/facebook/react/commit/297f7588c )**: Moved passive effects flag to be beside execution context (#18322) //<Brian Vaughn>//
- **[95df39b6b](https://github.com/facebook/react/commit/95df39b6b )**: improve error message for cross-functional component updates (#18316) //<Jovi De Croock>//
- **[c0ed0a246](https://github.com/facebook/react/commit/c0ed0a246 )**: Replace passive effect context with boolean (#18309) //<Brian Vaughn>//
- **[730389b9d](https://github.com/facebook/react/commit/730389b9d )**: Warn against state updates from useEffect destroy functions (#18307) //<Brian Vaughn>//
- **[73ff8b909](https://github.com/facebook/react/commit/73ff8b909 )**: Run ReactElementJSX-test against bundles (#18301) //<Dan Abramov>//
- **[2a7cd5895](https://github.com/facebook/react/commit/2a7cd5895 )**: ReactDOM.useEvent: Add DOM host event listener logic (#18292) //<Dominic Gannaway>//
- **[d3ec42020](https://github.com/facebook/react/commit/d3ec42020 )**: Address feedback for accumulateTwoPhaseListeners (#18289) //<Dominic Gannaway>//
- **[cd48a0654](https://github.com/facebook/react/commit/cd48a0654 )**: Set up infra for react-reconciler fork (#18285) //<Andrew Clark>//
- **[615df434b](https://github.com/facebook/react/commit/615df434b )**: Remove manual feature flag overrides (#18291) //<Andrew Clark>//
- **[99d271228](https://github.com/facebook/react/commit/99d271228 )**: ReactDOM.useEvent: more scaffolding changes (#18282) //<Dominic Gannaway>//
- **[8b155d261](https://github.com/facebook/react/commit/8b155d261 )**: Flow type ReactDOMComponentTree (#18280) //<Dominic Gannaway>//
- **[322cdcd3a](https://github.com/facebook/react/commit/322cdcd3a )**: useMutableSource hook (#18000) //<Brian Vaughn>//
- **[30a998deb](https://github.com/facebook/react/commit/30a998deb )**: ModernEventSystem: refactor accumulateTwoPhaseListeners (#18274) //<Dominic Gannaway>//
- **[8fe066fda](https://github.com/facebook/react/commit/8fe066fda )**: Bugfix: "Captured" updates on legacy queue (#18265) //<Andrew Clark>//

Changelog:
[General][Changed] - React Native sync for revisions b5c6dd2...c9749d3

Reviewed By: gaearon

Differential Revision: D22640659

fbshipit-source-id: c3c146b87fa5663954bd94adbe689303aabbcd3c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Missing Test Plan This PR appears to be missing a test plan. Platform: iOS iOS applications.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

com.squareup.SocketRocket.NetworkThread(18): EXC_BAD_ACCESS