Skip to content

Commit

Permalink
Re-enable direct debugging with JSC on iOS 16.4+ (#37874)
Browse files Browse the repository at this point in the history
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: #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
  • Loading branch information
Saadnajmi authored and facebook-github-bot committed Jun 15, 2023
1 parent 894b62c commit 5cf8f43
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions packages/react-native/ReactCommon/jsc/JSCRuntime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down

0 comments on commit 5cf8f43

Please sign in to comment.