Skip to content

Worklets - 0.10.0

Choose a tag to compare

@tjzel tjzel released this 19 Jun 13:54

Key changes

Bundle Mode considered stable

Bundle Mode is now considered stable and the recommended way of using Worklets.
Previous mode (called Legacy Eval Mode) is still enabled by default.

https://docs.swmansion.com/react-native-worklets/docs/bundleMode/

  • chore(Worklets): remove experimental label from Bundle Mode by @tjzel in #9584

Robust API for module import forwarding

Previous workletizableModules API was removed and replaced with more
configurable importForwarding, along with documentation explaining how to use it.

https://docs.swmansion.com/react-native-worklets/docs/bundleMode/importForwarding/

  • feat(Worklets): module import forwarding API by @tjzel in #9638
  • docs(Worklets): importForwarding API by @tjzel in #9665

Native serialization support for ArrayBufferView

ArrayBufferView objects (like TypedArrays) are now serialized via a dedicated
native code path, reducing serialization overhead.

  • Worklets: added native serialization for ArrayBufferView by @tshmieldev in #9475

Other changes

  • worklets plugin: preserve JSX imports in bundle mode by @hannojg in #9212
  • feat(Worklets): shared memory docs guide by @tjzel in #9282
  • fix(bundlemode): getBundleModeMetroConfig consider user config's resolveRequest by @hannojg in #9327
  • fix: runtime tests in release by @tjzel in #9500
  • fix(deps): declare @babel/types as a dependency by @pkuczynski in #9511
  • refactor: Encapsulate runtime registration lock with RAII by @tomekzaw in #9519
  • chore: enable Bundle Mode in repository by default by @tjzel in #9523
  • fix: use optional chaining on Platform.OS to prevent crash in Bundle Mode by @MelloB1989 in #9525
  • Worklets: changed inaccessibleobject to error by @tshmieldev in #9532
  • docs: Sort worklets compatibility table versions numerically by @MatiPl01 in #9572
  • perf: Cache isOnJSQueueThread JNI method lookup by @tomekzaw in #9578
  • fix: Remove use-after-move in makeJWorkletRuntimeWrapper by @tomekzaw in #9580
  • refactor: Remove no-op registerNatives({}) in JWorkletRuntimeWrapper by @tomekzaw in #9582
  • refactor: Deduplicate AndroidUIScheduler global ref, avoid null-deref after invalidate by @tomekzaw in #9583
  • fix(pods): Fix invalid react-native/../react-native resolution for aliases by @kitten in #9592
  • fix(Worklets): always expecting sourceMaps in unpackers by @tjzel in #9607
  • fix(Worklets): Babel plugin not detecting production environment by @tjzel in #9609
  • fix: build.gradle.kts not falling back to default ABIs by @tjzel in #9611
  • chore(Worklets): cxx nits by @tjzel in #9612
  • fix: 30fps layout animations on iOS release builds by @bartlomiejbloniarz in #9616
  • fix: ruby scripts leaking functions to global scope by @tjzel in #9617
  • fix(Worklets): multiple passes for generated worklet files by @tjzel in #9618
  • feat(Worklets): test Babel plugin on a Windows runner by @tjzel in #9619
  • fix(Worklets): autoworkletization for nested worklets by @tjzel in #9632
  • chore(Worklets): runtime tests nits by @tjzel in #9633
  • refactor(Worklets): use shims for react-native imports by @tjzel in #9640
  • Remove CMake version requirement by @piaskowyk in #9643
  • fix: Resolve unused HERMES_V1_ENABLED CMake warning by @tomekzaw in #9645
  • fix(worklets): Keep getTransformOptions arguments in metro for bundle mode by @Warabi1915181 in #9658
  • chore(Worklets): versioned docs by @tjzel in #9664
  • fix(Worklets): RemoteFunction memory cycle by @tjzel in #9673
  • docs(worklets): Try out section get started leads to getting started by @enisdenjo in #9674
  • docs(Worklets): rename plugin options page to .mdx by @tjzel in #9678
  • chore: bundle mode for tvos by @tjzel in #9693
  • chore: pre-release nits by @tjzel in #9698

New Contributors

Full Changelog: worklets-0.9.2...worklets-0.10.0