Re-enable direct debugging with JSC on iOS 16.4+ (#37874)

Summary:
See: https://webkit.org/blog/13936/enabling-the-inspection-of-web-content-in-apps

As of iOS 16.4 and above, JSContexts are no longer inspectable by default. Without this, we cannot attach Safari Web Inspector to the JSContext, AKA, we can no longer direct debug. This is a simple change to re-enable that. I decided to extend the `availability` check to macOS and tvOS as I'm certain both out of tree platform forks will want this fix as well.

## Changelog:

[IOS] [FIXED] - Re-enable direct debugging with JSC on iOS 16.4+

Pull Request resolved: https://github.com/facebook/react-native/pull/37874

Test Plan: I launched RNTester in an iOS 15, and iOS 16.4 simulator. I then verified that we can attach Safari Web inspector to both simulators' JSContexts.

Reviewed By: cortinico

Differential Revision: D46719890

Pulled By: huntie

fbshipit-source-id: 7fa5ae244577b7dbf3c9c16e65ad530cfc3e9cbd
This commit is contained in:
Saad Najmi
2023-06-15 02:32:51 -07:00
committed by Facebook GitHub Bot
parent 894b62ce90
commit 5cf8f43ab1
@@ -398,6 +398,11 @@ JSCRuntime::JSCRuntime(JSGlobalContextRef ctx)
stringCounter_(0)
#endif
{
#ifndef NDEBUG
if (__builtin_available(macOS 13.3, iOS 16.4, tvOS 16.4, *)) {
JSGlobalContextSetInspectable(ctx_, true);
}
#endif
}
JSCRuntime::~JSCRuntime() {