react-native-windows 0.72.0-preview.7 → 0.72.0-preview.8

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.
Files changed (43) hide show
  1. package/Directory.Build.props +24 -19
  2. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +2 -4
  3. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -57
  4. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +22 -17
  5. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -2
  6. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiLoader.cpp +16 -0
  7. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +41 -12
  8. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +17 -6
  9. package/Microsoft.ReactNative.Managed/packages.lock.json +6 -6
  10. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +1 -1
  11. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +1 -1
  12. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +1 -1
  13. package/PropertySheets/Generated/PackageVersion.g.props +2 -2
  14. package/PropertySheets/JSEngine.props +4 -4
  15. package/PropertySheets/Warnings.props +6 -0
  16. package/ReactCommon/ReactCommon.vcxproj +53 -1
  17. package/ReactCommon/cgmanifest.json +15 -0
  18. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +36 -0
  19. package/Shared/DevSupportManager.cpp +2 -9
  20. package/Shared/DevSupportManager.h +2 -6
  21. package/Shared/HermesRuntimeHolder.cpp +318 -81
  22. package/Shared/HermesRuntimeHolder.h +15 -19
  23. package/Shared/HermesSamplingProfiler.cpp +5 -6
  24. package/Shared/InspectorPackagerConnection.cpp +62 -108
  25. package/Shared/InspectorPackagerConnection.h +9 -21
  26. package/Shared/JSI/ScriptStore.h +18 -20
  27. package/Shared/JSI/V8RuntimeHolder.cpp +262 -0
  28. package/Shared/JSI/V8RuntimeHolder.h +37 -0
  29. package/Shared/OInstance.cpp +16 -36
  30. package/Shared/SafeLoadLibrary.cpp +41 -0
  31. package/Shared/SafeLoadLibrary.h +15 -0
  32. package/Shared/Shared.vcxitems +21 -10
  33. package/Shared/Shared.vcxitems.filters +23 -30
  34. package/package.json +2 -2
  35. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +1 -1
  36. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +0 -2105
  37. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +0 -73
  38. package/Shared/HermesShim.cpp +0 -122
  39. package/Shared/HermesShim.h +0 -41
  40. package/Shared/JSI/NapiJsiV8RuntimeHolder.cpp +0 -209
  41. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +0 -46
  42. package/Shared/V8JSIRuntimeHolder.cpp +0 -71
  43. package/Shared/V8JSIRuntimeHolder.h +0 -58
@@ -0,0 +1,37 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include "RuntimeHolder.h"
7
+ #include "ScriptStore.h"
8
+
9
+ #include <cxxreact/MessageQueueThread.h>
10
+
11
+ namespace Microsoft::ReactNative {
12
+
13
+ class V8RuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit {
14
+ public: // RuntimeHolderLazyInit implementation.
15
+ std::shared_ptr<facebook::jsi::Runtime> getRuntime() noexcept override;
16
+ facebook::react::JSIEngineOverride getRuntimeType() noexcept override;
17
+
18
+ V8RuntimeHolder(
19
+ std::shared_ptr<facebook::react::DevSettings> devSettings,
20
+ std::shared_ptr<facebook::react::MessageQueueThread> jsQueue,
21
+ std::shared_ptr<facebook::jsi::PreparedScriptStore> preparedScriptStore,
22
+ bool enableMultiThreadingSupport) noexcept;
23
+
24
+ private:
25
+ void initRuntime() noexcept;
26
+
27
+ private:
28
+ std::shared_ptr<facebook::jsi::Runtime> m_jsiRuntime;
29
+ std::once_flag m_onceFlag{};
30
+ std::thread::id m_ownThreadId{};
31
+ std::weak_ptr<facebook::react::DevSettings> m_weakDevSettings;
32
+ std::shared_ptr<facebook::react::MessageQueueThread> m_jsQueue;
33
+ std::shared_ptr<facebook::jsi::PreparedScriptStore> m_preparedScriptStore;
34
+ bool m_enableMultiThreadingSupport;
35
+ };
36
+
37
+ } // namespace Microsoft::ReactNative
@@ -52,13 +52,11 @@
52
52
  #include "HermesRuntimeHolder.h"
53
53
 
54
54
  #if defined(USE_V8)
