expo-modules-jsi 56.0.11 → 56.0.13

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/CHANGELOG.md CHANGED
@@ -10,6 +10,18 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 56.0.13 — 2026-08-28
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - [iOS] Type the host-object setter pointer explicitly so the nil-check conversion type-checks reliably. ([#46736](https://github.com/expo/expo/pull/46736) by [@tsapeta](https://github.com/tsapeta))
18
+
19
+ ## 56.0.12 — 2026-07-07
20
+
21
+ ### 🐛 Bug fixes
22
+
23
+ - [iOS] Return `NSNull` instead of trapping in the deprecated `JavaScriptValue.getAny()` when it encounters a unrepresentable value. ([#47381](https://github.com/expo/expo/pull/47381) by [@alanjhughes](https://github.com/alanjhughes))
24
+
13
25
  ## 56.0.11 — 2026-07-03
14
26
 
15
27
  ### 🐛 Bug fixes
@@ -213,10 +213,11 @@ open class JavaScriptRuntime: Equatable, @unchecked Sendable {
213
213
 
214
214
  let context = Unmanaged.passRetained(HostObjectContext(runtime: self, get, set, getPropertyNames, dealloc))
215
215
  .toOpaque()
216
+ let setterPointer: (@convention(c) (UnsafeMutableRawPointer, UnsafePointer<CChar>, UnsafeMutableRawPointer) -> Void)? = setter
216
217
  // Pass a null setter to C++ when the Swift setter is nil so that JS assignment
217
218
  // raises a `jsi::JSError` directly, without crossing the Swift boundary.
218
219
  let callbacks = expo.HostObjectCallbacks(
219
- context, getter, set == nil ? nil : setter, propertyNamesGetter, deallocate)
220
+ context, getter, set == nil ? nil : setterPointer, propertyNamesGetter, deallocate)
220
221
  let hostObject = expo.HostObject.makeObject(pointee, consume callbacks)
221
222
 
222
223
  return JavaScriptObject(self, hostObject)
@@ -201,7 +201,8 @@ public final class JavaScriptValue: JavaScriptType, Equatable, Escapable, Error
201
201
  return result
202
202
  }
203
203
  if object.isFunction() {
204
- FatalError.unimplemented()
204
+ // Don't trap, callers convert speculatively under `try?`, which can't catch a `fatalError`.
205
+ return NSNull()
205
206
  }
206
207
  var result = [String: Any]()
207
208
 
@@ -215,7 +216,8 @@ public final class JavaScriptValue: JavaScriptType, Equatable, Escapable, Error
215
216
  }
216
217
  return result
217
218
  }
218
- fatalError("Unsupported value kind: \(kind)")
219
+ // Unrepresentable kind (e.g. symbol). Don't trap, for the same reason as above.
220
+ return NSNull()
219
221
  }
220
222
 
221
223
  /// Returns the value as a boolean, or asserts if not a boolean.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-modules-jsi",
3
- "version": "56.0.11",
3
+ "version": "56.0.13",
4
4
  "description": "The JavaScript Interface for Expo Modules",
5
5
  "main": "index.js",
6
6
  "sideEffects": [],
@@ -41,7 +41,7 @@
41
41
  "./apple/scripts/test.sh"
42
42
  ]
43
43
  },
44
- "gitHead": "b2e161a54f90a778ab7e5560c0c8f021bbfcaae2",
44
+ "gitHead": "1b8eb0e13635d3ef52c1c11d305ff927d01390ae",
45
45
  "scripts": {
46
46
  "build": "apple/scripts/build-xcframework.sh",
47
47
  "swift:format": "../../scripts/swift-format.sh",