expo-modules-core 2.4.0 → 2.4.2

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
+ ## 2.4.2 — 2025-07-02
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - [Android] Fix `Value is undefined, expected an Object` in the `JNIUtils::emitEventOnJSIObject`. ([#37778](https://github.com/expo/expo/pull/37778) by [@lukmccall](https://github.com/lukmccall))
18
+
19
+ ## 2.4.1 — 2025-07-01
20
+
21
+ ### 🐛 Bug fixes
22
+
23
+ - Added Android 16KB page size support. ([#37446](https://github.com/expo/expo/pull/37446) by [@kudo](https://github.com/kudo))
24
+
13
25
  ## 2.4.0 — 2025-06-04
14
26
 
15
27
  ### 🎉 New features
@@ -25,7 +25,7 @@ if (shouldIncludeCompose) {
25
25
  }
26
26
 
27
27
  group = 'host.exp.exponent'
28
- version = '2.4.0'
28
+ version = '2.4.2'
29
29
 
30
30
  def isExpoModulesCoreTests = {
31
31
  Gradle gradle = getGradle()
@@ -75,7 +75,7 @@ android {
75
75
  defaultConfig {
76
76
  consumerProguardFiles 'proguard-rules.pro'
77
77
  versionCode 1
78
- versionName "2.4.0"
78
+ versionName "2.4.2"
79
79
  buildConfigField "String", "EXPO_MODULES_CORE_VERSION", "\"${versionName}\""
80
80
  buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled.toString()
81
81
 
@@ -85,6 +85,7 @@ android {
85
85
  cmake {
86
86
  abiFilters(*reactNativeArchitectures())
87
87
  arguments "-DANDROID_STL=c++_shared",
88
+ "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON",
88
89
  "-DREACT_NATIVE_DIR=${expoModuleExtension.reactNativeDir}",
89
90
  "-DREACT_NATIVE_TARGET_VERSION=${expoModuleExtension.reactNativeVersion.minor}",
90
91
  "-DUSE_HERMES=${USE_HERMES}",
@@ -187,7 +187,13 @@ void JNIUtils::emitEventOnJSIObject(
187
187
  // TODO(@lukmccall): refactor when jsInvoker receives a runtime as a parameter
188
188
  jsi::Runtime &rt = jsiContext->runtimeHolder->get();
189
189
 
190
- jsi::Object jsThis = jsWeakThis->lock(rt).asObject(rt);
190
+ jsi::Value unpackedValue = jsWeakThis->lock(rt);
191
+ if (unpackedValue.isUndefined()) {
192
+ // The JS object was deallocated - we can ignore emitting an event
193
+ return;
194
+ }
195
+
196
+ jsi::Object jsThis = unpackedValue.asObject(rt);
191
197
  EventEmitter::emitEvent(rt, jsThis, name, argsProvider(rt));
192
198
  });
193
199
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-modules-core",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "The core of Expo Modules architecture",
5
5
  "main": "src/index.ts",
6
6
  "types": "build/index.d.ts",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@testing-library/react-native": "^13.1.0",
45
- "expo-module-scripts": "^4.1.7"
45
+ "expo-module-scripts": "^4.1.8"
46
46
  },
47
- "gitHead": "7638c800b57fe78f57cc7f129022f58e84a523c5"
47
+ "gitHead": "d0d8a3fb9633f94037dd6d96e673e0698ab8b6e0"
48
48
  }