Patch Changes
- [iOS] Encode Swift arrays to JS arrays about 35% faster, and Swift sets to JS sets about 25% faster. (#51496 by @tsapeta)
- [iOS] Make
JavaScriptUnownedValue@frozen, so modules that decode@JSfunction arguments know its layout and no longer ask its type metadata for it. Host functions with arguments are faster, by about 8 to 12% with eight arguments. This changes the ABI ofExpoModulesJSI. (#51499 by @tsapeta) - [iOS] Add
createFunctionandsetProperty(_:function:)overloads taking aVoidFunctionClosure, for host functions that return nothing to JavaScript. They make such calls faster because they skip creating and writing the result value. (#51498 by @tsapeta) - [iOS] Fix the
ExpoModulesJSIxcframework slice staying built against another Xcode's SDK. The slice cache now includes the Xcode build, so switching between Xcode releases that share a Swift compiler (such as Xcode 27.0 and 27.1) rebuilds it, and the rebuild uses the app build'sDEVELOPER_DIRandTOOLCHAINSinstead of the Xcode selected withxcode-selectand the default toolchain. (#51371 by @mwolson)