5 of 6 standards met
Summary: MSVC doesn't support constexpr aggregate initialization of NEON vector types (uint8x8_t, uint16x8_t, uint32x4_t). Replace constexpr vector initializers with vld1/vld1q loads from constexpr scalar arrays. The variables remain static const, so the load executes only once per template instantiation. Differential Revision: D94798612
Summary Cherry-picks 16 commits from static_h that fix building hermesc on Windows with MSVC: Add test targets for all hermesvm library variants Fix ambiguous detail namespace in InterpreterTest.cpp Remove unused stubs that return unique_ptr Move DebugInfo::populateSourceMap to DebugInfoNonLean.cpp for lean build Build hcdp stub when debugger is disabled Fix stack checking Fix MSVC /EHc- warnings Fix MSVC C4715 warnings about missing return statements Fix Boost.Context compile definitions not propagating to object library Fix MASM assembly errors in Boost.Context for MSVC builds Suppress MSVC warning 4576 Replace GCC-specific attributes with portable macros for MSVC compatibility Fix bug in private name cache in StaticHUnit Silence warning for uint32_t to pointer cast Use downcast for a cleaner vm::Locals Fix hermesc and shermes executable paths for cross-compilation to Windows ## Test plan CI will run the build-hermesc-windows workflow Verify hermesc builds successfully on Windows x64
Repository: facebook/hermes. Description: A JavaScript engine optimized for running React Native. Stars: 10807, Forks: 737. Primary language: JavaScript. Languages: JavaScript (54.4%), C++ (35.1%), C (4.5%), Rust (2.5%), TypeScript (0.9%). License: MIT. Latest release: v0.13.0 (1y ago). Open PRs: 59, open issues: 122. Last activity: 4h ago. Community health: 87%. Top contributors: avp, neildhar, fbmal7, lavenzg, tmikov, kodafb, Huxpro, mhorowitz, jpporto, tsaichien and others.
Last 12 weeks · 256 commits
We just upgraded from react-native 0.84.0 to 0.84.1 and noticed a huge increase in size on IOS due to hermesvm framework from to Did something major happend to justify this huge increase in binary size? This is an issue for use since we are trying to use it in an appclip on ios which has a hard limit of full app to 15MB.
Summary This is an initial implementation of Node-API for Hermes. The code is taken from the hermes-windows repo. Node-API is an ABI-safe that is originally implemented for Node.js addons, and then adopted by all major JS runtimes. This is a draft PR. Before removing the draft status I would like to ask a few questons: What must be the library that exposes the Node-API? In hermes-windows we expose it for the hermes.dll. It is the libhermes for Windows. In this repo libhermes is not a shared library. Please advise on the source file names and their locations. What must be file headers? Test Plan This PR contains the full set of Node-API unit tests adopted from the Node.js repo. Current status All Node-API unit tests are passing. I still want to do a few things before getting out of the DRAFT status: [ ] Create a PR for changes [ ] Clean up the code [ ] Update CMake file to match current style (compile .o files instead of .lib) [ ] Change tests to work with different JSI implementations Acknowledgment This PR contains contributions from @shirakaba and @kraenhansen See: https://github.com/vmoroz/hermes-windows/pull/1 https://github.com/vmoroz/hermes-windows/pull/2 https://github.com/vmoroz/hermes-windows/pull/3