react-native-worklets 0.12.0-nightly-20260809-d10808bc5 → 0.12.0

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.
Files changed (30) hide show
  1. package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.cpp +1 -0
  2. package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +32 -0
  3. package/Common/cpp/worklets/RunLoop/EventLoop.cpp +16 -7
  4. package/Common/cpp/worklets/RunLoop/EventLoop.h +4 -2
  5. package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +23 -0
  6. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +15 -11
  7. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +32 -35
  8. package/android/src/networking/com/swmansion/worklets/WorkletsModule.kt +24 -6
  9. package/android/src/no-networking/com/swmansion/worklets/WorkletsModule.kt +24 -6
  10. package/lib/module/debug/jsVersion.js +1 -1
  11. package/lib/module/debug/jsVersion.js.map +1 -1
  12. package/lib/module/mock.js +58 -17
  13. package/lib/module/mock.js.map +1 -1
  14. package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js +1 -2
  15. package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js.map +1 -1
  16. package/lib/module/runLoop/workletRuntime/taskQueue.js +0 -1
  17. package/lib/module/runLoop/workletRuntime/taskQueue.js.map +1 -1
  18. package/lib/module/runtimes.native.js +0 -6
  19. package/lib/module/runtimes.native.js.map +1 -1
  20. package/lib/typescript/debug/jsVersion.d.ts +1 -1
  21. package/lib/typescript/debug/jsVersion.d.ts.map +1 -1
  22. package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts.map +1 -1
  23. package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts.map +1 -1
  24. package/lib/typescript/runtimes.native.d.ts.map +1 -1
  25. package/package.json +3 -2
  26. package/src/debug/jsVersion.ts +1 -1
  27. package/src/mock.ts +85 -23
  28. package/src/runLoop/uiRuntime/requestAnimationFrame.ts +1 -2
  29. package/src/runLoop/workletRuntime/taskQueue.ts +0 -1
  30. package/src/runtimes.native.ts +0 -6
@@ -49,6 +49,7 @@ void AnimationFrameBatchinator::flush() {
49
49
  for (const auto &callback : callbacks) {
50
50
  uiWorkletRuntime->runSync(*callback, timestampMs);
51
51
  }
52
+ jsi_utils::triggerWeakRefCleanup(uiWorkletRuntime->getJSIRuntime());
52
53
  });
53
54
  });
54
55
  }
@@ -9,11 +9,40 @@
9
9
  #include <thread>
10
10
  #include <utility>
11
11
 