55
- #include <JSI/NapiJsiV8RuntimeHolder.h>
56
-
57
- #include "BaseScriptStoreImpl.h"
58
- #include "V8JSIRuntimeHolder.h"
55
+ #include <JSI/V8RuntimeHolder.h>
59
56
  #endif
60
57
  #include <ReactCommon/CallInvoker.h>
61
58
  #include <ReactCommon/TurboModuleBinding.h>
59
+ #include "BaseScriptStoreImpl.h"
62
60
  #include "ChakraRuntimeHolder.h"
63
61
 
64
62
  #include <tracing/tracing.h>
@@ -318,50 +316,32 @@ InstanceImpl::InstanceImpl(
318
316
  } else {
319
317
  assert(m_devSettings->jsiEngineOverride != JSIEngineOverride::Default);
320
318
  switch (m_devSettings->jsiEngineOverride) {
321
- case JSIEngineOverride::Hermes:
322
- m_devSettings->jsiRuntimeHolder = std::make_shared<HermesRuntimeHolder>(m_devSettings, m_jsThread);
323
- break;
324
- case JSIEngineOverride::V8: {
325
- #if defined(USE_V8)
326
- std::unique_ptr<facebook::jsi::ScriptStore> scriptStore = nullptr;
327
- std::unique_ptr<facebook::jsi::PreparedScriptStore> preparedScriptStore = nullptr;
319
+ case JSIEngineOverride::Hermes: {
320
+ std::shared_ptr<facebook::jsi::PreparedScriptStore> preparedScriptStore;
328
321
 
329
- char tempPath[MAX_PATH];
330
- if (GetTempPathA(MAX_PATH, tempPath)) {
331
- preparedScriptStore = std::make_unique<facebook::react::BasePreparedScriptStoreImpl>(tempPath);
322
+ wchar_t tempPath[MAX_PATH];
323
+ if (GetTempPathW(MAX_PATH, tempPath)) {
324
+ preparedScriptStore =
325
+ std::make_shared<facebook::react::BasePreparedScriptStoreImpl>(winrt::to_string(tempPath));
332
326
  }
333
327
 
334
- m_devSettings->jsiRuntimeHolder = std::make_shared<facebook::react::V8JSIRuntimeHolder>(
335
- m_devSettings,
336
- m_jsThread,
337
- std::move(scriptStore),
338
- std::move(preparedScriptStore),
339
- false /* enableMultiThreadSupport */);
328
+ m_devSettings->jsiRuntimeHolder = std::make_shared<Microsoft::ReactNative::HermesRuntimeHolder>(
329
+ m_devSettings, m_jsThread, std::move(preparedScriptStore));
340
330
  break;
341
- #else
342
- assert(false); // V8 is not available in this build, fallthrough
343
- [[fallthrough]];
344
- #endif
345
331
  }
332
+ case JSIEngineOverride::V8:
346
333
  case JSIEngineOverride::V8NodeApi: {
347
334
  #if defined(USE_V8)
348
- std::unique_ptr<facebook::jsi::PreparedScriptStore> preparedScriptStore;
335
+ std::shared_ptr<facebook::jsi::PreparedScriptStore> preparedScriptStore;
349
336
 
350
337
  wchar_t tempPath[MAX_PATH];
351
- if (GetTempPathW(static_cast<DWORD>(std::size(tempPath)), tempPath)) {
338
+ if (GetTempPathW(MAX_PATH, tempPath)) {
352
339
  preparedScriptStore =
353
- std::make_unique<facebook::react::BasePreparedScriptStoreImpl>(winrt::to_string(tempPath));
354
- }
355
-
356
- if (!preparedScriptStore) {
357
- if (m_devSettings->errorCallback)
358
- m_devSettings->errorCallback("Could not initialize prepared script store");
359
-
360
- break;
340
+ std::make_shared<facebook::react::BasePreparedScriptStoreImpl>(winrt::to_string(tempPath));
361
341
  }
362
342
 
363
- m_devSettings->jsiRuntimeHolder = make_shared<NapiJsiV8RuntimeHolder>(
364
- m_devSettings, m_jsThread, nullptr /*scriptStore*/, std::move(preparedScriptStore));
343
+ m_devSettings->jsiRuntimeHolder = make_shared<Microsoft::ReactNative::V8RuntimeHolder>(
344
+ m_devSettings, m_jsThread, std::move(preparedScriptStore), false);
365
345
  break;
366
346
  #else
367
347
  if (m_devSettings->errorCallback)
@@ -0,0 +1,41 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #include "SafeLoadLibrary.h"
5
+
6
+ namespace Microsoft::ReactNative {
7
+
8
+ // Unsafe calls to LoadLibrary/LoadLibraryEx.
9
+ // The default behavior of LoadLibrary, or LoadLibraryEx without flags, is to try and find the dependency by iterating
10
+ // through a search order. This search order contains the current working directory. In the classic attack, a malicious
11
+ // DLL is dropped in the likely - controllable current working directory.The malicious DLL has the same name as a
12
+ // missing dependency or dependency that is not in the same directory as the executable.When the call to LoadLibrary is
13
+ // reached, the malicious DLL is loaded preferentially, and code execution occurs.
14
+ //
15
+ // The SafeLoadLibrary is the preferred ways to manually load dependencies.
16
+ // The API does not search the current working directory when resolving dependencies.
17
+ // It is "borrowed" from Office Mso code.
18
+
19
+ /**
20
+ List of new flags that control where to search for DLLs. Requires KB2533623.
21
+ */
22
+ const DWORD SafeLoadLibraryFlags = LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_DEFAULT_DIRS |
23
+ LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32 | LOAD_LIBRARY_SEARCH_USER_DIRS;
24
+
25
+ HMODULE SafeLoadLibrary(const wchar_t *wzFileName, HANDLE hFile, DWORD dwFlags) noexcept {
26
+ // When calling LoadLibrary, OR in LOAD_LIBRARY_SEARCH_DEFAULT_DIRS which enables all of the
27
+ // safe behaviors. Note that this flag is not compatible with LOAD_WITH_ALTERED_SEARCH_PATH.
28
+ HMODULE module =
29
+ LoadLibraryExW(wzFileName, hFile, (dwFlags | LOAD_LIBRARY_SEARCH_DEFAULT_DIRS) & ~LOAD_WITH_ALTERED_SEARCH_PATH);
30
+ if (module == nullptr && GetLastError() == ERROR_INVALID_PARAMETER) {
31
+ // Could have failed with actual bad parameters or an unpatched OS without KB2533623.
32
+ if (GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "AddDllDirectory") == nullptr) {
33
+ // Unpatched OS, remove all new flags.
34
+ module = LoadLibraryExW(wzFileName, hFile, dwFlags & ~SafeLoadLibraryFlags);
35
+ }
36
+ }
37
+
38
+ return module;
39
+ }
40
+
41
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,15 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #ifndef WIN32_LEAN_AND_MEAN
5
+ #define WIN32_LEAN_AND_MEAN
6
+ #endif
7
+
8
+ #include <windows.h>
9
+
10
+ namespace Microsoft::ReactNative {
11
+
12
+ // Safe LoadLibraryEx wrapper that must be used instead of LoadLibrary.
13
+ extern HMODULE SafeLoadLibrary(const wchar_t *wzFileName, HANDLE hFile = nullptr, DWORD dwFlags = 0) noexcept;
14
+
15
+ } // namespace Microsoft::ReactNative
@@ -154,14 +154,13 @@
154
154
  <ClCompile Include="$(MSBuildThisFileDirectory)Executors\WebSocketJSExecutorFactory.cpp" />
155
155
  <ClCompile Include="$(MSBuildThisFileDirectory)HermesRuntimeHolder.cpp" />
156
156
  <ClCompile Include="$(MSBuildThisFileDirectory)HermesSamplingProfiler.cpp" />
157
- <ClCompile Include="$(MSBuildThisFileDirectory)HermesShim.cpp" />
158
157
  <ClCompile Include="$(MSBuildThisFileDirectory)InspectorPackagerConnection.cpp" />
159
158
  <ClCompile Include="$(MSBuildThisFileDirectory)InstanceManager.cpp" />
160
159
  <ClCompile Include="$(MSBuildThisFileDirectory)JSBigAbiString.cpp" />
161
160
  <ClCompile Include="$(MSBuildThisFileDirectory)JSI\ChakraApi.cpp" />
162
161
  <ClCompile Include="$(MSBuildThisFileDirectory)JSI\ChakraJsiRuntime_edgemode.cpp" />
163
162
  <ClCompile Include="$(MSBuildThisFileDirectory)JSI\ChakraRuntime.cpp" />
164
- <ClCompile Include="$(MSBuildThisFileDirectory)JSI\NapiJsiV8RuntimeHolder.cpp">
163
+ <ClCompile Include="$(MSBuildThisFileDirectory)JSI\V8RuntimeHolder.cpp">
165
164
  <ExcludedFromBuild Condition="'$(UseV8)' != 'true'">true</ExcludedFromBuild>
166
165
  </ClCompile>
167
166
  <ClCompile Include="$(MSBuildThisFileDirectory)LayoutAnimation.cpp" />
@@ -187,6 +186,7 @@
187
186
  <ClCompile Include="$(MSBuildThisFileDirectory)OInstance.cpp" />
188
187
  <ClCompile Include="$(MSBuildThisFileDirectory)PackagerConnection.cpp" />
189
188
  <ClCompile Include="$(MSBuildThisFileDirectory)RuntimeOptions.cpp" />
189
+ <ClCompile Include="$(MSBuildThisFileDirectory)SafeLoadLibrary.cpp" />
190
190
  <ClCompile Include="$(MSBuildThisFileDirectory)Threading\BatchingQueueThread.cpp" />
191
191
  <ClCompile Include="$(MSBuildThisFileDirectory)Threading\MessageDispatchQueue.cpp" />
192
192
  <ClCompile Include="$(MSBuildThisFileDirectory)Threading\MessageQueueThreadFactory.cpp" />
@@ -194,9 +194,6 @@
194
194
  <ClCompile Include="$(MSBuildThisFileDirectory)TurboModuleManager.cpp" />
195
195
  <ClCompile Include="$(MSBuildThisFileDirectory)Utils.cpp" />
196
196
  <ClCompile Include="$(MSBuildThisFileDirectory)Utils\WinRTConversions.cpp" />
197
- <ClCompile Include="$(MSBuildThisFileDirectory)V8JSIRuntimeHolder.cpp">
198
- <ExcludedFromBuild Condition="'$(UseV8)' != 'true'">true</ExcludedFromBuild>
199
- </ClCompile>
200
197
  </ItemGroup>
201
198
  <ItemGroup>
202
199
  <ClInclude Include="$(MSBuildThisFileDirectory)..\codegen\react\components\rnwcore\EventEmitters.h" />
@@ -223,7 +220,7 @@
223
220
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\Composition\TextInput\WindowsTextInputProps.h" />
224
221
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\Composition\TextInput\WindowsTextInputShadowNode.h" />
225
222
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\Composition\TextInput\WindowsTextInputState.h" />
226
- <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\Composition\UiaHelpers.h" />
223
+ <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\Composition\UiaHelpers.h" />
227
224
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\AbiViewProps.h" />
228
225
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\AbiViewComponentDescriptor.h" />
229
226
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\DWriteHelpers.h" />
@@ -232,6 +229,7 @@
232
229
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\platform\react\renderer\textlayoutmanager\TextLayoutManager.h" />
233
230
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\ReactNativeConfigProperties.h" />
234
231
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\WindowsImageManager.h" />
232
+ <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\JsiApi.h" />
235
233
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\SchedulerSettings.h" />
236
234
  <ClCompile Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\DynamicReader.cpp">
237
235
  <DependentUpon>$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\IJSValueReader.idl</DependentUpon>
@@ -287,13 +285,12 @@
287
285
  <ClInclude Include="$(MSBuildThisFileDirectory)AbiSafe.h" />
288
286
  <ClInclude Include="$(MSBuildThisFileDirectory)CppRuntimeOptions.h" />
289
287
  <ClInclude Include="$(MSBuildThisFileDirectory)HermesSamplingProfiler.h" />
290
- <ClInclude Include="$(MSBuildThisFileDirectory)HermesShim.h" />
291
288
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\ByteArrayBuffer.h" />
292
289
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\ChakraApi.h" />
293
290
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\ChakraRuntime.h" />
294
291
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\ChakraRuntimeArgs.h" />
295
292
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\ChakraRuntimeFactory.h" />
296
- <ClInclude Include="$(MSBuildThisFileDirectory)JSI\NapiJsiV8RuntimeHolder.h" />
293
+ <ClInclude Include="$(MSBuildThisFileDirectory)JSI\V8RuntimeHolder.h" />
297
294
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\RuntimeHolder.h" />
298
295
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\ScriptStore.h" />
299
296
  <ClInclude Include="$(MSBuildThisFileDirectory)Modules\BlobModule.h" />
@@ -346,6 +343,7 @@
346
343
  <ClInclude Include="$(MSBuildThisFileDirectory)NativeModuleProvider.h" />
347
344
  <ClInclude Include="$(MSBuildThisFileDirectory)OInstance.h" />
348
345
  <ClInclude Include="$(MSBuildThisFileDirectory)Pch\pch.h" />
346
+ <ClInclude Include="$(MSBuildThisFileDirectory)SafeLoadLibrary.h" />
349
347
  <ClInclude Include="$(MSBuildThisFileDirectory)ShadowNode.h" />
350
348
  <ClInclude Include="$(MSBuildThisFileDirectory)ShadowNodeRegistry.h" />
351
349
  <ClInclude Include="$(MSBuildThisFileDirectory)targetver.h" />
@@ -360,7 +358,6 @@
360
358
  <ClInclude Include="$(MSBuildThisFileDirectory)Utils.h" />
361
359
  <ClInclude Include="$(MSBuildThisFileDirectory)Utils\CppWinrtLessExceptions.h" />
362
360
  <ClInclude Include="$(MSBuildThisFileDirectory)Utils\WinRTConversions.h" />
363
- <ClInclude Include="$(MSBuildThisFileDirectory)V8JSIRuntimeHolder.h" />
364
361
  <ClInclude Include="$(MSBuildThisFileDirectory)WebSocketJSExecutorFactory.h" />
365
362
  <ClCompile Include="$(ReactNativeWindowsDir)Microsoft.ReactNative\Modules\DevSettingsModule.cpp" />
366
363
  <ClCompile Include="$(ReactNativeWindowsDir)Microsoft.ReactNative\Modules\ReactRootViewTagGenerator.cpp" />
@@ -411,7 +408,7 @@
411
408
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\ParagraphEventEmitter.cpp" />
412
409
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\ParagraphProps.cpp" />
413
410
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\ParagraphShadowNode.cpp" DisableSpecificWarnings="4018;4305;%(DisableSpecificWarnings)" />
414
- <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\ParagraphLayoutManager.cpp"/>
411
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\ParagraphLayoutManager.cpp" />
415
412
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\RawTextProps.cpp" />
416
413
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\TextShadowNode.cpp" />
417
414
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\text\RawTextShadowNode.cpp" />
@@ -513,4 +510,18 @@
513
510
  <Midl Condition="'$(UseFabric)' == 'true'" Include="$(ReactNativeWindowsDir)Microsoft.ReactNative\IReactViewComponentBuilder.idl" />
514
511
  <Midl Condition="'$(UseFabric)' == 'true'" Include="$(ReactNativeWindowsDir)Microsoft.ReactNative\ViewProps.idl" />
515
512
  </ItemGroup>
513
+ <ItemGroup>
514
+ <ClInclude Include="$(NodeApiJsiDir)src\ApiLoaders\HermesApi.h" />
515
+ <ClInclude Include="$(NodeApiJsiDir)src\ApiLoaders\HermesApi.inc" />
516
+ <ClCompile Include="$(NodeApiJsiDir)src\ApiLoaders\HermesApi.cpp">
517
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
518
+ </ClCompile>
519
+ </ItemGroup>
520
+ <ItemGroup Condition="'$(UseV8)' == 'true'">
521
+ <ClInclude Include="$(NodeApiJsiDir)src\ApiLoaders\V8Api.h" />
522
+ <ClInclude Include="$(NodeApiJsiDir)src\ApiLoaders\V8Api.inc" />
523
+ <ClCompile Include="$(NodeApiJsiDir)src\ApiLoaders\V8Api.cpp">
524
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
525
+ </ClCompile>
526
+ </ItemGroup>
516
527
  </Project>
@@ -28,9 +28,6 @@
28
28
  <ClCompile Include="$(MSBuildThisFileDirectory)CxxMessageQueue.cpp">
29
29
  <Filter>Source Files</Filter>
30
30
  </ClCompile>
31
- <ClCompile Include="$(MSBuildThisFileDirectory)HermesRuntimeHolder.cpp">
32
- <Filter>Source Files</Filter>
33
- </ClCompile>
34
31
  <ClCompile Include="$(MSBuildThisFileDirectory)JSBigAbiString.cpp">
35
32
  <Filter>Source Files</Filter>
36
33
  </ClCompile>
@@ -43,9 +40,6 @@
43
40
  <ClCompile Include="$(MSBuildThisFileDirectory)Utils.cpp">
44
41
  <Filter>Source Files</Filter>
45
42
  </ClCompile>
46
- <ClCompile Include="$(MSBuildThisFileDirectory)V8JSIRuntimeHolder.cpp">
47
- <Filter>Source Files</Filter>
48
- </ClCompile>
49
43
  <ClCompile Include="$(MSBuildThisFileDirectory)InstanceManager.cpp">
50
44
  <Filter>Source Files</Filter>
51
45
  </ClCompile>
@@ -100,15 +94,6 @@
100
94
  <ClCompile Include="$(MSBuildThisFileDirectory)InspectorPackagerConnection.cpp">
101
95
  <Filter>Source Files</Filter>
102
96
  </ClCompile>
103
- <ClCompile Include="$(MSBuildThisFileDirectory)JSI\NapiJsiV8RuntimeHolder.cpp">
104
- <Filter>Source Files\JSI</Filter>
105
- </ClCompile>
106
- <ClCompile Include="$(MSBuildThisFileDirectory)HermesSamplingProfiler.cpp">
107
- <Filter>Source Files</Filter>
108
- </ClCompile>
109
- <ClCompile Include="$(MSBuildThisFileDirectory)HermesShim.cpp">
110
- <Filter>Source Files</Filter>
111
- </ClCompile>
112
97
  <ClCompile Include="$(MSBuildThisFileDirectory)Modules\HttpModule.cpp">
113
98
  <Filter>Source Files\Modules</Filter>
114
99
  </ClCompile>
@@ -269,6 +254,15 @@
269
254
  <ClCompile Include="$(ReactNativeWindowsDir)Microsoft.ReactNative\RedBoxErrorFrameInfo.cpp" />
270
255
  <ClCompile Include="$(ReactNativeWindowsDir)Microsoft.ReactNative\RedBoxErrorInfo.cpp" />
271
256
  <ClCompile Include="$(ReactNativeWindowsDir)Microsoft.ReactNative\TurboModulesProvider.cpp" />
257
+ <ClCompile Include="$(MSBuildThisFileDirectory)HermesRuntimeHolder.cpp">
258
+ <Filter>Hermes</Filter>
259
+ </ClCompile>
260
+ <ClCompile Include="$(MSBuildThisFileDirectory)HermesSamplingProfiler.cpp">
261
+ <Filter>Hermes</Filter>
262
+ </ClCompile>
263
+ <ClCompile Include="$(NodeApiJsiDir)src\ApiLoaders\HermesApi.cpp" />
264
+ <ClCompile Include="$(MSBuildThisFileDirectory)JSI\V8RuntimeHolder.cpp" />
265
+ <ClCompile Include="$(MSBuildThisFileDirectory)SafeLoadLibrary.cpp" />
272
266
  </ItemGroup>
273
267
  <ItemGroup>
274
268
  <Filter Include="Source Files">
@@ -394,6 +388,9 @@
394
388
  <Filter Include="Source Files\Fabric\platform\react\renderer\textlayoutmanager">
395
389
  <UniqueIdentifier>{d63d0a43-1f13-4674-aaa5-de02447a46b9}</UniqueIdentifier>
396
390
  </Filter>
391
+ <Filter Include="Hermes">
392
+ <UniqueIdentifier>{b32590e6-ae3d-4388-ab98-767345ce38c9}</UniqueIdentifier>
393
+ </Filter>
397
394
  </ItemGroup>
398
395
  <ItemGroup>
399
396
  <ClInclude Include="$(MSBuildThisFileDirectory)Modules\ExceptionsManagerModule.h">
@@ -444,9 +441,6 @@
444
441
  <ClInclude Include="$(MSBuildThisFileDirectory)DevSettings.h">
445
442
  <Filter>Header Files</Filter>
446
443
  </ClInclude>
447
- <ClInclude Include="$(MSBuildThisFileDirectory)HermesRuntimeHolder.h">
448
- <Filter>Header Files</Filter>
449
- </ClInclude>
450
444
  <ClInclude Include="$(MSBuildThisFileDirectory)IDevSupportManager.h">
451
445
  <Filter>Header Files</Filter>
452
446
  </ClInclude>
@@ -498,9 +492,6 @@
498
492
  <ClInclude Include="$(MSBuildThisFileDirectory)Utils.h">
499
493
  <Filter>Header Files</Filter>
500
494
  </ClInclude>
501
- <ClInclude Include="$(MSBuildThisFileDirectory)V8JSIRuntimeHolder.h">
502
- <Filter>Header Files</Filter>
503
- </ClInclude>
504
495
  <ClInclude Include="$(MSBuildThisFileDirectory)WebSocketJSExecutorFactory.h">
505
496
  <Filter>Header Files</Filter>
506
497
  </ClInclude>
@@ -553,15 +544,6 @@
553
544
  <ClInclude Include="$(MSBuildThisFileDirectory)tracing\tracing.h">
554
545
  <Filter>Header Files\tracing</Filter>
555
546
  </ClInclude>
556
- <ClInclude Include="$(MSBuildThisFileDirectory)JSI\NapiJsiV8RuntimeHolder.h">
557
- <Filter>Header Files\JSI</Filter>
558
- </ClInclude>
559
- <ClInclude Include="$(MSBuildThisFileDirectory)HermesSamplingProfiler.h">
560
- <Filter>Header Files</Filter>
561
- </ClInclude>
562
- <ClInclude Include="$(MSBuildThisFileDirectory)HermesShim.h">
563
- <Filter>Header Files</Filter>
564
- </ClInclude>
565
547
  <ClInclude Include="$(MSBuildThisFileDirectory)Modules\HttpModule.h">
566
548
  <Filter>Header Files\Modules</Filter>
567
549
  </ClInclude>
@@ -722,6 +704,17 @@
722
704
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\AbiViewProps.h" />
723
705
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\AbiViewComponentDescriptor.h" />
724
706
  <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\Fabric\Composition\UiaHelpers.h" />
707
+ <ClInclude Include="$(MSBuildThisFileDirectory)HermesRuntimeHolder.h">
708
+ <Filter>Hermes</Filter>
709
+ </ClInclude>
710
+ <ClInclude Include="$(MSBuildThisFileDirectory)HermesSamplingProfiler.h">
711
+ <Filter>Hermes</Filter>
712
+ </ClInclude>
713
+ <ClInclude Include="$(NodeApiJsiDir)src\ApiLoaders\HermesApi.h" />
714
+ <ClInclude Include="$(NodeApiJsiDir)src\ApiLoaders\HermesApi.inc" />
715
+ <ClInclude Include="$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\JsiApi.h" />
716
+ <ClInclude Include="$(MSBuildThisFileDirectory)JSI\V8RuntimeHolder.h" />
717
+ <ClInclude Include="$(MSBuildThisFileDirectory)SafeLoadLibrary.h" />
725
718
  </ItemGroup>
726
719
  <ItemGroup>
727
720
  <None Include="$(MSBuildThisFileDirectory)tracing\rnw.wprp">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.72.0-preview.7",
3
+ "version": "0.72.0-preview.8",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,7 +26,7 @@
26
26
  "@react-native-community/cli": "11.2.3",
27
27
  "@react-native-community/cli-platform-android": "11.2.3",
28
28
  "@react-native-community/cli-platform-ios": "11.2.3",
29
- "@react-native-windows/cli": "0.72.0-preview.5",
29
+ "@react-native-windows/cli": "0.72.0-preview.6",
30
30
  "@react-native/assets": "1.0.0",
31
31
  "@react-native/assets-registry": "^0.72.0",
32
32
  "@react-native/codegen": "^0.72.3",
@@ -12,7 +12,7 @@
12
12
 
13
13
  <!--
14
14
  Compiles Hermes-related code and sets it to the default JS engine.
15
- Requires the "ReactNative.Hermes.Windows" NuGet package.
15
+ Requires the "Microsoft.JavaScript.Hermes" NuGet package.
16
16
 
17
17
  See https://microsoft.github.io/react-native-windows/docs/0.64/hermes
18
18
  -->