react-native-windows 0.71.26 → 0.71.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Directory.Build.props +0 -5
- package/Microsoft.ReactNative/IReactDispatcher.cpp +0 -4
- package/Microsoft.ReactNative/IReactDispatcher.h +0 -1
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -2
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -31
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +2 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +3 -3
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +2103 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +73 -0
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +12 -43
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +6 -17
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +4 -4
- package/PropertySheets/React.Cpp.props +0 -1
- package/PropertySheets/Warnings.props +0 -6
- package/ReactCommon/ReactCommon.vcxproj +1 -53
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +0 -36
- package/Shared/DevSupportManager.cpp +9 -2
- package/Shared/DevSupportManager.h +6 -2
- package/Shared/HermesRuntimeHolder.cpp +84 -344
- package/Shared/HermesRuntimeHolder.h +21 -32
- package/Shared/HermesSamplingProfiler.cpp +14 -66
- package/Shared/HermesSamplingProfiler.h +3 -5
- package/Shared/HermesShim.cpp +118 -0
- package/Shared/HermesShim.h +21 -0
- package/Shared/InspectorPackagerConnection.cpp +108 -62
- package/Shared/InspectorPackagerConnection.h +21 -9
- package/Shared/JSI/NapiJsiV8RuntimeHolder.cpp +209 -0
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +44 -0
- package/Shared/JSI/RuntimeHolder.h +2 -2
- package/Shared/JSI/ScriptStore.h +20 -18
- package/Shared/OInstance.cpp +32 -16
- package/Shared/Shared.vcxitems +8 -19
- package/Shared/Shared.vcxitems.filters +30 -23
- package/Shared/V8JSIRuntimeHolder.cpp +70 -0
- package/Shared/V8JSIRuntimeHolder.h +53 -0
- package/package.json +2 -2
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiLoader.cpp +0 -16
- package/ReactCommon/cgmanifest.json +0 -15
- package/Shared/JSI/V8RuntimeHolder.cpp +0 -260
- package/Shared/JSI/V8RuntimeHolder.h +0 -37
- package/Shared/SafeLoadLibrary.cpp +0 -41
- package/Shared/SafeLoadLibrary.h +0 -15
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
#ifndef MICROSOFT_REACTNATIVE_JSI_NODEAPIJSIRUNTIME
|
|
6
|
+
#define MICROSOFT_REACTNATIVE_JSI_NODEAPIJSIRUNTIME
|
|
7
|
+
|
|
8
|
+
// JSI
|
|
9
|
+
#include <js_native_ext_api.h>
|
|
10
|
+
#include <jsi/jsi.h>
|
|
11
|
+
|
|
12
|
+
// Standard Library
|
|
13
|
+
#include <memory>
|
|
14
|
+
|
|
15
|
+
namespace Microsoft::JSI {
|
|
16
|
+
|
|
17
|
+
///
|
|
18
|
+
// NodeApiJsiRuntime factory function.
|
|
19
|
+
// TODO: Rename as MakeNapiJsiRuntime once code is dropped from V8-JSI.
|
|
20
|
+
///
|
|
21
|
+
std::unique_ptr<facebook::jsi::Runtime> __cdecl MakeNodeApiJsiRuntime(napi_env env) noexcept;
|
|
22
|
+
|
|
23
|
+
template <typename T>
|
|
24
|
+
struct NativeObjectWrapper;
|
|
25
|
+
|
|
26
|
+
template <typename T>
|
|
27
|
+
struct NativeObjectWrapper<std::unique_ptr<T>> {
|
|
28
|
+
static napi_ext_native_data Wrap(std::unique_ptr<T> &&obj) noexcept {
|
|
29
|
+
napi_ext_native_data nativeData{};
|
|
30
|
+
nativeData.data = obj.release();
|
|
31
|
+
nativeData.finalize_cb = [](napi_env /*env*/, void *data, void * /*finalizeHint*/) {
|
|
32
|
+
std::unique_ptr<T> obj{reinterpret_cast<T *>(data)};
|
|
33
|
+
};
|
|
34
|
+
return nativeData;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static T *Unwrap(napi_ext_native_data &nativeData) noexcept {
|
|
38
|
+
return reinterpret_cast<T *>(nativeData.data);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
template <typename T>
|
|
43
|
+
struct NativeObjectWrapper<std::shared_ptr<T>> {
|
|
44
|
+
static napi_ext_native_data Wrap(std::shared_ptr<T> &&obj) noexcept {
|
|
45
|
+
static_assert(
|
|
46
|
+
sizeof(SharedPtrHolder) == sizeof(std::shared_ptr<T>), "std::shared_ptr expected to have size of two pointers");
|
|
47
|
+
SharedPtrHolder ptrHolder;
|
|
48
|
+
new (std::addressof(ptrHolder)) std::shared_ptr(std::move(obj));
|
|
49
|
+
napi_ext_native_data nativeData{};
|
|
50
|
+
nativeData.data = ptrHolder.ptr1;
|
|
51
|
+
nativeData.finalize_hint = ptrHolder.ptr2;
|
|
52
|
+
nativeData.finalize_cb = [](napi_env /*env*/, void *data, void *finalizeHint) {
|
|
53
|
+
SharedPtrHolder ptrHolder{data, finalizeHint};
|
|
54
|
+
std::shared_ptr<T> obj(std::move(*reinterpret_cast<std::shared_ptr<T> *>(std::addressof(ptrHolder))));
|
|
55
|
+
};
|
|
56
|
+
return nativeData;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static std::shared_ptr<T> Unwrap(napi_ext_native_data &nativeData) noexcept {
|
|
60
|
+
SharedPtrHolder ptrHolder{nativeData.data, nativeData.finalize_hint};
|
|
61
|
+
return *reinterpret_cast<std::shared_ptr<T> *>(std::addressof(ptrHolder));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
private:
|
|
65
|
+
struct SharedPtrHolder {
|
|
66
|
+
void *ptr1;
|
|
67
|
+
void *ptr2;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
} // namespace Microsoft::JSI
|
|
72
|
+
|
|
73
|
+
#endif // MICROSOFT_REACTNATIVE_JSI_NODEAPIJSIRUNTIME
|
|
@@ -14,14 +14,6 @@
|
|
|
14
14
|
<TurboModule_SourcePath Condition="'$(TurboModule_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\TurboModule.h')">$(MSBuildThisFileDirectory)</TurboModule_SourcePath>
|
|
15
15
|
<Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\ReactCommon\react\bridging</Bridging_SourcePath>
|
|
16
16
|
<Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\CallbackWrapper.h')">$(MSBuildThisFileDirectory)ReactCommon</Bridging_SourcePath>
|
|
17
|
-
|
|
18
|
-
<NodeApiJsiCommitHash>53b897b03c1c7e57c3372acc6234447a44e150d6</NodeApiJsiCommitHash>
|
|
19
|
-
<NodeApiJsiLocal Condition="Exists('$(MSBuildThisFileDirectory)NodeApiJsiRuntime.cpp')">true</NodeApiJsiLocal>
|
|
20
|
-
<NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(NodeApiJsiLocal)' == 'true'">$(MSBuildThisFileDirectory)</NodeApiJsiDir>
|
|
21
|
-
<NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\..\..\node_modules\.node-api-jsi\node-api-jsi-$(NodeApiJsiCommitHash)\</NodeApiJsiDir>
|
|
22
|
-
<NodeApiJsiSrcDir Condition="'$(NodeApiJsiSrcDir)' == '' AND '$(NodeApiJsiLocal)' != 'true'">$(NodeApiJsiDir)src\</NodeApiJsiSrcDir>
|
|
23
|
-
<NodeApiJsiSrcDir Condition="'$(NodeApiJsiSrcDir)' == ''">$(MSBuildThisFileDirectory)</NodeApiJsiSrcDir>
|
|
24
|
-
<NodeApiDir Condition="'$(NodeApiDir)' == ''">$(NodeApiJsiDir)node-api\</NodeApiDir>
|
|
25
17
|
</PropertyGroup>
|
|
26
18
|
<ItemDefinitionGroup>
|
|
27
19
|
<ClCompile>
|
|
@@ -31,11 +23,8 @@
|
|
|
31
23
|
$(CallInvoker_SourcePath);
|
|
32
24
|
$(TurboModule_SourcePath);
|
|
33
25
|
$(Bridging_SourcePath);
|
|
34
|
-
$(NodeApiDir);
|
|
35
|
-
$(NodeApiJsiSrcDir);
|
|
36
26
|
%(AdditionalIncludeDirectories)
|
|
37
27
|
</AdditionalIncludeDirectories>
|
|
38
|
-
<PreprocessorDefinitions>JSI_VERSION=9;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
39
28
|
</ClCompile>
|
|
40
29
|
<Midl>
|
|
41
30
|
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
@@ -51,6 +40,7 @@
|
|
|
51
40
|
<ClInclude Include="$(MSBuildThisFileDirectory)CoreApp.h" />
|
|
52
41
|
<ClInclude Include="$(MSBuildThisFileDirectory)DesktopWindowBridge.h" />
|
|
53
42
|
<ClInclude Include="$(MSBuildThisFileDirectory)JSI\LongLivedJsiValue.h" />
|
|
43
|
+
<ClInclude Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.h" />
|
|
54
44
|
<ClInclude Include="$(MSBuildThisFileDirectory)TurboModuleProvider.h" />
|
|
55
45
|
<ClInclude Include="$(CallInvoker_SourcePath)\ReactCommon\CallInvoker.h" />
|
|
56
46
|
<ClInclude Include="$(MSBuildThisFileDirectory)XamlUtils.h" />
|
|
@@ -100,14 +90,6 @@
|
|
|
100
90
|
<ClInclude Include="$(MSBuildThisFileDirectory)UI.Xaml.Media.Media3D.h" />
|
|
101
91
|
<ClInclude Include="$(MSBuildThisFileDirectory)UI.Xaml.Navigation.h" />
|
|
102
92
|
<ClInclude Include="$(MSBuildThisFileDirectory)UI.Xaml.Shapes.h" />
|
|
103
|
-
<ClInclude Include="$(NodeApiDir)js_native_api.h" />
|
|
104
|
-
<ClInclude Include="$(NodeApiDir)js_native_api_types.h" />
|
|
105
|
-
<ClInclude Include="$(NodeApiDir)js_runtime_api.h" />
|
|
106
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\NodeApi.h" />
|
|
107
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\NodeApi.inc" />
|
|
108
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\JSRuntimeApi.h" />
|
|
109
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\JSRuntimeApi.inc" />
|
|
110
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)NodeApiJsiRuntime.h" />
|
|
111
93
|
</ItemGroup>
|
|
112
94
|
<ItemGroup Condition="'$(BuildMSRNCxx)' != 'false'">
|
|
113
95
|
<ClCompile Include="$(MSBuildThisFileDirectory)JSI\JsiAbiApi.cpp" />
|
|
@@ -120,18 +102,16 @@
|
|
|
120
102
|
<ClCompile Include="$(MSBuildThisFileDirectory)ReactPromise.cpp" />
|
|
121
103
|
<ClCompile Include="$(MSBuildThisFileDirectory)TurboModuleProvider.cpp" />
|
|
122
104
|
</ItemGroup>
|
|
123
|
-
<ItemGroup Condition="'$(
|
|
124
|
-
<ClCompile Include="$(JSI_SourcePath)\jsi\jsi.cpp">
|
|
125
|
-
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
126
|
-
<DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
|
|
127
|
-
</ClCompile>
|
|
128
|
-
</ItemGroup>
|
|
129
|
-
<ItemGroup Condition="'$(BuildMSRNCxxReactCommon)' != 'false'">
|
|
105
|
+
<ItemGroup Condition="'$(BuildMSRNCxx)' != 'false' and '$(BuildMSRNCxxReactCommon)' != 'false'">
|
|
130
106
|
<!--
|
|
131
|
-
Make sure all
|
|
107
|
+
Make sure all FB code uses the same flags to improve build parallelism.
|
|
132
108
|
This is because msbuild has to invoke different cl.exe invocations for each
|
|
133
109
|
set of flags and msbuild inside a project is single threaded.
|
|
134
110
|
-->
|
|
111
|
+
<ClCompile Include="$(JSI_SourcePath)\jsi\jsi.cpp">
|
|
112
|
+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
113
|
+
<DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
|
|
114
|
+
</ClCompile>
|
|
135
115
|
<ClCompile Include="$(Bridging_SourcePath)\LongLivedObject.cpp">
|
|
136
116
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
137
117
|
<DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
|
|
@@ -145,23 +125,12 @@
|
|
|
145
125
|
<DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
|
|
146
126
|
</ClCompile>
|
|
147
127
|
</ItemGroup>
|
|
148
|
-
<ItemGroup Condition="'$(BuildMSRNCxxNodeApiJsi)' != 'false'">
|
|
149
|
-
<ClCompile Include="$(NodeApiJsiSrcDir)ApiLoaders\NodeApi.cpp">
|
|
150
|
-
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
151
|
-
</ClCompile>
|
|
152
|
-
<ClCompile Include="$(NodeApiJsiSrcDir)ApiLoaders\JSRuntimeApi.cpp">
|
|
153
|
-
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
154
|
-
</ClCompile>
|
|
155
|
-
<ClCompile Include="$(NodeApiJsiSrcDir)NodeApiJsiRuntime.cpp">
|
|
156
|
-
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
157
|
-
</ClCompile>
|
|
158
|
-
</ItemGroup>
|
|
159
|
-
<ItemGroup Condition="'$(BuildMSRNCxxNodeApiJsiLoader)' != 'false'">
|
|
160
|
-
<ClCompile Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiLoader.cpp">
|
|
161
|
-
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
162
|
-
</ClCompile>
|
|
163
|
-
</ItemGroup>
|
|
164
128
|
<ItemGroup>
|
|
165
129
|
<None Include="$(MSBuildThisFileDirectory)README.md" />
|
|
166
130
|
</ItemGroup>
|
|
131
|
+
<ItemGroup>
|
|
132
|
+
<ClCompile Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.cpp">
|
|
133
|
+
<ExcludedFromBuild Condition="'$(UseV8)' != 'true'">true</ExcludedFromBuild>
|
|
134
|
+
</ClCompile>
|
|
135
|
+
</ItemGroup>
|
|
167
136
|
</Project>
|
|
@@ -27,13 +27,10 @@
|
|
|
27
27
|
<ClCompile Include="$(MSBuildThisFileDirectory)JSI\JsiApiContext.cpp">
|
|
28
28
|
<Filter>JSI</Filter>
|
|
29
29
|
</ClCompile>
|
|
30
|
-
<ClCompile Include="$(
|
|
31
|
-
|
|
32
|
-
<Filter>NodeApiJsi</Filter>
|
|
30
|
+
<ClCompile Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.cpp">
|
|
31
|
+
<Filter>JSI</Filter>
|
|
33
32
|
</ClCompile>
|
|
34
|
-
<ClCompile Include="$(
|
|
35
|
-
<ClCompile Include="$(NodeApiJsiSrcDir)ApiLoaders\JSRuntimeApi.cpp" />
|
|
36
|
-
<ClCompile Include="$(NodeApiJsiSrcDir)NodeApiJsiRuntime.cpp" />
|
|
33
|
+
<ClCompile Include="$(Bridging_SourcePath)\LongLivedObject.cpp" />
|
|
37
34
|
</ItemGroup>
|
|
38
35
|
<ItemGroup>
|
|
39
36
|
<ClInclude Include="$(MSBuildThisFileDirectory)Crash.h" />
|
|
@@ -156,19 +153,14 @@
|
|
|
156
153
|
<ClInclude Include="$(MSBuildThisFileDirectory)XamlUtils.h">
|
|
157
154
|
<Filter>UI</Filter>
|
|
158
155
|
</ClInclude>
|
|
156
|
+
<ClInclude Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.h">
|
|
157
|
+
<Filter>JSI</Filter>
|
|
158
|
+
</ClInclude>
|
|
159
159
|
<ClInclude Include="$(Bridging_SourcePath)\CallbackWrapper.h" />
|
|
160
160
|
<ClInclude Include="$(MSBuildThisFileDirectory)CoreApp.h" />
|
|
161
161
|
<ClInclude Include="$(MSBuildThisFileDirectory)JSI\LongLivedJsiValue.h">
|
|
162
162
|
<Filter>TurboModule</Filter>
|
|
163
163
|
</ClInclude>
|
|
164
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\NodeApi.h" />
|
|
165
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\NodeApi.inc" />
|
|
166
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\JSRuntimeApi.h" />
|
|
167
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)ApiLoaders\JSRuntimeApi.inc" />
|
|
168
|
-
<ClInclude Include="$(NodeApiJsiSrcDir)NodeApiJsiRuntime.h" />
|
|
169
|
-
<ClInclude Include="$(NodeApiDir)js_native_api.h" />
|
|
170
|
-
<ClInclude Include="$(NodeApiDir)js_native_api_types.h" />
|
|
171
|
-
<ClInclude Include="$(NodeApiDir)js_runtime_api.h" />
|
|
172
164
|
</ItemGroup>
|
|
173
165
|
<ItemGroup>
|
|
174
166
|
<Filter Include="JSI">
|
|
@@ -180,9 +172,6 @@
|
|
|
180
172
|
<Filter Include="TurboModule">
|
|
181
173
|
<UniqueIdentifier>{b5c0294c-d72f-44fa-8509-369f7d3e4a56}</UniqueIdentifier>
|
|
182
174
|
</Filter>
|
|
183
|
-
<Filter Include="NodeApiJsi">
|
|
184
|
-
<UniqueIdentifier>{a34cd50a-190c-4cbb-8fe1-6ff1e16fe389}</UniqueIdentifier>
|
|
185
|
-
</Filter>
|
|
186
175
|
</ItemGroup>
|
|
187
176
|
<ItemGroup>
|
|
188
177
|
<None Include="$(MSBuildThisFileDirectory)README.md" />
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<!-- WinUI package name and version are set by WinUI.props -->
|
|
20
20
|
<PackageReference Include="$(WinUIPackageName)" Version="$(WinUIPackageVersion)" Condition="'$(OverrideWinUIPackage)'!='true'" />
|
|
21
21
|
<!-- Hermes version is set by JSEngine.props -->
|
|
22
|
-
<PackageReference Include="
|
|
22
|
+
<PackageReference Include="ReactNative.Hermes.Windows" Version="$(HermesVersion)" Condition="$(UseHermes)" />
|
|
23
23
|
</ItemGroup>
|
|
24
24
|
|
|
25
25
|
<Import Project="$(ReactNativeWindowsDir)PropertySheets\ManagedCodeGen\Microsoft.ReactNative.Managed.CodeGen.targets"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<!-- WinUI package name and version are set by WinUI.props -->
|
|
20
20
|
<PackageReference Include="$(WinUIPackageName)" Version="$(WinUIPackageVersion)" Condition="'$(OverrideWinUIPackage)'!='true'" />
|
|
21
21
|
<!-- Hermes version is set by JSEngine.props -->
|
|
22
|
-
<PackageReference Include="
|
|
22
|
+
<PackageReference Include="ReactNative.Hermes.Windows" Version="$(HermesVersion)" Condition="$(UseHermes)" />
|
|
23
23
|
</ItemGroup>
|
|
24
24
|
|
|
25
25
|
<!-- The props file for bundling is not set up to be just defaults, it assumes to be run at the end of the project. -->
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<!-- WinUI package name and version are set by WinUI.props -->
|
|
25
25
|
<PackageReference Include="$(WinUIPackageName)" Version="$(WinUIPackageVersion)" Condition="'$(OverrideWinUIPackage)'!='true'" />
|
|
26
26
|
<!-- Hermes version is set by JSEngine.props -->
|
|
27
|
-
<PackageReference Include="
|
|
27
|
+
<PackageReference Include="ReactNative.Hermes.Windows" Version="$(HermesVersion)" Condition="$(UseHermes)" />
|
|
28
28
|
</ItemGroup>
|
|
29
29
|
|
|
30
30
|
<!-- Defining the "Msix" ProjectCapability here allows the Single-project MSIX Packaging
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.71.
|
|
13
|
+
<ReactNativeWindowsVersion>0.71.27</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>71</ReactNativeWindowsMinor>
|
|
16
|
-
<ReactNativeWindowsPatch>
|
|
16
|
+
<ReactNativeWindowsPatch>27</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
|
|
18
|
-
<ReactNativeWindowsCommitId>
|
|
18
|
+
<ReactNativeWindowsCommitId>5cd9b23f58d5b82abb2ab41a35444ede00afd6da</ReactNativeWindowsCommitId>
|
|
19
19
|
</PropertyGroup>
|
|
20
20
|
</Project>
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
<!-- Enabling this will (1) Include hermes glues in the Microsoft.ReactNative binaries AND (2) Make hermes the default engine -->
|
|
15
15
|
<UseHermes Condition="'$(UseHermes)' == ''">false</UseHermes>
|
|
16
16
|
<!-- This will be true if (1) the client want to use hermes by setting UseHermes to true OR (2) We are building for UWP where dynamic switching is enabled -->
|
|
17
|
-
<HermesVersion Condition="'$(HermesVersion)' == ''">0.1
|
|
18
|
-
<HermesPackage Condition="'$(HermesPackage)' == '' And Exists('$(
|
|
19
|
-
<HermesPackage Condition="'$(HermesPackage)' == ''">$(NuGetPackageRoot)\
|
|
17
|
+
<HermesVersion Condition="'$(HermesVersion)' == ''">0.71.1</HermesVersion>
|
|
18
|
+
<HermesPackage Condition="'$(HermesPackage)' == '' And Exists('$(PkgReactNative_Hermes_Windows)')">$(PkgReactNative_Hermes_Windows)</HermesPackage>
|
|
19
|
+
<HermesPackage Condition="'$(HermesPackage)' == ''">$(NuGetPackageRoot)\ReactNative.Hermes.Windows\$(HermesVersion)</HermesPackage>
|
|
20
20
|
<EnableHermesInspectorInReleaseFlavor Condition="'$(EnableHermesInspectorInReleaseFlavor)' == ''">false</EnableHermesInspectorInReleaseFlavor>
|
|
21
21
|
<!-- Disable linking Hermes into the output in cases where we need to fully rely on HermesShim -->
|
|
22
22
|
<HermesNoLink Condition="'$(HermesNoLink)' == '' and '$(Configuration)' == 'Release' and '$(EnableHermesInspectorInReleaseFlavor)' != 'true'">true</HermesNoLink>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<EnableDevServerHBCBundles Condition="'$(EnableDevServerHBCBundles)' == ''">false</EnableDevServerHBCBundles>
|
|
25
25
|
|
|
26
26
|
<UseV8 Condition="'$(UseV8)' == ''">false</UseV8>
|
|
27
|
-
<V8Version Condition="'$(V8Version)' == ''">0.71.
|
|
27
|
+
<V8Version Condition="'$(V8Version)' == ''">0.71.3</V8Version>
|
|
28
28
|
<V8PackageName>ReactNative.V8Jsi.Windows</V8PackageName>
|
|
29
29
|
<V8PackageName Condition="'$(V8AppPlatform)' != 'win32'">$(V8PackageName).UWP</V8PackageName>
|
|
30
30
|
<V8Package>$(NuGetPackageRoot)\$(V8PackageName).$(V8Version)</V8Package>
|
|
@@ -56,7 +56,6 @@
|
|
|
56
56
|
<PreprocessorDefinitions Condition="'$(EnableDevServerHBCBundles)'=='true'">ENABLE_DEVSERVER_HBCBUNDLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
57
57
|
<PreprocessorDefinitions Condition="'$(UseV8)'=='true'">USE_V8;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
58
58
|
<PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
59
|
-
<PreprocessorDefinitions>JSI_VERSION=9;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
60
59
|
</ClCompile>
|
|
61
60
|
</ItemDefinitionGroup>
|
|
62
61
|
|
|
@@ -34,12 +34,6 @@
|
|
|
34
34
|
<TreatWarningAsError>true</TreatWarningAsError>
|
|
35
35
|
<WarningLevel>Level4</WarningLevel>
|
|
36
36
|
</ClCompile>
|
|
37
|
-
<Link>
|
|
38
|
-
<!--
|
|
39
|
-
LNK4199: /DELAYLOAD:v8jsi.dll ignored; no imports found from v8jsi.dll
|
|
40
|
-
-->
|
|
41
|
-
<AdditionalOptions>/ignore:4199 %(AdditionalOptions)</AdditionalOptions>
|
|
42
|
-
</Link>
|
|
43
37
|
</ItemDefinitionGroup>
|
|
44
38
|
|
|
45
39
|
</Project>
|
|
@@ -106,7 +106,6 @@
|
|
|
106
106
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\cxxreact\SystraceSection.h" />
|
|
107
107
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSIExecutor.h" />
|
|
108
108
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSINativeModules.h" />
|
|
109
|
-
<ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector\InspectorInterfaces.h" />
|
|
110
109
|
<ClInclude Include="$(ReactNativeDir)\ReactCommon\logger\react_native_log.h" />
|
|
111
110
|
<ClInclude Include="$(YogaDir)\yoga\YGEnums.h" />
|
|
112
111
|
<ClInclude Include="$(YogaDir)\yoga\YGMacros.h" />
|
|
@@ -128,7 +127,6 @@
|
|
|
128
127
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsi\jsi\JSIDynamic.cpp" />
|
|
129
128
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSIExecutor.cpp" />
|
|
130
129
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSINativeModules.cpp" />
|
|
131
|
-
<ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector\InspectorInterfaces.cpp" />
|
|
132
130
|
<ClCompile Include="$(ReactNativeDir)\ReactCommon\logger\react_native_log.cpp" />
|
|
133
131
|
<CLCompile Include="$(ReactNativeDir)\ReactCommon\reactperflogger\reactperflogger\BridgeNativeModulePerfLogger.cpp" />
|
|
134
132
|
<ClCompile Include="$(YogaDir)\yoga\log.cpp" />
|
|
@@ -180,52 +178,6 @@
|
|
|
180
178
|
<ItemGroup>
|
|
181
179
|
<PackageReference Include="boost" Version="1.76.0.0" />
|
|
182
180
|
</ItemGroup>
|
|
183
|
-
<PropertyGroup>
|
|
184
|
-
<NodeApiJsiZipDir>$(NodeApiJsiDir)..\.node-api-jsi-zip</NodeApiJsiZipDir>
|
|
185
|
-
<NodeApiJsiZipFile>$(NodeApiJsiZipDir)\node-api-jsi-$(NodeApiJsiCommitHash).zip</NodeApiJsiZipFile>
|
|
186
|
-
<CGManifestFile>$(MSBuildThisFileDirectory)cgmanifest.json</CGManifestFile>
|
|
187
|
-
</PropertyGroup>
|
|
188
|
-
<Target Name="DownloadNodeApiJsi" BeforeTargets="PrepareForBuild" Inputs="$(NodeApiJsiZipFile)" Outputs="$(NodeApiJsiZipFile)">
|
|
189
|
-
<Message Text="Downloading node-api-jsi..." Importance="High" />
|
|
190
|
-
<DownloadFile
|
|
191
|
-
SourceUrl="https://github.com/microsoft/node-api-jsi/archive/$(NodeApiJsiCommitHash).zip"
|
|
192
|
-
DestinationFileName="$(NodeApiJsiZipFile)"
|
|
193
|
-
DestinationFolder="$(NodeApiJsiZipDir)"
|
|
194
|
-
Retries="10" />
|
|
195
|
-
</Target>
|
|
196
|
-
<Target Name="UnzipNodeApiJsi" BeforeTargets="PrepareForBuild" DependsOnTargets="DownloadNodeApiJsi">
|
|
197
|
-
<Message Text="Unzipping node-api-jsi to $([MSBuild]::NormalizePath($(NodeApiJsiDir)..))." Importance="High"
|
|
198
|
-
Condition="!Exists('$(NodeApiJsiDir)src\NodeApiJsiRuntime.h')" />
|
|
199
|
-
<Unzip
|
|
200
|
-
Condition="!Exists('$(NodeApiJsiDir)src\NodeApiJsiRuntime.h')"
|
|
201
|
-
SourceFiles="$(NodeApiJsiZipFile)"
|
|
202
|
-
DestinationFolder="$([MSBuild]::NormalizePath($(NodeApiJsiDir)..))"
|
|
203
|
-
OverwriteReadOnlyFiles="true" />
|
|
204
|
-
</Target>
|
|
205
|
-
<Target Name="WriteCGManifest" BeforeTargets="PrepareForBuild" DependsOnTargets="DownloadNodeApiJsi" Inputs="$(NodeApiJsiZipFile)" Outputs="$(CGManifestFile)">
|
|
206
|
-
<PropertyGroup>
|
|
207
|
-
<CGManifestText>{
|
|
208
|
-
"$schema": "https://json.schemastore.org/component-detection-manifest.json",
|
|
209
|
-
"Registrations": [
|
|
210
|
-
{
|
|
211
|
-
"Component": {
|
|
212
|
-
"Type": "git",
|
|
213
|
-
"Git": {
|
|
214
|
-
"RepositoryUrl": "https://github.com/microsoft/node-api-jsi",
|
|
215
|
-
"CommitHash": "$(NodeApiJsiCommitHash)"
|
|
216
|
-
}
|
|
217
|
-
},
|
|
218
|
-
"DevelopmentDependency": false
|
|
219
|
-
}
|
|
220
|
-
]
|
|
221
|
-
}</CGManifestText>
|
|
222
|
-
</PropertyGroup>
|
|
223
|
-
<Message Text="Generating $(CGManifestFile)." Importance="High" />
|
|
224
|
-
<WriteLinesToFile
|
|
225
|
-
File="$(CGManifestFile)"
|
|
226
|
-
Overwrite="true"
|
|
227
|
-
Lines="$(CGManifestText)" />
|
|
228
|
-
</Target>
|
|
229
181
|
<Target Name="EnsureNodeModuleBuildImports" BeforeTargets="PrepareForBuild">
|
|
230
182
|
<Error Condition="!Exists('$(ReactNativeDir)')" Text="This project references code in the node_modules folder that is missing on this computer. Use `yarn install` to download them." />
|
|
231
183
|
<Error Condition="!Exists('$(YogaDir)')" Text="This project references code in the node_modules folder that is missing on this computer. Use `yarn install` to download them." />
|
|
@@ -235,11 +187,7 @@
|
|
|
235
187
|
</ItemGroup>
|
|
236
188
|
<Target Name="Deploy" />
|
|
237
189
|
<!-- Reenable this task if we need to temporarily replace any folly files for fixes, while we wait for PRs to land in folly -->
|
|
238
|
-
<Target Name="ApplyReactCommonTemporaryPatch" BeforeTargets="PrepareForBuild"
|
|
239
|
-
<ItemGroup>
|
|
240
|
-
<NodeApiJsiFiles Include="$([MSBuild]::NormalizePath($(NodeApiJsiDir)))\jsi\**\*.*" />
|
|
241
|
-
</ItemGroup>
|
|
242
|
-
<Copy DestinationFiles="@(NodeApiJsiFiles->'$(ReactNativeDir)\ReactCommon\jsi\%(RecursiveDir)%(Filename)%(Extension)')" SourceFiles="@(NodeApiJsiFiles)" />
|
|
190
|
+
<Target Name="ApplyReactCommonTemporaryPatch" BeforeTargets="PrepareForBuild">
|
|
243
191
|
<Copy DestinationFiles="@(TemporaryReactCommonPatchFiles->'$(ReactNativeDir)\ReactCommon\%(RecursiveDir)%(Filename)%(Extension)')" SourceFiles="@(TemporaryReactCommonPatchFiles)" />
|
|
244
192
|
</Target>
|
|
245
193
|
</Project>
|
|
@@ -15,23 +15,6 @@ Write-Host "Destination root: [$TargetRoot]"
|
|
|
15
15
|
Write-Host "React Native root: [$ReactNativeRoot]"
|
|
16
16
|
Write-Host "ReactCommon Override root: [$ReactCommonOverrideRoot]"
|
|
17
17
|
|
|
18
|
-
[xml]$props = gc $PSScriptRoot\..\..\Directory.Build.props
|
|
19
|
-
[string] $NodeApiJsiCommitHash = $props.Project.PropertyGroup.NodeApiJsiCommitHash;
|
|
20
|
-
$NodeApiJsiCommitHash = $NodeApiJsiCommitHash.Trim()
|
|
21
|
-
$NodeApiJsiRoot = "$SourceRoot\node_modules\.node-api-jsi\node-api-jsi-${NodeApiJsiCommitHash}";
|
|
22
|
-
Write-Host "Node-API JSI root: [$NodeApiJsiRoot]"
|
|
23
|
-
|
|
24
|
-
# Download Node-API JSI if running on a machine which hasn't run native build logic to acquire it
|
|
25
|
-
if (!(Test-Path $NodeApiJsiRoot)) {
|
|
26
|
-
Write-Host "Downloading Node-API JSI $NodeApiJsiCommitHash"
|
|
27
|
-
$NodeApiJsiZip = "$SourceRoot\node_modules\.node-api-jsi\node-api-jsi-${NodeApiJsiCommitHash}.zip"
|
|
28
|
-
$NodeApiJsiDest = "$SourceRoot\node_modules\.node-api-jsi"
|
|
29
|
-
|
|
30
|
-
New-Item $NodeApiJsiRoot -ItemType Directory
|
|
31
|
-
Invoke-RestMethod -Uri "https://github.com/microsoft/node-api-jsi/archive/${NodeApiJsiCommitHash}.zip" -OutFile $NodeApiJsiZip
|
|
32
|
-
Expand-Archive -LiteralPath $NodeApiJsiZip -DestinationPath $NodeApiJsiDest
|
|
33
|
-
}
|
|
34
|
-
|
|
35
18
|
md -Force $TargetRoot
|
|
36
19
|
|
|
37
20
|
$patterns = $Extensions| ForEach-Object {"*.$_"}
|
|
@@ -56,25 +39,6 @@ Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\jsi\jsi\jsi.h -Destination $
|
|
|
56
39
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\jsi\jsi\jsi-inl.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\jsi\
|
|
57
40
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\jsi\jsi\threadsafe.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\jsi\
|
|
58
41
|
|
|
59
|
-
# Microsoft.ReactNative.CXX project Node-API files
|
|
60
|
-
New-Item $TargetRoot\Microsoft.ReactNative.Cxx\node-api -ItemType Directory -Force
|
|
61
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_native_api.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
|
|
62
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_native_api_types.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
|
|
63
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_runtime_api.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\node-api\
|
|
64
|
-
|
|
65
|
-
# Microsoft.ReactNative.CXX project Node-API JSI files
|
|
66
|
-
New-Item $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders -ItemType Directory -Force
|
|
67
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\JSRuntimeApi.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
68
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\JSRuntimeApi.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
69
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\JSRuntimeApi.inc -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
70
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\NodeApi.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
71
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\NodeApi.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
72
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\NodeApi.inc -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
73
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\NodeApi_posix.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
74
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\ApiLoaders\NodeApi_win.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ApiLoaders\
|
|
75
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\NodeApiJsiRuntime.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\
|
|
76
|
-
Copy-Item -Force -Path $NodeApiJsiRoot\src\NodeApiJsiRuntime.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\
|
|
77
|
-
|
|
78
42
|
# Microsoft.ReactNative.CXX project TurboModule files
|
|
79
43
|
New-Item -ItemType Directory -Path $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon -Force
|
|
80
44
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\callinvoker\ReactCommon\CallInvoker.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
#include <winrt/Windows.Web.Http.Headers.h>
|
|
22
22
|
#include <winrt/Windows.Web.Http.h>
|
|
23
23
|
|
|
24
|
+
#ifdef HERMES_ENABLE_DEBUGGER
|
|
24
25
|
#include <winrt/Windows.ApplicationModel.Activation.h>
|
|
25
26
|
#include <winrt/Windows.Networking.Connectivity.h>
|
|
27
|
+
#endif
|
|
26
28
|
|
|
27
29
|
#pragma warning(push)
|
|
28
30
|
#pragma warning(disable : 4068 4251 4101 4804 4309)
|
|
@@ -241,6 +243,7 @@ void DevSupportManager::StopPollingLiveReload() {
|
|
|
241
243
|
void DevSupportManager::EnsureHermesInspector(
|
|
242
244
|
[[maybe_unused]] const std::string &packagerHost,
|
|
243
245
|
[[maybe_unused]] const uint16_t packagerPort) noexcept {
|
|
246
|
+
#ifdef HERMES_ENABLE_DEBUGGER
|
|
244
247
|
static std::once_flag once;
|
|
245
248
|
std::call_once(once, [this, &packagerHost, packagerPort]() {
|
|
246
249
|
// TODO: should we use the bundleAppId as the app param if available?
|
|
@@ -263,10 +266,14 @@ void DevSupportManager::EnsureHermesInspector(
|
|
|
263
266
|
m_BundleStatusProvider);
|
|
264
267
|
m_inspectorPackagerConnection->connectAsync();
|
|
265
268
|
});
|
|
269
|
+
|
|
270
|
+
#endif
|
|
266
271
|
}
|
|
267
272
|
|
|
268
|
-
void DevSupportManager::UpdateBundleStatus(bool
|
|
269
|
-
|
|
273
|
+
void DevSupportManager::UpdateBundleStatus(bool isLastDownloadSucess, int64_t updateTimestamp) noexcept {
|
|
274
|
+
#ifdef HERMES_ENABLE_DEBUGGER
|
|
275
|
+
m_BundleStatusProvider->updateBundleStatus(isLastDownloadSucess, updateTimestamp);
|
|
276
|
+
#endif
|
|
270
277
|
}
|
|
271
278
|
|
|
272
279
|
std::pair<std::string, bool> GetJavaScriptFromServer(
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
#include <memory>
|
|
15
15
|
#include <string>
|
|
16
16
|
|
|
17
|
+
#if defined(HERMES_ENABLE_DEBUGGER)
|
|
17
18
|
#include <InspectorPackagerConnection.h>
|
|
19
|
+
#endif
|
|
18
20
|
|
|
19
21
|
namespace facebook {
|
|
20
22
|
namespace react {
|
|
@@ -55,6 +57,7 @@ class DevSupportManager final : public facebook::react::IDevSupportManager {
|
|
|
55
57
|
private:
|
|
56
58
|
std::atomic_bool m_cancellation_token;
|
|
57
59
|
|
|
60
|
+
#if defined(HERMES_ENABLE_DEBUGGER)
|
|
58
61
|
std::shared_ptr<InspectorPackagerConnection> m_inspectorPackagerConnection;
|
|
59
62
|
|
|
60
63
|
struct BundleStatusProvider : public InspectorPackagerConnection::IBundleStatusProvider {
|
|
@@ -62,8 +65,8 @@ class DevSupportManager final : public facebook::react::IDevSupportManager {
|
|
|
62
65
|
return m_bundleStatus;
|
|
63
66
|
}
|
|
64
67
|
|
|
65
|
-
void updateBundleStatus(bool
|
|
66
|
-
m_bundleStatus.
|
|
68
|
+
void updateBundleStatus(bool isLastDownloadSucess, int64_t updateTimestamp) {
|
|
69
|
+
m_bundleStatus.m_isLastDownloadSucess = isLastDownloadSucess;
|
|
67
70
|
m_bundleStatus.m_updateTimestamp = updateTimestamp;
|
|
68
71
|
}
|
|
69
72
|
|
|
@@ -71,6 +74,7 @@ class DevSupportManager final : public facebook::react::IDevSupportManager {
|
|
|
71
74
|
InspectorPackagerConnection::BundleStatus m_bundleStatus;
|
|
72
75
|
};
|
|
73
76
|
std::shared_ptr<BundleStatusProvider> m_BundleStatusProvider = std::make_shared<BundleStatusProvider>();
|
|
77
|
+
#endif
|
|
74
78
|
};
|
|
75
79
|
|
|
76
80
|
} // namespace Microsoft::ReactNative
|