12
+ #if __APPLE__
13
+ extern "C" {
14
+ void *objc_autoreleasePoolPush(void);
15
+ void objc_autoreleasePoolPop(void *pool);
16
+ }
17
+ #endif // __APPLE__
18
+
12
19
  namespace worklets {
13
20
 
14
21
  using namespace facebook;
15
22
 
23
+ #if __APPLE__
24
+ namespace {
25
+
26
+ class ScopedAutoreleasePool {
27
+ public:
28
+ ScopedAutoreleasePool() : pool_(objc_autoreleasePoolPush()) {}
29
+ ~ScopedAutoreleasePool() {
30
+ objc_autoreleasePoolPop(pool_);
31
+ }
32
+ ScopedAutoreleasePool(const ScopedAutoreleasePool &) = delete;
33
+ ScopedAutoreleasePool &operator=(const ScopedAutoreleasePool &) = delete;
34
+
35
+ private:
36
+ void *const pool_;
37
+ };
38
+
39
+ } // namespace
40
+ #endif // __APPLE__
41
+
16
42
  void AsyncQueueImpl::runLoop(const std::shared_ptr<AsyncQueueState> &state) {
43
+ #if __APPLE__
44
+ const ScopedAutoreleasePool threadAutoreleasePool;
45
+ #endif // __APPLE__
17
46
  while (state->running) {
18
47
  std::unique_lock<std::mutex> lock(state->mutex);
19
48
  state->cv.wait(lock, [state] { return !state->queue.empty() || !state->running; });
@@ -26,6 +55,9 @@ void AsyncQueueImpl::runLoop(const std::shared_ptr<AsyncQueueState> &state) {
26
55
  auto job = std::move(state->queue.front());
27
56
  state->queue.pop();
28
57
  lock.unlock();
58
+ #if __APPLE__
59
+ const ScopedAutoreleasePool autoreleasePool;
60
+ #endif // __APPLE__
29
61
  job();
30
62
  }
31
63
  }
@@ -1,4 +1,5 @@
1
1
  #include <worklets/RunLoop/EventLoop.h>
2
+ #include <worklets/Tools/WorkletsJSIUtils.h>
2
3
 
3
4
  #include <memory>
4
5
  #include <string>
@@ -11,8 +12,13 @@ namespace worklets {
11
12
  EventLoop::EventLoop(
12
13
  const std::string &name,
13
14
  const std::shared_ptr<jsi::Runtime> &runtime,
14
- const std::shared_ptr<AsyncQueue> &queue)
15
- : runtime_(runtime), queue_(queue), timeoutsQueueState_(std::make_shared<TimeoutsQueueState>()), name_(name) {}
15
+ const std::shared_ptr<AsyncQueue> &queue,
16
+ const std::shared_ptr<std::recursive_mutex> &runtimeMutex)
17
+ : runtime_(runtime),
18
+ queue_(queue),
19
+ runtimeMutex_(runtimeMutex),
20
+ timeoutsQueueState_(std::make_shared<TimeoutsQueueState>()),
21
+ name_(name) {}
16
22
 
17
23
  EventLoop::~EventLoop() {
18
24
  {
@@ -76,11 +82,14 @@ void EventLoop::run() {
76
82
  }
77
83
 
78
84
  void EventLoop::pushTask(std::function<void(jsi::Runtime &rt)> &&job) {
79
- queue_->push([weakRuntime = std::weak_ptr<jsi::Runtime>{runtime_}, job = std::move(job)] {
80
- if (auto runtime = weakRuntime.lock()) {
81
- job(*runtime);
82
- }
83
- });
85
+ queue_->push(
86
+ [weakRuntime = std::weak_ptr<jsi::Runtime>{runtime_}, runtimeMutex = runtimeMutex_, job = std::move(job)] {
87
+ if (auto runtime = weakRuntime.lock()) {
88
+ std::unique_lock lock(*runtimeMutex);
89
+ job(*runtime);
90
+ jsi_utils::drainMicrotasks(*runtime);
91
+ }
92
+ });
84
93
  }
85
94
 
86
95
  void EventLoop::pushTimeout(std::function<void(jsi::Runtime &rt)> &&job, int64_t delay) {
@@ -6,7 +6,7 @@
6
6
  #include <atomic>
7
7
  #include <condition_variable>
8
8
  #include <memory>
9
- #include <queue>
9
+ #include <mutex>
10
10
  #include <string>
11
11
  #include <vector>
12
12
 
@@ -34,7 +34,8 @@ class EventLoop : public std::enable_shared_from_this<EventLoop> {
34
34
  EventLoop(
35
35
  const std::string &name,
36
36
  const std::shared_ptr<jsi::Runtime> &runtime,
37
- const std::shared_ptr<AsyncQueue> &queue);
37
+ const std::shared_ptr<AsyncQueue> &queue,
38
+ const std::shared_ptr<std::recursive_mutex> &runtimeMutex);
38
39
  ~EventLoop();
39
40
  void run();
40
41
  void pushTask(std::function<void(jsi::Runtime &rt)> &&job);
@@ -43,6 +44,7 @@ class EventLoop : public std::enable_shared_from_this<EventLoop> {
43
44
  private:
44
45
  const std::shared_ptr<jsi::Runtime> runtime_;
45
46
  const std::shared_ptr<AsyncQueue> queue_;
47
+ const std::shared_ptr<std::recursive_mutex> runtimeMutex_;
46
48
  const std::shared_ptr<TimeoutsQueueState> timeoutsQueueState_;
47
49
  const std::string name_;
48
50
 
@@ -11,6 +11,29 @@ using namespace facebook;
11
11
 
12
12
  namespace worklets::jsi_utils {
13
13
 
14
+ /**
15
+ * Drains Hermes microtasks - we don't use these, but Hermes WeakRefs are
16
+ * cleaned during Hermes microtask checkpoint.
17
+ */
18
+ inline void triggerWeakRefCleanup(jsi::Runtime &rt) {
19
+ rt.drainMicrotasks();
20
+ }
21
+
22
+ /**
23
+ * Drains both Worklets and Hermes microtasks.
24
+ */
25
+ inline void drainMicrotasks(jsi::Runtime &rt) {
26
+ auto callMicrotasks = rt.global().getProperty(rt, "__callMicrotasks");
27
+ if (callMicrotasks.isObject()) {
28
+ auto callMicrotasksObject = callMicrotasks.getObject(rt);
29
+ if (callMicrotasksObject.isFunction(rt)) {
30
+ callMicrotasksObject.getFunction(rt).call(rt);
31
+ }
32
+ }
33
+
34
+ triggerWeakRefCleanup(rt);
35
+ }
36
+
14
37
  // `get` functions take a pointer to `jsi::Value` and
15
38
  // call an appropriate method to cast to the native type
16
39
  template <typename T>
@@ -45,10 +45,10 @@ class LockableRuntime : public jsi::WithRuntimeDecorator<AroundLock> {
45
45
  runtime_(std::move(runtime)) {}
46
46
  };
47
47
 
48
- static std::shared_ptr<jsi::Runtime> makeRuntime(
49
- const std::shared_ptr<std::recursive_mutex> &runtimeMutex,
50
- bool enableLocking) {
51
- auto hermesRuntime = facebook::hermes::makeHermesRuntime();
48
+ static std::shared_ptr<jsi::Runtime>
49
+ makeRuntime(const std::shared_ptr<std::recursive_mutex> &runtimeMutex, bool enableLocking, bool enableMicrotaskQueue) {
50
+ auto config = ::hermes::vm::RuntimeConfig::Builder().withMicrotaskQueue(enableMicrotaskQueue).build();
51
+ auto hermesRuntime = facebook::hermes::makeHermesRuntime(config);
52
52
  std::shared_ptr<jsi::Runtime> jsiRuntime = std::make_shared<WorkletHermesRuntime>(std::move(hermesRuntime));
53
53
  if (!enableLocking) {
54
54
  return jsiRuntime;
@@ -66,7 +66,8 @@ WorkletRuntime::WorkletRuntime(
66
66
  : runtimeId_(runtimeId),
67
67
  enableLocking_(enableLocking),
68
68
  runtimeMutex_(std::make_shared<std::recursive_mutex>()),
69
- runtime_(makeRuntime(runtimeMutex_, enableLocking_)),
69
+ microtaskQueueEnabled_(enableEventLoop || runtimeKind == RuntimeData::RuntimeKind::UI),
70
+ runtime_(makeRuntime(runtimeMutex_, enableLocking_, microtaskQueueEnabled_)),
70
71
  runtimeKind_(runtimeKind),
71
72
  name_(name),
72
73
  queue_(queue) {
@@ -77,7 +78,7 @@ WorkletRuntime::WorkletRuntime(
77
78
  jsi::Runtime &rt = *runtime_;
78
79
  WorkletRuntimeCollector::install(rt);
79
80
  if (enableEventLoop) {
80
- eventLoop_ = std::make_shared<EventLoop>(name_, runtime_, queue_);
81
+ eventLoop_ = std::make_shared<EventLoop>(name_, runtime_, queue_, runtimeMutex_);
81
82
  eventLoop_->run();
82
83
  }
83
84
  }
@@ -147,13 +148,14 @@ void WorkletRuntime::legacyModeInit(const std::shared_ptr<UnpackerLoader> &unpac
147
148
 
148
149
  void WorkletRuntime::schedule(jsi::Function &&function) const {
149
150
  scheduleImpl([function = std::make_shared<jsi::Function>(std::move(function))](const WorkletRuntime &workletRuntime) {
150
- workletRuntime.runSyncImpl(*function);
151
+ workletRuntime.runSyncImpl<MicrotaskCheckpoint::Run>(*function);
151
152
  });
152
153
  }
153
154
 
154
155
  void WorkletRuntime::schedule(std::shared_ptr<SerializableWorklet> worklet) const {
155
- scheduleImpl(
156
- [worklet = std::move(worklet)](const WorkletRuntime &workletRuntime) { workletRuntime.runSyncImpl(worklet); });
156
+ scheduleImpl([worklet = std::move(worklet)](const WorkletRuntime &workletRuntime) {
157
+ workletRuntime.runSyncImpl<MicrotaskCheckpoint::Run>(worklet);
158
+ });
157
159
  }
158
160
 
159
161
  void WorkletRuntime::schedule(std::vector<std::shared_ptr<SerializableWorklet>> worklets) const {
@@ -173,7 +175,7 @@ void WorkletRuntime::scheduleWithStack(
173
175
  std::optional<std::string> scheduleStack) const {
174
176
  scheduleImpl([worklet = std::move(worklet),
175
177
  scheduleStack = std::move(scheduleStack)](const WorkletRuntime &workletRuntime) {
176
- workletRuntime.runSyncImpl<MicrotaskCheckpoint::Skip, jsi::Value, ScheduleStack::Requested>(worklet, scheduleStack);
178
+ workletRuntime.runSyncImpl<MicrotaskCheckpoint::Run, jsi::Value, ScheduleStack::Requested>(worklet, scheduleStack);
177
179
  });
178
180
  }
179
181
 
@@ -195,7 +197,9 @@ void WorkletRuntime::scheduleWithStack(
195
197
  #endif // NDEBUG
196
198
 
197
199
  void WorkletRuntime::schedule(std::function<void(jsi::Runtime &)> job) const {
198
- scheduleImpl([job = std::move(job)](const WorkletRuntime &workletRuntime) { workletRuntime.runSyncImpl(job); });
200
+ scheduleImpl([job = std::move(job)](const WorkletRuntime &workletRuntime) {
201
+ workletRuntime.runSyncImpl<MicrotaskCheckpoint::Run>(job);
202
+ });
199
203
  }
200
204
 
201
205
  void WorkletRuntime::scheduleImpl(ScheduledJob job) const {
@@ -10,6 +10,7 @@
10
10
  #include <worklets/Tools/JSLogger.h>
11
11
  #include <worklets/Tools/JSScheduler.h>
12
12
  #include <worklets/Tools/ScriptBuffer.h>
13
+ #include <worklets/Tools/WorkletsJSIUtils.h>
13
14
  #include <worklets/WorkletRuntime/RuntimeBindings.h>
14
15
  #include <worklets/WorkletRuntime/RuntimeData.h>
15
16
 
@@ -49,7 +50,7 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
49
50
  /**
50
51
  * Schedules a std::function to run asynchronously.
51
52
  *
52
- * Does not run a microtask checkpoint.
53
+ * Runs a single microtask checkpoint on completion.
53
54
  */
54
55
  void schedule(std::function<void(jsi::Runtime &)> job) const;
55
56
 
@@ -59,14 +60,14 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
59
60
  * The jsi::Function has to originate from this runtime, otherwise it will
60
61
  crash.
61
62
  *
62
- * Does not run a microtask checkpoint.
63
+ * Runs a single microtask checkpoint on completion.
63
64
  */
64
65
  void schedule(jsi::Function &&function) const;
65
66
 
66
67
  /**
67
68
  * Schedules a serialized worklet to run asynchronously.
68
69
  *
69
- * Does not run a microtask checkpoint.
70
+ * Runs a single microtask checkpoint on completion.
70
71
  */
71
72
  void schedule(std::shared_ptr<SerializableWorklet> worklet) const;
72
73
 
@@ -81,7 +82,7 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
81
82
  * Schedules a serialized worklet to run asynchronously on the worklet runtime,
82
83
  * remembering the call site that scheduled it for error reporting.
83
84
  *
84
- * Does not run a microtask checkpoint.
85
+ * Runs a single microtask checkpoint on completion.
85
86
  */
86
87
  void scheduleWithStack(std::shared_ptr<SerializableWorklet> worklet, std::optional<std::string> scheduleStack) const;
87
88
 
@@ -203,8 +204,6 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
203
204
  * call site that scheduled it for error reporting.
204
205
  *
205
206
  * TResult must be either jsi::Value or std::shared_ptr<Serializable>.
206
- *
207
- * The runtime lock is held until the microtask checkpoint completes.
208
207
  */
209
208
  template <SyncCallResult TResult, RuntimeCallable TCallable, typename... TArgs>
210
209
  auto runSyncWithStackAndDrainMicrotasks(
@@ -307,13 +306,13 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
307
306
  SyncCallResult TResult = jsi::Value,
308
307
  ScheduleStack TScheduleStack = ScheduleStack::NotRequested,
309
308
  typename TCallable,
310
- typename... TTArgs>
309
+ typename... TArgs>
311
310
  requires RuntimeJob<TCallable> || RuntimeCallable<TCallable>
312
- auto runSyncImpl(TCallable &&callable, TTArgs &&...args) const -> decltype(auto) {
311
+ auto runSyncImpl(TCallable &&callable, TArgs &&...args) const -> decltype(auto) {
313
312
  jsi::Runtime &rt = getJSIRuntime();
314
313
  if constexpr (std::is_same_v<std::remove_cvref_t<TCallable>, std::shared_ptr<SerializableWorklet>>) {
315
314
  auto function = callable->toJSValue(rt).getObject(rt).getFunction(rt);
316
- return runSyncImpl<TCheckpoint, TResult, TScheduleStack>(function, std::forward<TTArgs>(args)...);
315
+ return runSyncImpl<TCheckpoint, TResult, TScheduleStack>(function, std::forward<TArgs>(args)...);
317
316
  } else {
318
317
  auto stackPolicyInvocation = [&]<typename TScheduleStackContext, typename... TCallArgs>(
319
318
  TScheduleStackContext &&scheduleStackContext,
@@ -322,7 +321,11 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
322
321
  if constexpr (RuntimeJob<TCallable>) {
323
322
  return std::forward<TCallable>(callable)(rt);
324
323
  } else {
325
- auto result = this->invoke(rt, callable, scheduleStackContext, std::forward<TCallArgs>(callArgs)...);
324
+ auto result = this->invoke(
325
+ rt,
326
+ callable,
327
+ std::forward<TScheduleStackContext>(scheduleStackContext),
328
+ std::forward<TCallArgs>(callArgs)...);
326
329
  if constexpr (std::is_same_v<TResult, std::shared_ptr<Serializable>>) {
327
330
  return extractSerializableOrThrow(rt, result);
328
331
  } else {
@@ -331,10 +334,11 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
331
334
  }
332
335
  };
333
336
 
334
- return invokeWithMicrotaskCheckpointPolicyImpl<TCheckpoint>(microtaskPolicyInvocation);
337
+ return invokeWithMicrotaskCheckpointPolicyImpl<TCheckpoint>(std::move(microtaskPolicyInvocation));
335
338
  };
336
339
 
337
- return invokeWithStackPolicyImpl<TScheduleStack, TCallable>(stackPolicyInvocation, std::forward<TTArgs>(args)...);
340
+ return invokeWithStackPolicyImpl<TScheduleStack, TCallable>(
341
+ std::move(stackPolicyInvocation), std::forward<TArgs>(args)...);
338
342
  }
339
343
  }
340
344
 
@@ -353,7 +357,8 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
353
357
  std::is_same_v<std::remove_cvref_t<TScheduleStackArg>, std::optional<std::string>>,
354
358
  "[Worklets] The first argument must be an optional scheduling stack.");
355
359
  return std::forward<TInvoker>(invoke)(
356
- RequestedScheduleStack{scheduleStack}, std::forward<TCallArgs>(callArgs)...);
360
+ RequestedScheduleStack{std::forward<TScheduleStackArg>(scheduleStack)},
361
+ std::forward<TCallArgs>(callArgs)...);
357
362
  }(std::forward<TArgs>(args)...);
358
363
  } else
359
364
  #endif // NDEBUG
@@ -367,18 +372,19 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
367
372
  */
368
373
  template <MicrotaskCheckpoint TCheckpoint, typename TInvoker>
369
374
  auto invokeWithMicrotaskCheckpointPolicyImpl(TInvoker &&invoke) const -> std::invoke_result_t<TInvoker> {
370
- if constexpr (TCheckpoint == MicrotaskCheckpoint::Skip) {
371
- return std::forward<TInvoker>(invoke)();
372
- } else {
373
- using Result = std::invoke_result_t<TInvoker>;
374
- if constexpr (std::is_void_v<Result>) {
375
- std::forward<TInvoker>(invoke)();
375
+ using Result = std::invoke_result_t<TInvoker>;
376
+ const auto checkpoint = [&]() {
377
+ if constexpr (TCheckpoint == MicrotaskCheckpoint::Run) {
376
378
  drainMicrotasksImpl();
377
- } else {
378
- auto result = std::forward<TInvoker>(invoke)();
379
- drainMicrotasksImpl();
380
- return result;
381
379
  }
380
+ };
381
+ if constexpr (std::is_void_v<Result>) {
382
+ std::forward<TInvoker>(invoke)();
383
+ checkpoint();
384
+ } else {
385
+ Result result = std::forward<TInvoker>(invoke)();
386
+ checkpoint();
387
+ return std::forward<Result>(result);
382
388
  }
383
389
  }
384
390
 
@@ -386,18 +392,8 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
386
392
  * Assumes the caller acquired the runtime lock.
387
393
  */
388
394
  void drainMicrotasksImpl() const {
389
- jsi::Runtime &rt = getJSIRuntime();
390
- if (!eventLoop_ && runtimeKind_ != RuntimeData::RuntimeKind::UI) {
391
- // UI Runtime doesn't have a C++-kind Event Loop, but one polyfilled in JS.
392
- return;
393
- }
394
-
395
- auto callMicrotasks = rt.global().getProperty(rt, "__callMicrotasks");
396
- if (callMicrotasks.isObject()) {
397
- auto callMicrotasksObject = callMicrotasks.getObject(rt);
398
- if (callMicrotasksObject.isFunction(rt)) {
399
- callMicrotasksObject.getFunction(rt).call(rt);
400
- }
395
+ if (microtaskQueueEnabled_) {
396
+ jsi_utils::drainMicrotasks(getJSIRuntime());
401
397
  }
402
398
  }
403
399
 
@@ -445,6 +441,7 @@ class WorkletRuntime : public jsi::HostObject, public std::enable_shared_from_th
445
441
  const RuntimeData::RuntimeId runtimeId_;
446
442
  const bool enableLocking_;
447
443
  const std::shared_ptr<std::recursive_mutex> runtimeMutex_;
444
+ const bool microtaskQueueEnabled_;
448
445
  const std::shared_ptr<jsi::Runtime> runtime_;
449
446
  std::shared_ptr<JSScheduler> jsScheduler_;
450
447
  const RuntimeData::RuntimeKind runtimeKind_;
@@ -14,7 +14,6 @@ import com.facebook.react.turbomodule.core.CallInvokerHolderImpl
14
14
  import com.facebook.soloader.SoLoader
15
15
  import com.swmansion.worklets.runloop.AnimationFrameCallback
16
16
  import com.swmansion.worklets.runloop.AnimationFrameQueue
17
- import java.util.concurrent.atomic.AtomicBoolean
18
17
 
19
18
  @Suppress("KotlinJniMissingFunction")
20
19
  @ReactModule(name = WorkletsModule.NAME)
@@ -50,7 +49,8 @@ class WorkletsModule(
50
49
  * Invalidating concurrently could be fatal. It shouldn't happen in a normal flow, but it doesn't
51
50
  * cost us much to add synchronization for extra safety.
52
51
  */
53
- private val mInvalidated = AtomicBoolean(false)
52
+ private val mInvalidationLock = Any()
53
+ private var mInvalidated = false
54
54
 
55
55
  @OptIn(FrameworkAPI::class)
56
56
  private external fun initHybrid(
@@ -159,9 +159,17 @@ class WorkletsModule(
159
159
  return mSlowAnimationsEnabled
160
160
  }
161
161
 
162
+ override fun initialize() {
163
+ reactApplicationContext.addLifecycleEventListener(this)
164
+ }
165
+
162
166
  override fun invalidate() {
163
- if (mInvalidated.getAndSet(true)) {
164
- return
167
+ synchronized(mInvalidationLock) {
168
+ if (mInvalidated) {
169
+ return
170
+ }
171
+ mInvalidated = true
172
+ reactApplicationContext.removeLifecycleEventListener(this)
165
173
  }
166
174
  if (mHybridData != null && mHybridData!!.isValid) {
167
175
  invalidateCpp()
@@ -174,11 +182,21 @@ class WorkletsModule(
174
182
  private external fun startCpp()
175
183
 
176
184
  override fun onHostResume() {
177
- mAnimationFrameQueue.resume()
185
+ synchronized(mInvalidationLock) {
186
+ if (mInvalidated) {
187
+ return
188
+ }
189
+ mAnimationFrameQueue.resume()
190
+ }
178
191
  }
179
192
 
180
193
  override fun onHostPause() {
181
- mAnimationFrameQueue.pause()
194
+ synchronized(mInvalidationLock) {
195
+ if (mInvalidated) {
196
+ return
197
+ }
198
+ mAnimationFrameQueue.pause()
199
+ }
182
200
  }
183
201
 
184
202
  override fun onHostDestroy() {}
@@ -11,7 +11,6 @@ import com.facebook.react.turbomodule.core.CallInvokerHolderImpl
11
11
  import com.facebook.soloader.SoLoader
12
12
  import com.swmansion.worklets.runloop.AnimationFrameCallback
13
13
  import com.swmansion.worklets.runloop.AnimationFrameQueue
14
- import java.util.concurrent.atomic.AtomicBoolean
15
14
 
16
15
  @Suppress("KotlinJniMissingFunction")
17
16
  @ReactModule(name = WorkletsModule.NAME)
@@ -46,7 +45,8 @@ class WorkletsModule(
46
45
  * Invalidating concurrently could be fatal. It shouldn't happen in a normal flow, but it doesn't
47
46
  * cost us much to add synchronization for extra safety.
48
47
  */
49
- private val mInvalidated = AtomicBoolean(false)
48
+ private val mInvalidationLock = Any()
49
+ private var mInvalidated = false
50
50
 
51
51
  @OptIn(FrameworkAPI::class)
52
52
  private external fun initHybrid(
@@ -115,9 +115,17 @@ class WorkletsModule(
115
115
  return mSlowAnimationsEnabled
116
116
  }
117
117
 
118
+ override fun initialize() {
119
+ reactApplicationContext.addLifecycleEventListener(this)
120
+ }
121
+
118
122
  override fun invalidate() {
119
- if (mInvalidated.getAndSet(true)) {
120
- return
123
+ synchronized(mInvalidationLock) {
124
+ if (mInvalidated) {
125
+ return
126
+ }
127
+ mInvalidated = true
128
+ reactApplicationContext.removeLifecycleEventListener(this)
121
129
  }
122
130
  if (mHybridData != null && mHybridData!!.isValid) {
123
131
  invalidateCpp()
@@ -130,11 +138,21 @@ class WorkletsModule(
130
138
  private external fun startCpp()
131
139
 
132
140
  override fun onHostResume() {
133
- mAnimationFrameQueue.resume()
141
+ synchronized(mInvalidationLock) {
142
+ if (mInvalidated) {
143
+ return
144
+ }
145
+ mAnimationFrameQueue.resume()
146
+ }
134
147
  }
135
148
 
136
149
  override fun onHostPause() {
137
- mAnimationFrameQueue.pause()
150
+ synchronized(mInvalidationLock) {
151
+ if (mInvalidated) {
152
+ return
153
+ }
154
+ mAnimationFrameQueue.pause()
155
+ }
138
156
  }
139
157
 
140
158
  override fun onHostDestroy() {}
@@ -5,5 +5,5 @@
5
5
  * version used to build the native part of the library in runtime. Remember to
6
6
  * keep this in sync with the version declared in `package.json`
7
7
  */
8
- export const jsVersion = '0.12.0-nightly-20260809-d10808bc5';
8
+ export const jsVersion = '0.12.0';
9
9
  //# sourceMappingURL=jsVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsVersion"],"sourceRoot":"../../../src","sources":["debug/jsVersion.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,SAAS,GAAG,mCAAmC","ignoreList":[]}
1
+ {"version":3,"names":["jsVersion"],"sourceRoot":"../../../src","sources":["debug/jsVersion.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,SAAS,GAAG,QAAQ","ignoreList":[]}
@@ -5,6 +5,8 @@ import { RuntimeKind } from "./runtimeKind.js";
5
5
  import { isWorkletFunction } from "./workletFunction.js";
6
6
  const NOOP = () => {};
7
7
  const NOOP_FACTORY = () => NOOP;
8
+ const UI_RUNTIME_HOLDER = {};
9
+ const UI_SCHEDULER_HOLDER = {};
8
10
  const ID = value => value;
9
11
  const IMMEDIATE_CALLBACK_INVOCATION = callback => callback();
10
12
  globalThis._WORKLET = false;
@@ -19,30 +21,60 @@ globalThis._getAnimationTimestamp = () => performance.now();
19
21
  // @ts-ignore TypeScript uses Node definition for rAF, setTimeout, etc which returns a Timeout object rather than a number
20
22
  globalThis.requestAnimationFrame = mockedRequestAnimationFrame;
21
23
  const WorkletAPI = {
24
+ callMicrotasks: NOOP,
25
+ createSerializable: ID,
26
+ createShareable(_hostRuntimeId, initial) {
27
+ let value = initial;
28
+ const set = next => {
29
+ value = typeof next === 'function' ? next(value) : next;
30
+ };
31
+ return {
32
+ isHost: false,
33
+ __shareableRef: true,
34
+ getAsync: () => Promise.resolve(value),
35
+ getSync: () => value,
36
+ setAsync: set,
37
+ setSync: set
38
+ };
39
+ },
40
+ createSynchronizable: ID,
41
+ createWorkletRuntime: NOOP_FACTORY,
42
+ executeOnUIRuntimeSync: ID,
43
+ getDynamicFeatureFlag: () => false,
44
+ getRuntimeKind: () => RuntimeKind.ReactNative,
45
+ getStaticFeatureFlag: () => false,
46
+ getUIRuntimeHolder: () => UI_RUNTIME_HOLDER,
47
+ getUISchedulerHolder: () => UI_SCHEDULER_HOLDER,
48
+ isBundleModeEnabled: () => false,
49
+ isRNRuntime: () => true,
50
+ isSerializableRef: ID,
51
+ isShareable: value => typeof value === 'object' && value !== null && !!value.__shareableRef,
22
52
  isShareableRef: () => true,
53
+ isSynchronizable: () => false,
54
+ isUIRuntime: () => false,
55
+ // maybe it should be true?
56
+ isWorkerRuntime: () => false,
57
+ isWorkletFunction: isWorkletFunction,
58
+ isWorkletRuntime: () => false,
23
59
  makeShareable: ID,
24
60
  makeShareableCloneOnUIRecursive: ID,
25
61
  makeShareableCloneRecursive: ID,
26
- shareableMappingCache: new Map(),
27
- getStaticFeatureFlag: () => false,
28
- setDynamicFeatureFlag: NOOP,
29
- isSynchronizable: () => false,
30
- getRuntimeKind: () => RuntimeKind.ReactNative,
31
- RuntimeKind: RuntimeKind,
32
- createWorkletRuntime: NOOP_FACTORY,
62
+ registerCustomSerializable: NOOP,
63
+ runOnJS(fun) {
64
+ return (...args) => queueMicrotask(args.length ? () => fun(...args) : fun);
65
+ },
33
66
  runOnRuntime: ID,
34
67
  runOnRuntimeAsync(_workletRuntime, worklet, ...args) {
35
68
  return WorkletAPI.runOnUIAsync(worklet, ...args);
36
69
  },
37
- scheduleOnRuntime: IMMEDIATE_CALLBACK_INVOCATION,
38
- createSerializable: ID,
39
- isSerializableRef: ID,
40
- serializableMappingCache: new Map(),
41
- createSynchronizable: ID,
42
- callMicrotasks: NOOP,
43
- executeOnUIRuntimeSync: ID,
44
- runOnJS(fun) {
45
- return (...args) => queueMicrotask(args.length ? () => fun(...args) : fun);
70
+ runOnRuntimeAsyncWithId(_runtimeId, worklet, ...args) {
71
+ return WorkletAPI.runOnUIAsync(worklet, ...args);
72
+ },
73
+ runOnRuntimeSync(_workletRuntime, worklet, ...args) {
74
+ return worklet(...args);
75
+ },
76
+ runOnRuntimeSyncWithId(_runtimeId, worklet, ...args) {
77
+ return worklet(...args);
46
78
  },
47
79
  runOnUI(worklet) {
48
80
  return (...args) => {
@@ -69,13 +101,22 @@ const WorkletAPI = {
69
101
  });
70
102
  },
71
103
  runOnUISync: IMMEDIATE_CALLBACK_INVOCATION,
104
+ RuntimeKind: RuntimeKind,
72
105
  scheduleOnRN(fun, ...args) {
73
106
  WorkletAPI.runOnJS(fun)(...args);
74
107
  },
108
+ scheduleOnRuntime: IMMEDIATE_CALLBACK_INVOCATION,
109
+ scheduleOnRuntimeWithId(_runtimeId, worklet, ...args) {
110
+ WorkletAPI.scheduleOnUI(worklet, ...args);
111
+ },
75
112
  scheduleOnUI(worklet, ...args) {
76
113
  WorkletAPI.runOnUI(worklet)(...args);
77
114
  },
78
- isWorkletFunction: isWorkletFunction,
115
+ serializableMappingCache: new Map(),
116
+ setDynamicFeatureFlag: NOOP,
117
+ shareableMappingCache: new Map(),
118
+ toggleSlowAnimationsOnUIRuntime: () => false,
119
+ UIRuntimeId: RuntimeKind.UI,
79
120
  WorkletsModule: {}
80
121
  };
81
122
  module.exports = {
@@ -1 +1 @@
1
- {"version":3,"names":["mockedRequestAnimationFrame","RuntimeKind","isWorkletFunction","NOOP","NOOP_FACTORY","ID","value","IMMEDIATE_CALLBACK_INVOCATION","callback","globalThis","_WORKLET","__RUNTIME_KIND","ReactNative","_log","console","log","_getAnimationTimestamp","performance","now","requestAnimationFrame","WorkletAPI","isShareableRef","makeShareable","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","shareableMappingCache","Map","getStaticFeatureFlag","setDynamicFeatureFlag","isSynchronizable","getRuntimeKind","createWorkletRuntime","runOnRuntime","runOnRuntimeAsync","_workletRuntime","worklet","args","runOnUIAsync","scheduleOnRuntime","createSerializable","isSerializableRef","serializableMappingCache","createSynchronizable","callMicrotasks","executeOnUIRuntimeSync","runOnJS","fun","queueMicrotask","length","runOnUI","Promise","resolve","result","runOnUISync","scheduleOnRN","scheduleOnUI","WorkletsModule","module","exports","__esModule"],"sourceRoot":"../../src","sources":["mock.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,2BAA2B,QAAQ,oDAAiD;AAC7F,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,iBAAiB,QAAQ,sBAAmB;AAErD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AACrB,MAAMC,YAAY,GAAGA,CAAA,KAAMD,IAAI;AAC/B,MAAME,EAAE,GAAYC,KAAa,IAAKA,KAAK;AAC3C,MAAMC,6BAA6B,GAAeC,QAAyB,IACzEA,QAAQ,CAAC,CAAC;AAEZC,UAAU,CAACC,QAAQ,GAAG,KAAK;AAC3BD,UAAU,CAACE,cAAc,GAAGV,WAAW,CAACW,WAAW;AACnDH,UAAU,CAACI,IAAI,GAAGC,OAAO,CAACC,GAAG;AAC7BN,UAAU,CAACO,sBAAsB,GAAG,MAAMC,WAAW,CAACC,GAAG,CAAC,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACAT,UAAU,CAACU,qBAAqB,GAAGnB,2BAA2B;AAE9D,MAAMoB,UAAU,GAAG;EACjBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,aAAa,EAAEjB,EAAE;EACjBkB,+BAA+B,EAAElB,EAAE;EACnCmB,2BAA2B,EAAEnB,EAAE;EAC/BoB,qBAAqB,EAAE,IAAIC,GAAG,CAAC,CAAC;EAChCC,oBAAoB,EAAEA,CAAA,KAAM,KAAK;EACjCC,qBAAqB,EAAEzB,IAAI;EAC3B0B,gBAAgB,EAAEA,CAAA,KAAM,KAAK;EAC7BC,cAAc,EAAEA,CAAA,KAAM7B,WAAW,CAACW,WAAW;EAC7CX,WAAW,EAAEA,WAAW;EACxB8B,oBAAoB,EAAE3B,YAAY;EAClC4B,YAAY,EAAE3B,EAAE;EAChB4B,iBAAiBA,CACfC,eAAwB,EACxBC,OAAuC,EACvC,GAAGC,IAAU,EACS;IACtB,OAAOhB,UAAU,CAACiB,YAAY,CAACF,OAAO,EAAE,GAAGC,IAAI,CAAC;EAClD,CAAC;EACDE,iBAAiB,EAAE/B,6BAA6B;EAChDgC,kBAAkB,EAAElC,EAAE;EACtBmC,iBAAiB,EAAEnC,EAAE;EACrBoC,wBAAwB,EAAE,IAAIf,GAAG,CAAC,CAAC;EACnCgB,oBAAoB,EAAErC,EAAE;EACxBsC,cAAc,EAAExC,IAAI;EACpByC,sBAAsB,EAAEvC,EAAE;EAC1BwC,OAAOA,CACLC,GAAmC,EACV;IACzB,OAAO,CAAC,GAAGV,IAAI,KACbW,cAAc,CACZX,IAAI,CAACY,MAAM,GACP,MAAOF,GAAG,CAAoC,GAAGV,IAAI,CAAC,GACrDU,GACP,CAAC;EACL,CAAC;EACDG,OAAOA,CACLd,OAAuC,EACd;IACzB,OAAO,CAAC,GAAGC,IAAI,KAAK;MAClB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACApC,2BAA2B,CAAC,MAAM;QAChCmC,OAAO,CAAC,GAAGC,IAAI,CAAC;MAClB,CAAC,CAAC;IACJ,CAAC;EACH,CAAC;EACDC,YAAYA,CACVF,OAAuC,EACvC,GAAGC,IAAU,EACS;IACtB,OAAO,IAAIc,OAAO,CAAeC,OAAO,IAAK;MAC3CnD,2BAA2B,CAAC,MAAM;QAChC,MAAMoD,MAAM,GAAGjB,OAAO,CAAC,GAAGC,IAAI,CAAC;QAC/Be,OAAO,CAACC,MAAM,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;EACDC,WAAW,EAAE9C,6BAA6B;EAC1C+C,YAAYA,CACVR,GAAmC,EACnC,GAAGV,IAAU,EACP;IACNhB,UAAU,CAACyB,OAAO,CAACC,GAAG,CAAC,CAAC,GAAGV,IAAI,CAAC;EAClC,CAAC;EACDmB,YAAYA,CACVpB,OAAuC,EACvC,GAAGC,IAAU,EACP;IACNhB,UAAU,CAAC6B,OAAO,CAACd,OAAO,CAAC,CAAC,GAAGC,IAAI,CAAC;EACtC,CAAC;EACDlC,iBAAiB,EAAEA,iBAAiB;EACpCsD,cAAc,EAAE,CAAC;AACnB,CAAC;AAEDC,MAAM,CAACC,OAAO,GAAG;EACfC,UAAU,EAAE,IAAI;EAChB,GAAGvC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["mockedRequestAnimationFrame","RuntimeKind","isWorkletFunction","NOOP","NOOP_FACTORY","UI_RUNTIME_HOLDER","UI_SCHEDULER_HOLDER","ID","value","IMMEDIATE_CALLBACK_INVOCATION","callback","globalThis","_WORKLET","__RUNTIME_KIND","ReactNative","_log","console","log","_getAnimationTimestamp","performance","now","requestAnimationFrame","WorkletAPI","callMicrotasks","createSerializable","createShareable","_hostRuntimeId","initial","set","next","isHost","__shareableRef","getAsync","Promise","resolve","getSync","setAsync","setSync","createSynchronizable","createWorkletRuntime","executeOnUIRuntimeSync","getDynamicFeatureFlag","getRuntimeKind","getStaticFeatureFlag","getUIRuntimeHolder","getUISchedulerHolder","isBundleModeEnabled","isRNRuntime","isSerializableRef","isShareable","isShareableRef","isSynchronizable","isUIRuntime","isWorkerRuntime","isWorkletRuntime","makeShareable","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","registerCustomSerializable","runOnJS","fun","args","queueMicrotask","length","runOnRuntime","runOnRuntimeAsync","_workletRuntime","worklet","runOnUIAsync","runOnRuntimeAsyncWithId","_runtimeId","runOnRuntimeSync","runOnRuntimeSyncWithId","runOnUI","result","runOnUISync","scheduleOnRN","scheduleOnRuntime","scheduleOnRuntimeWithId","scheduleOnUI","serializableMappingCache","Map","setDynamicFeatureFlag","shareableMappingCache","toggleSlowAnimationsOnUIRuntime","UIRuntimeId","UI","WorkletsModule","module","exports","__esModule"],"sourceRoot":"../../src","sources":["mock.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  export function setupRequestAnimationFrame() {
4
4
  'worklet';
5
5
 
6
- const callMicrotasks = globalThis.__callMicrotasks;
7
6
  let queuedCallbacks = [];
8
7
  let queuedCallbacksBegin = 0;
9
8
  let queuedCallbacksEnd = 0;
@@ -21,7 +20,7 @@ export function setupRequestAnimationFrame() {
21
20
  callback(timestamp);
22
21
  }
23
22
  flushedCallbacksBegin = flushedCallbacksEnd;
24
- callMicrotasks();
23
+ globalThis.__callMicrotasks();
25
24
  const finalizers = queuedFinalizers;
26
25
  queuedFinalizers = [];
27
26
  for (const finalizer of finalizers) {
@@ -1 +1 @@
1
- {"version":3,"names":["setupRequestAnimationFrame","callMicrotasks","globalThis","__callMicrotasks","queuedCallbacks","queuedCallbacksBegin","queuedCallbacksEnd","flushedCallbacks","flushedCallbacksBegin","flushedCallbacksEnd","queuedFinalizers","executeQueue","timestamp","callback","finalizers","finalizer","requestAnimationFrame","handle","push","cancelAnimationFrame","nativeFlushQueue","flushQueue","__nativeRequestAnimationFrame","__frameTimestamp","undefined","requestAnimationFrameFinalizer","__flushAnimationFrame","eventTimestamp"],"sourceRoot":"../../../../src","sources":["runLoop/uiRuntime/requestAnimationFrame.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,0BAA0BA,CAAA,EAAG;EAC3C,SAAS;;EACT,MAAMC,cAAc,GAAGC,UAAU,CAACC,gBAAgB;EAElD,IAAIC,eAAgD,GAAG,EAAE;EACzD,IAAIC,oBAAoB,GAAG,CAAC;EAC5B,IAAIC,kBAAkB,GAAG,CAAC;EAE1B,IAAIC,gBAAgB,GAAGH,eAAe;EACtC,IAAII,qBAAqB,GAAG,CAAC;EAC7B,IAAIC,mBAAmB,GAAG,CAAC;EAE3B,IAAIC,gBAAgC,GAAG,EAAE;EAEzC,SAASC,YAAYA,CAACC,SAAiB,EAAE;IACvCL,gBAAgB,GAAGH,eAAe;IAClCA,eAAe,GAAG,EAAE;IAEpBI,qBAAqB,GAAGH,oBAAoB;IAC5CI,mBAAmB,GAAGH,kBAAkB;IACxCD,oBAAoB,GAAGC,kBAAkB;IAEzC,KAAK,MAAMO,QAAQ,IAAIN,gBAAgB,EAAE;MACvCM,QAAQ,CAACD,SAAS,CAAC;IACrB;IAEAJ,qBAAqB,GAAGC,mBAAmB;IAE3CR,cAAc,CAAC,CAAC;IAEhB,MAAMa,UAAU,GAAGJ,gBAAgB;IACnCA,gBAAgB,GAAG,EAAE;IACrB,KAAK,MAAMK,SAAS,IAAID,UAAU,EAAE;MAClCC,SAAS,CAAC,CAAC;IACb;EACF;EAEA,SAASC,qBAAqBA,CAC5BH,QAAqC,EAC7B;IACR,MAAMI,MAAM,GAAGX,kBAAkB,EAAE;IACnCF,eAAe,CAACc,IAAI,CAACL,QAAQ,CAAC;IAC9B,OAAOI,MAAM;EACf;EAEA,SAASE,oBAAoBA,CAACF,MAAc,EAAE;IAC5C,IAAIA,MAAM,GAAGT,qBAAqB,IAAIS,MAAM,IAAIX,kBAAkB,EAAE;MAClE;IACF;IAEA,IAAIW,MAAM,GAAGR,mBAAmB,EAAE;MAChCF,gBAAgB,CAACU,MAAM,GAAGT,qBAAqB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7D,CAAC,MAAM;MACLJ,eAAe,CAACa,MAAM,GAAGZ,oBAAoB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC3D;EACF;EAEA,SAASe,gBAAgBA,CAACR,SAAiB,EAAE;IAC3CS,UAAU,CAACT,SAAS,CAAC;;IAErB;IACAV,UAAU,CAACoB,6BAA6B,CAACF,gBAAgB,CAAC;EAC5D;EAEA,SAASC,UAAUA,CAACT,SAAiB,EAAE;IACrCV,UAAU,CAACqB,gBAAgB,GAAGX,SAAS;IACvCD,YAAY,CAACC,SAAS,CAAC;IACvBV,UAAU,CAACqB,gBAAgB,GAAGC,SAAS;EACzC;EAEAtB,UAAU,CAACc,qBAAqB,GAAGA,qBAAqB;EACxDd,UAAU,CAACiB,oBAAoB,GAC7BA,oBAA8D;EAChEjB,UAAU,CAACuB,8BAA8B,GAAIZ,QAAoB,IAAK;IACpEH,gBAAgB,CAACQ,IAAI,CAACL,QAAQ,CAAC;EACjC,CAAC;;EAED;EACAX,UAAU,CAACoB,6BAA6B,CAACF,gBAAgB,CAAC;;EAE1D;EACAlB,UAAU,CAACwB,qBAAqB,GAAIC,cAAsB,IAAK;IAC7DN,UAAU,CAACM,cAAc,CAAC;EAC5B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["setupRequestAnimationFrame","queuedCallbacks","queuedCallbacksBegin","queuedCallbacksEnd","flushedCallbacks","flushedCallbacksBegin","flushedCallbacksEnd","queuedFinalizers","executeQueue","timestamp","callback","globalThis","__callMicrotasks","finalizers","finalizer","requestAnimationFrame","handle","push","cancelAnimationFrame","nativeFlushQueue","flushQueue","__nativeRequestAnimationFrame","__frameTimestamp","undefined","requestAnimationFrameFinalizer","__flushAnimationFrame","eventTimestamp"],"sourceRoot":"../../../../src","sources":["runLoop/uiRuntime/requestAnimationFrame.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,0BAA0BA,CAAA,EAAG;EAC3C,SAAS;;EAET,IAAIC,eAAgD,GAAG,EAAE;EACzD,IAAIC,oBAAoB,GAAG,CAAC;EAC5B,IAAIC,kBAAkB,GAAG,CAAC;EAE1B,IAAIC,gBAAgB,GAAGH,eAAe;EACtC,IAAII,qBAAqB,GAAG,CAAC;EAC7B,IAAIC,mBAAmB,GAAG,CAAC;EAE3B,IAAIC,gBAAgC,GAAG,EAAE;EAEzC,SAASC,YAAYA,CAACC,SAAiB,EAAE;IACvCL,gBAAgB,GAAGH,eAAe;IAClCA,eAAe,GAAG,EAAE;IAEpBI,qBAAqB,GAAGH,oBAAoB;IAC5CI,mBAAmB,GAAGH,kBAAkB;IACxCD,oBAAoB,GAAGC,kBAAkB;IAEzC,KAAK,MAAMO,QAAQ,IAAIN,gBAAgB,EAAE;MACvCM,QAAQ,CAACD,SAAS,CAAC;IACrB;IAEAJ,qBAAqB,GAAGC,mBAAmB;IAE3CK,UAAU,CAACC,gBAAgB,CAAC,CAAC;IAE7B,MAAMC,UAAU,GAAGN,gBAAgB;IACnCA,gBAAgB,GAAG,EAAE;IACrB,KAAK,MAAMO,SAAS,IAAID,UAAU,EAAE;MAClCC,SAAS,CAAC,CAAC;IACb;EACF;EAEA,SAASC,qBAAqBA,CAC5BL,QAAqC,EAC7B;IACR,MAAMM,MAAM,GAAGb,kBAAkB,EAAE;IACnCF,eAAe,CAACgB,IAAI,CAACP,QAAQ,CAAC;IAC9B,OAAOM,MAAM;EACf;EAEA,SAASE,oBAAoBA,CAACF,MAAc,EAAE;IAC5C,IAAIA,MAAM,GAAGX,qBAAqB,IAAIW,MAAM,IAAIb,kBAAkB,EAAE;MAClE;IACF;IAEA,IAAIa,MAAM,GAAGV,mBAAmB,EAAE;MAChCF,gBAAgB,CAACY,MAAM,GAAGX,qBAAqB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7D,CAAC,MAAM;MACLJ,eAAe,CAACe,MAAM,GAAGd,oBAAoB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC3D;EACF;EAEA,SAASiB,gBAAgBA,CAACV,SAAiB,EAAE;IAC3CW,UAAU,CAACX,SAAS,CAAC;;IAErB;IACAE,UAAU,CAACU,6BAA6B,CAACF,gBAAgB,CAAC;EAC5D;EAEA,SAASC,UAAUA,CAACX,SAAiB,EAAE;IACrCE,UAAU,CAACW,gBAAgB,GAAGb,SAAS;IACvCD,YAAY,CAACC,SAAS,CAAC;IACvBE,UAAU,CAACW,gBAAgB,GAAGC,SAAS;EACzC;EAEAZ,UAAU,CAACI,qBAAqB,GAAGA,qBAAqB;EACxDJ,UAAU,CAACO,oBAAoB,GAC7BA,oBAA8D;EAChEP,UAAU,CAACa,8BAA8B,GAAId,QAAoB,IAAK;IACpEH,gBAAgB,CAACU,IAAI,CAACP,QAAQ,CAAC;EACjC,CAAC;;EAED;EACAC,UAAU,CAACU,6BAA6B,CAACF,gBAAgB,CAAC;;EAE1D;EACAR,UAAU,CAACc,qBAAqB,GAAIC,cAAsB,IAAK;IAC7DN,UAAU,CAACM,cAAc,CAAC;EAC5B,CAAC;AACH","ignoreList":[]}
@@ -12,7 +12,6 @@ export function setupTaskQueue() {
12
12
  const task = queue.timeoutCallbacks.get(handlerId);
13
13
  task?.();
14
14
  queue.timeoutCallbacks.delete(handlerId);
15
- globalThis.__callMicrotasks();
16
15
  };
17
16
  globalThis.__callMicrotasks = function callMicrotasks() {
18
17
  for (let i = 0; i < queue.microtasks.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"names":["setupTaskQueue","queue","microtasks","timeoutCallbacks","Map","globalThis","_taskQueue","__runTimeoutCallback","handlerId","task","get","delete","__callMicrotasks","callMicrotasks","i","length","pushMicrotask","callback","push","pushTask","delay","set","_scheduleTimeoutCallback"],"sourceRoot":"../../../../src","sources":["runLoop/workletRuntime/taskQueue.ts"],"mappings":"AAAA,YAAY;;AASZ,OAAO,SAASA,cAAcA,CAAA,EAAG;EAC/B,SAAS;;EACT,MAAMC,KAAY,GAAG;IACnBC,UAAU,EAAE,EAAE;IACdC,gBAAgB,EAAE,IAAIC,GAAG,CAAC;EAC5B,CAAC;EACDC,UAAU,CAACC,UAAU,GAAGL,KAAK;EAE7BI,UAAU,CAACE,oBAAoB,GAAG,UAAUC,SAAiB,EAAE;IAC7D,MAAMC,IAAI,GAAGR,KAAK,CAACE,gBAAgB,CAACO,GAAG,CAACF,SAAS,CAAC;IAClDC,IAAI,GAAG,CAAC;IACRR,KAAK,CAACE,gBAAgB,CAACQ,MAAM,CAACH,SAAS,CAAC;IACxCH,UAAU,CAACO,gBAAgB,CAAC,CAAC;EAC/B,CAAC;EAEDP,UAAU,CAACO,gBAAgB,GAAG,SAASC,cAAcA,CAAA,EAAG;IACtD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,KAAK,CAACC,UAAU,CAACa,MAAM,EAAED,CAAC,EAAE,EAAE;MAChDb,KAAK,CAACC,UAAU,CAACY,CAAC,CAAC,CAAC,CAAC;IACvB;IACAb,KAAK,CAACC,UAAU,GAAG,EAAE;EACvB,CAAC;AACH;AAEA,OAAO,SAASc,aAAaA,CAACC,QAAkB,EAAE;EAChD,SAAS;;EACT,MAAMhB,KAAK,GAAGI,UAAU,CAACC,UAAU;EACnCL,KAAK,CAACC,UAAU,CAACgB,IAAI,CAACD,QAAQ,CAAC;AACjC;AAEA,OAAO,SAASE,QAAQA,CAACF,QAAkB,EAAET,SAAiB,EAAEY,KAAa,EAAE;EAC7E,SAAS;;EACT,MAAMnB,KAAK,GAAGI,UAAU,CAACC,UAAU;EACnCL,KAAK,CAACE,gBAAgB,CAACkB,GAAG,CAACb,SAAS,EAAES,QAAQ,CAAC;EAC/CZ,UAAU,CAACiB,wBAAwB,CAACF,KAAK,EAAEZ,SAAS,CAAC;AACvD","ignoreList":[]}
1
+ {"version":3,"names":["setupTaskQueue","queue","microtasks","timeoutCallbacks","Map","globalThis","_taskQueue","__runTimeoutCallback","handlerId","task","get","delete","__callMicrotasks","callMicrotasks","i","length","pushMicrotask","callback","push","pushTask","delay","set","_scheduleTimeoutCallback"],"sourceRoot":"../../../../src","sources":["runLoop/workletRuntime/taskQueue.ts"],"mappings":"AAAA,YAAY;;AASZ,OAAO,SAASA,cAAcA,CAAA,EAAG;EAC/B,SAAS;;EACT,MAAMC,KAAY,GAAG;IACnBC,UAAU,EAAE,EAAE;IACdC,gBAAgB,EAAE,IAAIC,GAAG,CAAC;EAC5B,CAAC;EACDC,UAAU,CAACC,UAAU,GAAGL,KAAK;EAE7BI,UAAU,CAACE,oBAAoB,GAAG,UAAUC,SAAiB,EAAE;IAC7D,MAAMC,IAAI,GAAGR,KAAK,CAACE,gBAAgB,CAACO,GAAG,CAACF,SAAS,CAAC;IAClDC,IAAI,GAAG,CAAC;IACRR,KAAK,CAACE,gBAAgB,CAACQ,MAAM,CAACH,SAAS,CAAC;EAC1C,CAAC;EAEDH,UAAU,CAACO,gBAAgB,GAAG,SAASC,cAAcA,CAAA,EAAG;IACtD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,KAAK,CAACC,UAAU,CAACa,MAAM,EAAED,CAAC,EAAE,EAAE;MAChDb,KAAK,CAACC,UAAU,CAACY,CAAC,CAAC,CAAC,CAAC;IACvB;IACAb,KAAK,CAACC,UAAU,GAAG,EAAE;EACvB,CAAC;AACH;AAEA,OAAO,SAASc,aAAaA,CAACC,QAAkB,EAAE;EAChD,SAAS;;EACT,MAAMhB,KAAK,GAAGI,UAAU,CAACC,UAAU;EACnCL,KAAK,CAACC,UAAU,CAACgB,IAAI,CAACD,QAAQ,CAAC;AACjC;AAEA,OAAO,SAASE,QAAQA,CAACF,QAAkB,EAAET,SAAiB,EAAEY,KAAa,EAAE;EAC7E,SAAS;;EACT,MAAMnB,KAAK,GAAGI,UAAU,CAACC,UAAU;EACnCL,KAAK,CAACE,gBAAgB,CAACkB,GAAG,CAACb,SAAS,EAAES,QAAQ,CAAC;EAC/CZ,UAAU,CAACiB,wBAAwB,CAACF,KAAK,EAAEZ,SAAS,CAAC;AACvD","ignoreList":[]}
@@ -121,7 +121,6 @@ export function scheduleOnRuntime(workletRuntime, worklet, ...args) {
121
121
  'worklet';
122
122
 
123
123
  worklet(...args);
124
- globalThis.__callMicrotasks?.();
125
124
  }), SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined);
126
125
  }
127
126
  if (!isBundleModeEnabled()) {
@@ -135,7 +134,6 @@ if (!isBundleModeEnabled()) {
135
134
  'worklet';
136
135
 
137
136
  worklet(...args);
138
- globalThis.__callMicrotasks?.();
139
137
  }));
140
138
  }
141
139
  serializableMappingCache.set(scheduleOnRuntime, createSerializable(scheduleOnRuntimeWorklet));
@@ -171,7 +169,6 @@ export function scheduleOnRuntimeWithId(runtimeId, worklet, ...args) {
171
169
  'worklet';
172
170
 
173
171
  worklet(...args);
174
- globalThis.__callMicrotasks?.();
175
172
  }), SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined);
176
173
  }
177
174
  if (!isBundleModeEnabled()) {
@@ -185,7 +182,6 @@ if (!isBundleModeEnabled()) {
185
182
  'worklet';
186
183
 
187
184
  worklet(...args);
188
- globalThis.__callMicrotasks?.();
189
185
  }));
190
186
  }
191
187
  serializableMappingCache.set(scheduleOnRuntimeWithId, createSerializable(scheduleOnRuntimeWithIdWorklet));
@@ -313,7 +309,6 @@ export function runOnRuntimeAsync(workletRuntime, worklet, ...args) {
313
309
  const serializedError = globalThis.__serializer(error);
314
310
  globalThis.__workletsModuleProxy.handlePromise(reject, serializedError);
315
311
  }
316
- globalThis.__callMicrotasks?.();
317
312
  }), scheduleStack);
318
313
  });
319
314
  }
@@ -361,7 +356,6 @@ export function runOnRuntimeAsyncWithId(runtimeId, worklet, ...args) {
361
356
  const serializedError = globalThis.__serializer(error);
362
357
  globalThis.__workletsModuleProxy.handlePromise(reject, serializedError);
363
358
  }
364
- globalThis.__callMicrotasks?.();
365
359
  }), scheduleStack);
366
360
  });
367
361
  }
@@ -1 +1 @@
1
- {"version":3,"names":["isBundleModeEnabled","getStaticFeatureFlag","addNoBundleModeGuardImplementation","getMemorySafeCapturableConsole","setupConsole","setupConsoleForwarding","setupSerializer","createSerializable","makeShareableCloneOnUIRecursive","serializableMappingCache","setupRunLoop","RuntimeKind","isWorkletFunction","WorkletsModule","SHOULD_CAPTURE_SCHEDULE_STACK","__DEV__","UIRuntimeId","UI","createWorkletRuntime","nameOrConfig","initializer","runtimeBoundCapturableConsole","globalThis","_WORKLETS_BUNDLE_MODE_ENABLED","name","initializerFn","queue","animationQueuePollingRate","enableEventLoop","enableLocking","undefined","useDefaultQueue","customQueue","Math","round","Error","scheduleOnRuntime","workletRuntime","worklet","args","__callMicrotasks","stack","scheduleOnRuntimeWorklet","__workletsModuleProxy","__serializer","set","scheduleOnRuntimeWithId","runtimeId","scheduleOnRuntimeWithIdWorklet","runOnRuntime","runOnRuntimeSync","result","runOnRuntimeSyncWithId","runOnRuntimeAsync","Promise","resolve","reject","scheduleStack","serializedResult","handlePromise","error","serializedError","runOnRuntimeAsyncWithId","getUIRuntimeHolder","getUISchedulerHolder"],"sourceRoot":"../../src","sources":["runtimes.native.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isBundleModeEnabled","getStaticFeatureFlag","addNoBundleModeGuardImplementation","getMemorySafeCapturableConsole","setupConsole","setupConsoleForwarding","setupSerializer","createSerializable","makeShareableCloneOnUIRecursive","serializableMappingCache","setupRunLoop","RuntimeKind","isWorkletFunction","WorkletsModule","SHOULD_CAPTURE_SCHEDULE_STACK","__DEV__","UIRuntimeId","UI","createWorkletRuntime","nameOrConfig","initializer","runtimeBoundCapturableConsole","globalThis","_WORKLETS_BUNDLE_MODE_ENABLED","name","initializerFn","queue","animationQueuePollingRate","enableEventLoop","enableLocking","undefined","useDefaultQueue","customQueue","Math","round","Error","scheduleOnRuntime","workletRuntime","worklet","args","stack","scheduleOnRuntimeWorklet","__workletsModuleProxy","__serializer","set","scheduleOnRuntimeWithId","runtimeId","scheduleOnRuntimeWithIdWorklet","runOnRuntime","runOnRuntimeSync","result","runOnRuntimeSyncWithId","runOnRuntimeAsync","Promise","resolve","reject","scheduleStack","serializedResult","handlePromise","error","serializedError","runOnRuntimeAsyncWithId","getUIRuntimeHolder","getUISchedulerHolder"],"sourceRoot":"../../src","sources":["runtimes.native.ts"],"mappings":"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","ignoreList":[]}
@@ -3,5 +3,5 @@
3
3
  * version used to build the native part of the library in runtime. Remember to
4
4
  * keep this in sync with the version declared in `package.json`
5
5
  */
6
- export declare const jsVersion = "0.12.0-nightly-20260809-d10808bc5";
6
+ export declare const jsVersion = "0.12.0";
7
7
  //# sourceMappingURL=jsVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsVersion.d.ts","sourceRoot":"","sources":["../../../src/debug/jsVersion.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,SAAS,sCAAsC,CAAC"}
1
+ {"version":3,"file":"jsVersion.d.ts","sourceRoot":"","sources":["../../../src/debug/jsVersion.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,SAAS,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"requestAnimationFrame.d.ts","sourceRoot":"","sources":["../../../../src/runLoop/uiRuntime/requestAnimationFrame.ts"],"names":[],"mappings":"AAEA,wBAAgB,0BAA0B,SAoFzC"}
1
+ {"version":3,"file":"requestAnimationFrame.d.ts","sourceRoot":"","sources":["../../../../src/runLoop/uiRuntime/requestAnimationFrame.ts"],"names":[],"mappings":"AAEA,wBAAgB,0BAA0B,SAmFzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"taskQueue.d.ts","sourceRoot":"","sources":["../../../../src/runLoop/workletRuntime/taskQueue.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,wBAAgB,cAAc,SAqB7B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,QAI/C;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAK5E"}
1
+ {"version":3,"file":"taskQueue.d.ts","sourceRoot":"","sources":["../../../../src/runLoop/workletRuntime/taskQueue.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,wBAAgB,cAAc,SAoB7B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,QAI/C;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAK5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtimes.native.d.ts","sourceRoot":"","sources":["../../src/runtimes.native.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAOjB;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAqB,CAAC,CAAC;AAE/C;;;;;;;;GAQG;AAEH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,oBAAoB,GAC5B,cAAc,CAAC;AAElB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,IAAI,GACvB,cAAc,CAAC;AA2ElB;;;;;;;;;;;;;;;;;GAiBG;AAGH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACnE,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,IAAI,CAAC;AAqDR;;;;;;;;;;;;;;;;;;GAkBG;AAGH,wBAAgB,uBAAuB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACzE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,IAAI,CAAC;AAqDR;;;;GAIG;AAGH,wBAAgB,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EAC9D,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,GACtC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAmBtC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EAClE,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,WAAW,CAgBb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,wBAAgB,sBAAsB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACxE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,WAAW,CAAC;AAwBf;;;;;;;;;;;;;;;GAeG;AAGH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACnE,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC;AAoDxB;;;;;;;;;;;;;;;;;;GAkBG;AAGH,wBAAgB,uBAAuB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACzE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC;AA6DxB,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
1
+ {"version":3,"file":"runtimes.native.d.ts","sourceRoot":"","sources":["../../src/runtimes.native.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAOjB;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAqB,CAAC,CAAC;AAE/C;;;;;;;;GAQG;AAEH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,oBAAoB,GAC5B,cAAc,CAAC;AAElB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,IAAI,GACvB,cAAc,CAAC;AA2ElB;;;;;;;;;;;;;;;;;GAiBG;AAGH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACnE,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,IAAI,CAAC;AAmDR;;;;;;;;;;;;;;;;;;GAkBG;AAGH,wBAAgB,uBAAuB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACzE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,IAAI,CAAC;AAmDR;;;;GAIG;AAGH,wBAAgB,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EAC9D,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,GACtC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAmBtC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EAClE,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,WAAW,CAgBb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,wBAAgB,sBAAsB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACxE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,WAAW,CAAC;AAwBf;;;;;;;;;;;;;;;GAeG;AAGH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACnE,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC;AAmDxB;;;;;;;;;;;;;;;;;;GAkBG;AAGH,wBAAgB,uBAAuB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,WAAW,EACzE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,EACvC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC;AA4DxB,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-worklets",
3
- "version": "0.12.0-nightly-20260809-d10808bc5",
3
+ "version": "0.12.0",
4
4
  "description": "The React Native multithreading library",
5
5
  "keywords": [
6
6
  "react-native",
@@ -28,7 +28,7 @@
28
28
  "lint:clang-tidy": "yarn lint:clang-tidy:ios && yarn lint:clang-tidy:android",
29
29
  "lint:clang-tidy:ios": "../../scripts/llvm-tools/clang-tidy-lint.sh --platform=ios",
30
30
  "lint:clang-tidy:android": "../../scripts/llvm-tools/clang-tidy-lint.sh --platform=android",
31
- "lint:js": "eslint src && yarn run --top-level oxfmt --check src",
31
+ "lint:js": "eslint src && yarn run --top-level oxfmt --check src && yarn validate-mock",
32
32
  "lint:plugin": "yarn workspace babel-plugin-worklets lint",
33
33
  "prepack": "yarn build",
34
34
  "set-version": "node scripts/set-version.js",
@@ -44,6 +44,7 @@
44
44
  "type:check:legacy-rn-types:app": "yarn workspace common-app type:check:legacy-rn-types",
45
45
  "type:check:legacy-rn-types:tests": "../../scripts/test-ts.sh --customConditions react-native-legacy-deep-imports __typetests__",
46
46
  "tree-shake:check:web": "yarn is-tree-shakable --resolution web",
47
+ "validate-mock": "node --experimental-strip-types ../../scripts/validate-mock.mts --source src/index.ts --mock src/mock.ts --tsConfig tsconfig.native.json",
47
48
  "validate-peers": "node ../../scripts/validate-compatibility-peer-dependencies.js"
48
49
  },
49
50
  "repository": {
@@ -5,4 +5,4 @@
5
5
  * version used to build the native part of the library in runtime. Remember to
6
6
  * keep this in sync with the version declared in `package.json`
7
7
  */
8
- export const jsVersion = '0.12.0-nightly-20260809-d10808bc5';
8
+ export const jsVersion = '0.12.0';
package/src/mock.ts CHANGED
@@ -6,6 +6,8 @@ import { isWorkletFunction } from './workletFunction';
6
6
 
7
7
  const NOOP = () => {};
8
8
  const NOOP_FACTORY = () => NOOP;
9
+ const UI_RUNTIME_HOLDER = {};
10
+ const UI_SCHEDULER_HOLDER = {};
9
11
  const ID = <TValue>(value: TValue) => value;
10
12
  const IMMEDIATE_CALLBACK_INVOCATION = <TCallback>(callback: () => TCallback) =>
11
13
  callback();
@@ -23,32 +25,50 @@ globalThis._getAnimationTimestamp = () => performance.now();
23
25
  globalThis.requestAnimationFrame = mockedRequestAnimationFrame;
24
26
 
25
27
  const WorkletAPI = {
28
+ callMicrotasks: NOOP,
29
+ createSerializable: ID,
30
+ createShareable<TValue>(_hostRuntimeId: number, initial: TValue) {
31
+ let value = initial;
32
+ const set = (next: TValue | ((prev: TValue) => TValue)) => {
33
+ value =
34
+ typeof next === 'function'
35
+ ? (next as (prev: TValue) => TValue)(value)
36
+ : next;
37
+ };
38
+ return {
39
+ isHost: false,
40
+ __shareableRef: true,
41
+ getAsync: () => Promise.resolve(value),
42
+ getSync: () => value,
43
+ setAsync: set,
44
+ setSync: set,
45
+ };
46
+ },
47
+ createSynchronizable: ID,
48
+ createWorkletRuntime: NOOP_FACTORY,
49
+ executeOnUIRuntimeSync: ID,
50
+ getDynamicFeatureFlag: () => false,
51
+ getRuntimeKind: () => RuntimeKind.ReactNative,
52
+ getStaticFeatureFlag: () => false,
53
+ getUIRuntimeHolder: () => UI_RUNTIME_HOLDER,
54
+ getUISchedulerHolder: () => UI_SCHEDULER_HOLDER,
55
+ isBundleModeEnabled: () => false,
56
+ isRNRuntime: () => true,
57
+ isSerializableRef: ID,
58
+ isShareable: (value: unknown) =>
59
+ typeof value === 'object' &&
60
+ value !== null &&
61
+ !!(value as Record<string, unknown>).__shareableRef,
26
62
  isShareableRef: () => true,
63
+ isSynchronizable: () => false,
64
+ isUIRuntime: () => false, // maybe it should be true?
65
+ isWorkerRuntime: () => false,
66
+ isWorkletFunction: isWorkletFunction,
67
+ isWorkletRuntime: () => false,
27
68
  makeShareable: ID,
28
69
  makeShareableCloneOnUIRecursive: ID,
29
70
  makeShareableCloneRecursive: ID,
30
- shareableMappingCache: new Map(),
31
- getStaticFeatureFlag: () => false,
32
- setDynamicFeatureFlag: NOOP,
33
- isSynchronizable: () => false,
34
- getRuntimeKind: () => RuntimeKind.ReactNative,
35
- RuntimeKind: RuntimeKind,
36
- createWorkletRuntime: NOOP_FACTORY,
37
- runOnRuntime: ID,
38
- runOnRuntimeAsync<Args extends unknown[], ReturnValue>(
39
- _workletRuntime: unknown,
40
- worklet: (...args: Args) => ReturnValue,
41
- ...args: Args
42
- ): Promise<ReturnValue> {
43
- return WorkletAPI.runOnUIAsync(worklet, ...args);
44
- },
45
- scheduleOnRuntime: IMMEDIATE_CALLBACK_INVOCATION,
46
- createSerializable: ID,
47
- isSerializableRef: ID,
48
- serializableMappingCache: new Map(),
49
- createSynchronizable: ID,
50
- callMicrotasks: NOOP,
51
- executeOnUIRuntimeSync: ID,
71
+ registerCustomSerializable: NOOP,
52
72
  runOnJS<Args extends unknown[], ReturnValue>(
53
73
  fun: (...args: Args) => ReturnValue
54
74
  ): (...args: Args) => void {
@@ -59,6 +79,35 @@ const WorkletAPI = {
59
79
  : (fun as () => ReturnValue)
60
80
  );
61
81
  },
82
+ runOnRuntime: ID,
83
+ runOnRuntimeAsync<Args extends unknown[], ReturnValue>(
84
+ _workletRuntime: unknown,
85
+ worklet: (...args: Args) => ReturnValue,
86
+ ...args: Args
87
+ ): Promise<ReturnValue> {
88
+ return WorkletAPI.runOnUIAsync(worklet, ...args);
89
+ },
90
+ runOnRuntimeAsyncWithId<Args extends unknown[], ReturnValue>(
91
+ _runtimeId: number,
92
+ worklet: (...args: Args) => ReturnValue,
93
+ ...args: Args
94
+ ): Promise<ReturnValue> {
95
+ return WorkletAPI.runOnUIAsync(worklet, ...args);
96
+ },
97
+ runOnRuntimeSync<Args extends unknown[], ReturnValue>(
98
+ _workletRuntime: unknown,
99
+ worklet: (...args: Args) => ReturnValue,
100
+ ...args: Args
101
+ ): ReturnValue {
102
+ return worklet(...args);
103
+ },
104
+ runOnRuntimeSyncWithId<Args extends unknown[], ReturnValue>(
105
+ _runtimeId: number,
106
+ worklet: (...args: Args) => ReturnValue,
107
+ ...args: Args
108
+ ): ReturnValue {
109
+ return worklet(...args);
110
+ },
62
111
  runOnUI<Args extends unknown[], ReturnValue>(
63
112
  worklet: (...args: Args) => ReturnValue
64
113
  ): (...args: Args) => void {
@@ -89,19 +138,32 @@ const WorkletAPI = {
89
138
  });
90
139
  },
91
140
  runOnUISync: IMMEDIATE_CALLBACK_INVOCATION,
141
+ RuntimeKind: RuntimeKind,
92
142
  scheduleOnRN<Args extends unknown[], ReturnValue>(
93
143
  fun: (...args: Args) => ReturnValue,
94
144
  ...args: Args
95
145
  ): void {
96
146
  WorkletAPI.runOnJS(fun)(...args);
97
147
  },
148
+ scheduleOnRuntime: IMMEDIATE_CALLBACK_INVOCATION,
149
+ scheduleOnRuntimeWithId<Args extends unknown[], ReturnValue>(
150
+ _runtimeId: number,
151
+ worklet: (...args: Args) => ReturnValue,
152
+ ...args: Args
153
+ ): void {
154
+ WorkletAPI.scheduleOnUI(worklet, ...args);
155
+ },
98
156
  scheduleOnUI<Args extends unknown[], ReturnValue>(
99
157
  worklet: (...args: Args) => ReturnValue,
100
158
  ...args: Args
101
159
  ): void {
102
160
  WorkletAPI.runOnUI(worklet)(...args);
103
161
  },
104
- isWorkletFunction: isWorkletFunction,
162
+ serializableMappingCache: new Map(),
163
+ setDynamicFeatureFlag: NOOP,
164
+ shareableMappingCache: new Map(),
165
+ toggleSlowAnimationsOnUIRuntime: () => false,
166
+ UIRuntimeId: RuntimeKind.UI,
105
167
  WorkletsModule: {},
106
168
  };
107
169
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  export function setupRequestAnimationFrame() {
4
4
  'worklet';
5
- const callMicrotasks = globalThis.__callMicrotasks;
6
5
 
7
6
  let queuedCallbacks: ((timestamp: number) => void)[] = [];
8
7
  let queuedCallbacksBegin = 0;
@@ -28,7 +27,7 @@ export function setupRequestAnimationFrame() {
28
27
 
29
28
  flushedCallbacksBegin = flushedCallbacksEnd;
30
29
 
31
- callMicrotasks();
30
+ globalThis.__callMicrotasks();
32
31
 
33
32
  const finalizers = queuedFinalizers;
34
33
  queuedFinalizers = [];
@@ -19,7 +19,6 @@ export function setupTaskQueue() {
19
19
  const task = queue.timeoutCallbacks.get(handlerId);
20
20
  task?.();
21
21
  queue.timeoutCallbacks.delete(handlerId);
22
- globalThis.__callMicrotasks();
23
22
  };
24
23
 
25
24
  globalThis.__callMicrotasks = function callMicrotasks() {
@@ -182,7 +182,6 @@ export function scheduleOnRuntime<Args extends unknown[], ReturnValue>(
182
182
  createSerializable(() => {
183
183
  'worklet';
184
184
  worklet(...args);
185
- globalThis.__callMicrotasks?.();
186
185
  }),
187
186
  SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined
188
187
  );
@@ -206,7 +205,6 @@ if (!isBundleModeEnabled()) {
206
205
  globalThis.__serializer(() => {
207
206
  'worklet';
208
207
  worklet(...args);
209
- globalThis.__callMicrotasks?.();
210
208
  })
211
209
  );
212
210
  }
@@ -260,7 +258,6 @@ export function scheduleOnRuntimeWithId<Args extends unknown[], ReturnValue>(
260
258
  createSerializable(() => {
261
259
  'worklet';
262
260
  worklet(...args);
263
- globalThis.__callMicrotasks?.();
264
261
  }),
265
262
  SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined
266
263
  );
@@ -284,7 +281,6 @@ if (!isBundleModeEnabled()) {
284
281
  globalThis.__serializer(() => {
285
282
  'worklet';
286
283
  worklet(...args);
287
- globalThis.__callMicrotasks?.();
288
284
  })
289
285
  );
290
286
  }
@@ -480,7 +476,6 @@ export function runOnRuntimeAsync<Args extends unknown[], ReturnValue>(
480
476
  serializedError
481
477
  );
482
478
  }
483
- globalThis.__callMicrotasks?.();
484
479
  }),
485
480
  scheduleStack
486
481
  );
@@ -555,7 +550,6 @@ export function runOnRuntimeAsyncWithId<Args extends unknown[], ReturnValue>(
555
550
  serializedError
556
551
  );
557
552
  }
558
- globalThis.__callMicrotasks?.();
559
553
  }),
560
554
  scheduleStack
561
555
  );