react-native-worklets 0.12.0 → 0.12.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.
@@ -22,6 +22,10 @@ void scheduleOnUI(const std::shared_ptr<UIScheduler> &uiScheduler, const std::fu
22
22
  uiScheduler->scheduleOnUI(job);
23
23
  }
24
24
 
25
+ bool isOnUIThread(const std::shared_ptr<UIScheduler> &uiScheduler) {
26
+ return uiScheduler->isOnUIThread();
27
+ }
28
+
25
29
  facebook::jsi::Runtime &getJSIRuntimeFromWorkletRuntime(const std::shared_ptr<WorkletRuntime> &workletRuntime) {
26
30
  return workletRuntime->getJSIRuntime();
27
31
  }
@@ -5,7 +5,7 @@
5
5
  * It can be used by libraries to verify they use a compatible version
6
6
  * of `react-native-worklets` installed when integrating in C++.
7
7
  */
8
- #define WORKLETS_STABLE_API_VERSION "0.9.0"
8
+ #define WORKLETS_STABLE_API_VERSION "0.12.1"
9
9
 
10
10
  #include <cstdint>
11
11
  #include <functional>
@@ -83,6 +83,8 @@ extern std::weak_ptr<WorkletRuntime> getWeakRuntimeFromJSIRuntime(facebook::jsi:
83
83
 
84
84
  extern void scheduleOnUI(const std::shared_ptr<UIScheduler> &uiScheduler, const std::function<void()> &job);
85
85
 
86
+ extern bool isOnUIThread(const std::shared_ptr<UIScheduler> &uiScheduler);
87
+
86
88
  extern std::string JSIValueToStdString(facebook::jsi::Runtime &rt, const facebook::jsi::Value &value);
87
89
 
88
90
  extern std::shared_ptr<Serializable>
@@ -23,6 +23,18 @@ jsi::Function getValueUnpacker(jsi::Runtime &rt) {
23
23
  return valueUnpacker.asObject(rt).asFunction(rt);
24
24
  }
25
25
 
26
+ void defineOwnDataProperty(jsi::Runtime &rt, const jsi::Object &target, const std::string &key, jsi::Value value) {
27
+ jsi::Object descriptor(rt);
28
+ descriptor.setProperty(rt, "configurable", true);
29
+ descriptor.setProperty(rt, "enumerable", true);
30
+ descriptor.setProperty(rt, "writable", true);
31
+ descriptor.setProperty(rt, "value", std::move(value));
32
+
33
+ const auto objectCtor = rt.global().getPropertyAsObject(rt, "Object");
34
+ const auto defineProperty = objectCtor.getPropertyAsFunction(rt, "defineProperty");
35
+ defineProperty.call(rt, jsi::Value(rt, target), jsi::String::createFromUtf8(rt, key), std::move(descriptor));
36
+ }
37
+
26
38
  } // namespace
27
39
 
28
40
  jsi::Value makeSerializableClone(
@@ -183,7 +195,11 @@ SerializableObject::SerializableObject(jsi::Runtime &rt, const jsi::Object &obje
183
195
  jsi::Value SerializableObject::toJSValue(jsi::Runtime &rt) {
184
196
  auto obj = jsi::Object(rt);
185
197
  for (const auto &i : data_) {
186
- obj.setProperty(rt, jsi::String::createFromUtf8(rt, i.first), i.second->toJSValue(rt));
198
+ if (i.first == "__proto__") {
199
+ defineOwnDataProperty(rt, obj, i.first, i.second->toJSValue(rt));
200
+ } else {
201
+ obj.setProperty(rt, jsi::String::createFromUtf8(rt, i.first), i.second->toJSValue(rt));
202
+ }
187
203
  }
188
204
  if (nativeState_ != nullptr) {
189
205
  obj.setNativeState(rt, nativeState_);
@@ -1,9 +1,12 @@
1
1
  #include <worklets/Tools/UIScheduler.h>
2
2
 
3
+ #include <optional>
3
4
  #include <utility>
4
5
 
5
6
  namespace worklets {
6
7
 
8
+ static thread_local std::optional<bool> tls_isOnUIThread;
9
+
7
10
  void UIScheduler::scheduleOnUI(std::function<void()> job) {
8
11
  uiJobs_.push(std::move(job));
9
12
  }
@@ -16,4 +19,11 @@ void UIScheduler::triggerUI() {
16
19
  }
17
20
  }
18
21
 
22
+ bool UIScheduler::isOnUIThread() const {
23
+ if (!tls_isOnUIThread.has_value()) {
24
+ tls_isOnUIThread = queryIsOnUIThread();
25
+ }
26
+ return *tls_isOnUIThread;
27
+ }
28
+
19
29
  } // namespace worklets
@@ -12,9 +12,12 @@ class UIScheduler {
12
12
  public:
13
13
  virtual void scheduleOnUI(std::function<void()> job);
14
14
  virtual void triggerUI();
15
+ bool isOnUIThread() const;
15
16
  virtual ~UIScheduler() = default;
16
17
 
17
18
  protected:
19
+ virtual bool queryIsOnUIThread() const = 0;
20
+
18
21
  std::atomic<bool> scheduledOnUI_{false};
19
22
  ThreadSafeQueue<std::function<void()>> uiJobs_;
20
23
  };
@@ -7,18 +7,25 @@ namespace worklets {
7
7
  using namespace facebook;
8
8
  using namespace react;
9
9
 
10
- static thread_local bool tls_isOnUIThread = false;
11
-
12
10
  class UISchedulerWrapper : public UIScheduler {
13
11
  private:
14
12
  jni::global_ref<AndroidUIScheduler::javaobject> androidUiScheduler_;
15
13
 
14
+ bool queryIsOnUIThread() const override {
15
+ static const auto method = androidUiScheduler_->getClass()->getMethod<jboolean()>("isOnUIThread");
16
+ return method(androidUiScheduler_);
17
+ }
18
+
16
19
  public:
17
20
  explicit UISchedulerWrapper(jni::global_ref<AndroidUIScheduler::javaobject> androidUiScheduler)
18
21
  : androidUiScheduler_(std::move(androidUiScheduler)) {}
19
22
 
23
+ void triggerUI() override {
24
+ UIScheduler::triggerUI();
25
+ }
26
+
20
27
  void scheduleOnUI(std::function<void()> job) override {
21
- if (tls_isOnUIThread) {
28
+ if (isOnUIThread()) {
22
29
  job();
23
30
  return;
24
31
  }
@@ -29,11 +36,6 @@ class UISchedulerWrapper : public UIScheduler {
29
36
  method(androidUiScheduler_);
30
37
  }
31
38
  }
32
-
33
- void triggerUI() override {
34
- tls_isOnUIThread = true;
35
- UIScheduler::triggerUI();
36
- }
37
39
  };
38
40
 
39
41
  AndroidUIScheduler::AndroidUIScheduler(const jni::alias_ref<AndroidUIScheduler::jhybridobject> &jThis)
@@ -31,6 +31,9 @@ class AndroidUIScheduler(
31
31
 
32
32
  private external fun initHybrid(): HybridData
33
33
 
34
+ @DoNotStrip
35
+ private fun isOnUIThread(): Boolean = UiThreadUtil.isOnUiThread()
36
+
34
37
  external fun triggerUI()
35
38
 
36
39
  external fun invalidate()
@@ -25,7 +25,9 @@ class AnimationFrameQueue(
25
25
  }
26
26
  private val mCallbackPosted = AtomicBoolean()
27
27
  private val mPaused = AtomicBoolean()
28
+ private val mInvalidated = AtomicBoolean()
28
29
  private val mFrameCallbacks = mutableListOf<AnimationFrameCallback>()
30
+ private val mDispatchLock = Any()
29
31
 
30
32
  fun resume() {
31
33
  if (mPaused.getAndSet(false)) {
@@ -44,8 +46,21 @@ class AnimationFrameQueue(
44
46
  }
45
47
  }
46
48
 
49
+ fun invalidate() {
50
+ mInvalidated.set(true)
51
+ removePostedFrameCallback()
52
+ synchronized(mDispatchLock) {
53
+ synchronized(mFrameCallbacks) {
54
+ mFrameCallbacks.clear()
55
+ }
56
+ }
57
+ }
58
+
47
59
  fun requestAnimationFrame(animationFrameCallback: AnimationFrameCallback) {
48
60
  synchronized(mFrameCallbacks) {
61
+ if (mInvalidated.get()) {
62
+ return
63
+ }
49
64
  mFrameCallbacks.add(animationFrameCallback)
50
65
  }
51
66
  scheduleQueueExecution()
@@ -64,6 +79,9 @@ class AnimationFrameQueue(
64
79
 
65
80
  private fun scheduleQueueExecution() {
66
81
  synchronized(mPaused) {
82
+ if (mInvalidated.get()) {
83
+ return
84
+ }
67
85
  if (!mPaused.get() && !mCallbackPosted.getAndSet(true)) {
68
86
  mReactChoreographer.postFrameCallback(
69
87
  ReactChoreographer.CallbackType.NATIVE_ANIMATED_MODULE,
@@ -73,6 +91,15 @@ class AnimationFrameQueue(
73
91
  }
74
92
  }
75
93
 
94
+ private fun removePostedFrameCallback() {
95
+ if (mCallbackPosted.getAndSet(false)) {
96
+ mReactChoreographer.removeFrameCallback(
97
+ ReactChoreographer.CallbackType.NATIVE_ANIMATED_MODULE,
98
+ mChoreographerCallback,
99
+ )
100
+ }
101
+ }
102
+
76
103
  private fun executeQueue(frameTimeNanos: Long) {
77
104
  val currentFrameTimeMs = calculateTimestamp(frameTimeNanos)
78
105
  if (currentFrameTimeMs <= lastFrameTimeMs) {
@@ -83,12 +110,17 @@ class AnimationFrameQueue(
83
110
  return
84
111
  }
85
112
 
86
- val frameCallbacks = pullCallbacks()
87
- mCallbackPosted.set(false)
113
+ synchronized(mDispatchLock) {
114
+ val frameCallbacks = pullCallbacks()
115
+ mCallbackPosted.set(false)
116
+ if (mInvalidated.get()) {
117
+ return
118
+ }
88
119
 
89
- lastFrameTimeMs = currentFrameTimeMs
90
- for (callback in frameCallbacks) {
91
- callback.onAnimationFrame(currentFrameTimeMs)
120
+ lastFrameTimeMs = currentFrameTimeMs
121
+ for (callback in frameCallbacks) {
122
+ callback.onAnimationFrame(currentFrameTimeMs)
123
+ }
92
124
  }
93
125
  }
94
126
 
@@ -171,6 +171,7 @@ class WorkletsModule(
171
171
  mInvalidated = true
172
172
  reactApplicationContext.removeLifecycleEventListener(this)
173
173
  }
174
+ mAnimationFrameQueue.invalidate()
174
175
  if (mHybridData != null && mHybridData!!.isValid) {
175
176
  invalidateCpp()
176
177
  }
@@ -127,6 +127,7 @@ class WorkletsModule(
127
127
  mInvalidated = true
128
128
  reactApplicationContext.removeLifecycleEventListener(this)
129
129
  }
130
+ mAnimationFrameQueue.invalidate()
130
131
  if (mHybridData != null && mHybridData!!.isValid) {
131
132
  invalidateCpp()
132
133
  }
@@ -9,6 +9,9 @@ using namespace worklets;
9
9
  class IOSUIScheduler : public UIScheduler, public std::enable_shared_from_this<IOSUIScheduler> {
10
10
  public:
11
11
  void scheduleOnUI(std::function<void()> job) override;
12
+
13
+ protected:
14
+ bool queryIsOnUIThread() const override;
12
15
  };
13
16
 
14
17
  } // namespace worklets
@@ -5,9 +5,14 @@ namespace worklets {
5
5
  using namespace facebook;
6
6
  using namespace react;
7
7
 
8
+ bool IOSUIScheduler::queryIsOnUIThread() const
9
+ {
10
+ return [NSThread isMainThread];
11
+ }
12
+
8
13
  void IOSUIScheduler::scheduleOnUI(std::function<void()> job)
9
14
  {
10
- if ([NSThread isMainThread]) {
15
+ if (isOnUIThread()) {
11
16
  job();
12
17
  return;
13
18
  }
@@ -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';
8
+ export const jsVersion = '0.12.2';
9
9
  //# sourceMappingURL=jsVersion.js.map
@@ -268,7 +268,7 @@ function cloneNull() {
268
268
  return WorkletsModule.createSerializableNull();
269
269
  }
270
270
  function cloneObjectProperties(value, shouldPersistRemote, depth) {
271
- const clonedProps = {};
271
+ const clonedProps = Object.create(null);
272
272
  for (const [key, element] of Object.entries(value)) {
273
273
  // We don't need to clone __initData field as it contains long strings
274
274
  // representing the worklet code, source map, and location, and we will
@@ -597,7 +597,7 @@ function makeShareableCloneOnUIRecursiveLEGACY(value) {
597
597
  if (__DEV__ && value instanceof Promise) {
598
598
  throw new Error('[Worklets] Promises cannot be converted to serializable.');
599
599
  }
600
- const toAdapt = {};
600
+ const toAdapt = Object.create(null);
601
601
  for (const [key, element] of Object.entries(value)) {
602
602
  toAdapt[key] = cloneRecursive(element);
603
603
  }
@@ -1 +1 @@
1
- {"version":3,"names":["isBundleModeEnabled","registerWorkletStackDetails","jsVersion","logger","getRuntimeKind","RuntimeKind","isWorkletFunction","WorkletsModule","isSynchronizable","serializableMappingCache","serializableMappingFlag","MAGIC_KEY","isHostObject","value","isSerializableRef","__serializableRef","isPlainJSObject","object","Object","getPrototypeOf","prototype","isTurboModuleLike","proto","getFromCache","cached","get","VALID_ARRAY_VIEWS_NAMES","DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD","processedObjectAtThresholdDepth","serializationPathStack","withPathSegment","segment","serialize","push","pop","formatSerializationPath","join","createSerializable","shouldPersistRemote","depth","detectCyclicObject","isFunction","cloneString","cloneNumber","cloneBoolean","cloneBigInt","String","undefined","cloneUndefined","cloneNull","globalThis","WeakRef","deref","Array","isArray","cloneArray","_WORKLETS_BUNDLE_MODE_ENABLED","__bundleData","cloneImport","__remoteFunction","cloneNonWorkletFunction","cloneTurboModuleLike","cloneHostObject","__init","cloneInitializer","__workletContextObjectFactory","cloneContextObject","cloneWorklet","cloneSynchronizable","clonePlainJSObject","Set","cloneSet","Map","cloneMap","RegExp","cloneRegExp","Error","cloneError","ArrayBuffer","cloneArrayBuffer","isView","cloneArrayBufferView","i","customSerializationRegistry","length","determine","pack","cloneCustom","__DEV__","constructorName","constructor","name","path","location","console","warn","imported","source","require","resolveWeak","__customSerializationRegistry","registerCustomSerializable","registrationData","ReactNative","unpack","verifyRegistrationData","some","data","createSerializableString","createSerializableNumber","createSerializableBoolean","createSerializableBigInt","createSerializableUndefined","createSerializableNull","cloneObjectProperties","clonedProps","key","element","entries","__initData","JSON","stringify","createSerializableInitializer","clonedElements","map","index","clone","createSerializableArray","set","freezeObjectInDev","fun","createSerializableNonWorkletFunction","createSerializableHostObject","babelVersion","__pluginVersion","getWorkletCode","__workletHash","__stackDetails","buildClone","createSerializableWorklet","createSerializableTurboModuleLike","workletContextObjectFactory","handle","createSerializableObject","clonedKeys","clonedValues","createSerializableMap","createSerializableSet","createSerializableRegExp","flags","message","stack","createSerializableError","arrayBuffer","createSerializableArrayBuffer","typeName","includes","byteLength","createSerializableArrayBufferView","buffer","byteOffset","createSerializableImport","typeId","packedData","serialized","createCustomSerializable","WORKLET_CODE_THRESHOLD","code","substring","__RUNTIME_KIND","forEach","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","preventExtensions","makeShareableCloneOnUIRecursiveLEGACY","cloneRecursive","_createSerializableHostObject","_createSerializableArray","__synchronizableRef","_createSerializableSynchronizable","values","__workletsModuleProxy","keys","Promise","toAdapt","createSerializableLEGACY","_createSerializableString","_createSerializableNumber","_createSerializableBoolean","_createSerializableBigInt","_createSerializableUndefined","_createSerializableNull","makeShareableCloneOnUIRecursive","makeShareable"],"sourceRoot":"../../../src","sources":["memory/serializable.native.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isBundleModeEnabled","registerWorkletStackDetails","jsVersion","logger","getRuntimeKind","RuntimeKind","isWorkletFunction","WorkletsModule","isSynchronizable","serializableMappingCache","serializableMappingFlag","MAGIC_KEY","isHostObject","value","isSerializableRef","__serializableRef","isPlainJSObject","object","Object","getPrototypeOf","prototype","isTurboModuleLike","proto","getFromCache","cached","get","VALID_ARRAY_VIEWS_NAMES","DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD","processedObjectAtThresholdDepth","serializationPathStack","withPathSegment","segment","serialize","push","pop","formatSerializationPath","join","createSerializable","shouldPersistRemote","depth","detectCyclicObject","isFunction","cloneString","cloneNumber","cloneBoolean","cloneBigInt","String","undefined","cloneUndefined","cloneNull","globalThis","WeakRef","deref","Array","isArray","cloneArray","_WORKLETS_BUNDLE_MODE_ENABLED","__bundleData","cloneImport","__remoteFunction","cloneNonWorkletFunction","cloneTurboModuleLike","cloneHostObject","__init","cloneInitializer","__workletContextObjectFactory","cloneContextObject","cloneWorklet","cloneSynchronizable","clonePlainJSObject","Set","cloneSet","Map","cloneMap","RegExp","cloneRegExp","Error","cloneError","ArrayBuffer","cloneArrayBuffer","isView","cloneArrayBufferView","i","customSerializationRegistry","length","determine","pack","cloneCustom","__DEV__","constructorName","constructor","name","path","location","console","warn","imported","source","require","resolveWeak","__customSerializationRegistry","registerCustomSerializable","registrationData","ReactNative","unpack","verifyRegistrationData","some","data","createSerializableString","createSerializableNumber","createSerializableBoolean","createSerializableBigInt","createSerializableUndefined","createSerializableNull","cloneObjectProperties","clonedProps","create","key","element","entries","__initData","JSON","stringify","createSerializableInitializer","clonedElements","map","index","clone","createSerializableArray","set","freezeObjectInDev","fun","createSerializableNonWorkletFunction","createSerializableHostObject","babelVersion","__pluginVersion","getWorkletCode","__workletHash","__stackDetails","buildClone","createSerializableWorklet","createSerializableTurboModuleLike","workletContextObjectFactory","handle","createSerializableObject","clonedKeys","clonedValues","createSerializableMap","createSerializableSet","createSerializableRegExp","flags","message","stack","createSerializableError","arrayBuffer","createSerializableArrayBuffer","typeName","includes","byteLength","createSerializableArrayBufferView","buffer","byteOffset","createSerializableImport","typeId","packedData","serialized","createCustomSerializable","WORKLET_CODE_THRESHOLD","code","substring","__RUNTIME_KIND","forEach","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","preventExtensions","makeShareableCloneOnUIRecursiveLEGACY","cloneRecursive","_createSerializableHostObject","_createSerializableArray","__synchronizableRef","_createSerializableSynchronizable","values","__workletsModuleProxy","keys","Promise","toAdapt","createSerializableLEGACY","_createSerializableString","_createSerializableNumber","_createSerializableBoolean","_createSerializableBigInt","_createSerializableUndefined","_createSerializableNull","makeShareableCloneOnUIRecursive","makeShareable"],"sourceRoot":"../../../src","sources":["memory/serializable.native.ts"],"mappings":"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","ignoreList":[]}
@@ -19,19 +19,27 @@ export function installSynchronizableUnpacker() {
19
19
  synchronizable.getBlocking = () => {
20
20
  return proxy.synchronizableGetBlocking(synchronizable);
21
21
  };
22
+ const setBlockingValue = newValue => {
23
+ proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
24
+ };
22
25
  synchronizable.setBlocking = valueOrFunction => {
23
- let newValue;
24
26
  if (typeof valueOrFunction === 'function') {
25
27
  const func = valueOrFunction;
26
28
  synchronizable.lock();
27
- const prev = synchronizable.getBlocking();
28
- newValue = func(prev);
29
- proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
30
- synchronizable.unlock();
29
+ if (__DEV__) {
30
+ try {
31
+ const prev = synchronizable.getBlocking();
32
+ setBlockingValue(func(prev));
33
+ } finally {
34
+ synchronizable.unlock();
35
+ }
36
+ } else {
37
+ const prev = synchronizable.getBlocking();
38
+ setBlockingValue(func(prev));
39
+ synchronizable.unlock();
40
+ }
31
41
  } else {
32
- const value = valueOrFunction;
33
- newValue = value;
34
- proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
42
+ setBlockingValue(valueOrFunction);
35
43
  }
36
44
  };
37
45
  synchronizable.lock = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["installSynchronizableUnpacker","serializer","globalThis","__RUNTIME_KIND","_WORKLETS_BUNDLE_MODE_ENABLED","require","createSerializable","value","__serializer","synchronizableUnpacker","synchronizableRef","synchronizable","proxy","__workletsModuleProxy","__synchronizableRef","getDirty","synchronizableGetDirty","getBlocking","synchronizableGetBlocking","setBlocking","valueOrFunction","newValue","func","lock","prev","synchronizableSetBlocking","unlock","synchronizableLock","synchronizableUnlock","__synchronizableUnpacker"],"sourceRoot":"../../../src","sources":["memory/synchronizableUnpacker.native.ts"],"mappings":"AAAA;AACA;AACA;AACA,YAAY;;AAIZ,OAAO,SAASA,6BAA6BA,CAAA,EAAG;EAC9C,SAAS;EACT,oBAAoB;;EACpB;EACA,MAAMC,UAAU,GACdC,UAAU,CAACC,cAAc,KAAK,CAAC,IAAID,UAAU,CAACE,6BAA6B,GACvEC,OAAO,CAAC,gBAAgB,CAAC,CAACC,kBAAkB,GAC3CC,KAAc,IAAKL,UAAU,CAACM,YAAY,CAACD,KAAK,CAAC;EAExD,SAASE,sBAAsBA,CAC7BC,iBAA4C,EACpB;IACxB,MAAMC,cAAc,GAClBD,iBAAsD;IACxD,MAAME,KAAK,GAAGV,UAAU,CAACW,qBAAqB;IAE9CF,cAAc,CAACG,mBAAmB,GAAG,IAAI;IACzCH,cAAc,CAACI,QAAQ,GAAG,MAAM;MAC9B,OAAOH,KAAK,CAACI,sBAAsB,CAACL,cAAc,CAAC;IACrD,CAAC;IACDA,cAAc,CAACM,WAAW,GAAG,MAAM;MACjC,OAAOL,KAAK,CAACM,yBAAyB,CAACP,cAAc,CAAC;IACxD,CAAC;IACDA,cAAc,CAACQ,WAAW,GACxBC,eAAoD,IACjD;MACH,IAAIC,QAAgB;MACpB,IAAI,OAAOD,eAAe,KAAK,UAAU,EAAE;QACzC,MAAME,IAAI,GAAGF,eAA2C;QACxDT,cAAc,CAACY,IAAI,CAAC,CAAC;QACrB,MAAMC,IAAI,GAAGb,cAAc,CAACM,WAAW,CAAC,CAAC;QACzCI,QAAQ,GAAGC,IAAI,CAACE,IAAI,CAAC;QAErBZ,KAAK,CAACa,yBAAyB,CAACd,cAAc,EAAEV,UAAU,CAACoB,QAAQ,CAAC,CAAC;QAErEV,cAAc,CAACe,MAAM,CAAC,CAAC;MACzB,CAAC,MAAM;QACL,MAAMnB,KAAK,GAAGa,eAAe;QAC7BC,QAAQ,GAAGd,KAAK;QAChBK,KAAK,CAACa,yBAAyB,CAACd,cAAc,EAAEV,UAAU,CAACoB,QAAQ,CAAC,CAAC;MACvE;IACF,CAAC;IACDV,cAAc,CAACY,IAAI,GAAG,MAAM;MAC1BX,KAAK,CAACe,kBAAkB,CAAChB,cAAc,CAAC;IAC1C,CAAC;IACDA,cAAc,CAACe,MAAM,GAAG,MAAM;MAC5Bd,KAAK,CAACgB,oBAAoB,CAACjB,cAAc,CAAC;IAC5C,CAAC;IAED,OAAOA,cAAc;EACvB;EAEAT,UAAU,CAAC2B,wBAAwB,GAAGpB,sBAAsB;AAC9D","ignoreList":[]}
1
+ {"version":3,"names":["installSynchronizableUnpacker","serializer","globalThis","__RUNTIME_KIND","_WORKLETS_BUNDLE_MODE_ENABLED","require","createSerializable","value","__serializer","synchronizableUnpacker","synchronizableRef","synchronizable","proxy","__workletsModuleProxy","__synchronizableRef","getDirty","synchronizableGetDirty","getBlocking","synchronizableGetBlocking","setBlockingValue","newValue","synchronizableSetBlocking","setBlocking","valueOrFunction","func","lock","__DEV__","prev","unlock","synchronizableLock","synchronizableUnlock","__synchronizableUnpacker"],"sourceRoot":"../../../src","sources":["memory/synchronizableUnpacker.native.ts"],"mappings":"AAAA;AACA;AACA;AACA,YAAY;;AAIZ,OAAO,SAASA,6BAA6BA,CAAA,EAAG;EAC9C,SAAS;EACT,oBAAoB;;EACpB;EACA,MAAMC,UAAU,GACdC,UAAU,CAACC,cAAc,KAAK,CAAC,IAAID,UAAU,CAACE,6BAA6B,GACvEC,OAAO,CAAC,gBAAgB,CAAC,CAACC,kBAAkB,GAC3CC,KAAc,IAAKL,UAAU,CAACM,YAAY,CAACD,KAAK,CAAC;EAExD,SAASE,sBAAsBA,CAC7BC,iBAA4C,EACpB;IACxB,MAAMC,cAAc,GAClBD,iBAAsD;IACxD,MAAME,KAAK,GAAGV,UAAU,CAACW,qBAAqB;IAE9CF,cAAc,CAACG,mBAAmB,GAAG,IAAI;IACzCH,cAAc,CAACI,QAAQ,GAAG,MAAM;MAC9B,OAAOH,KAAK,CAACI,sBAAsB,CAACL,cAAc,CAAC;IACrD,CAAC;IACDA,cAAc,CAACM,WAAW,GAAG,MAAM;MACjC,OAAOL,KAAK,CAACM,yBAAyB,CAACP,cAAc,CAAC;IACxD,CAAC;IACD,MAAMQ,gBAAgB,GAAIC,QAAgB,IAAK;MAC7CR,KAAK,CAACS,yBAAyB,CAACV,cAAc,EAAEV,UAAU,CAACmB,QAAQ,CAAC,CAAC;IACvE,CAAC;IACDT,cAAc,CAACW,WAAW,GACxBC,eAAoD,IACjD;MACH,IAAI,OAAOA,eAAe,KAAK,UAAU,EAAE;QACzC,MAAMC,IAAI,GAAGD,eAA2C;QACxDZ,cAAc,CAACc,IAAI,CAAC,CAAC;QACrB,IAAIC,OAAO,EAAE;UACX,IAAI;YACF,MAAMC,IAAI,GAAGhB,cAAc,CAACM,WAAW,CAAC,CAAC;YACzCE,gBAAgB,CAACK,IAAI,CAACG,IAAI,CAAC,CAAC;UAC9B,CAAC,SAAS;YACRhB,cAAc,CAACiB,MAAM,CAAC,CAAC;UACzB;QACF,CAAC,MAAM;UACL,MAAMD,IAAI,GAAGhB,cAAc,CAACM,WAAW,CAAC,CAAC;UACzCE,gBAAgB,CAACK,IAAI,CAACG,IAAI,CAAC,CAAC;UAC5BhB,cAAc,CAACiB,MAAM,CAAC,CAAC;QACzB;MACF,CAAC,MAAM;QACLT,gBAAgB,CAACI,eAAe,CAAC;MACnC;IACF,CAAC;IACDZ,cAAc,CAACc,IAAI,GAAG,MAAM;MAC1Bb,KAAK,CAACiB,kBAAkB,CAAClB,cAAc,CAAC;IAC1C,CAAC;IACDA,cAAc,CAACiB,MAAM,GAAG,MAAM;MAC5BhB,KAAK,CAACkB,oBAAoB,CAACnB,cAAc,CAAC;IAC5C,CAAC;IAED,OAAOA,cAAc;EACvB;EAEAT,UAAU,CAAC6B,wBAAwB,GAAGtB,sBAAsB;AAC9D","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";
6
+ export declare const jsVersion = "0.12.2";
7
7
  //# sourceMappingURL=jsVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializable.native.d.ts","sourceRoot":"","sources":["../../../src/memory/serializable.native.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAEhB,eAAe,EAGhB,MAAM,SAAS,CAAC;AAajB,wBAAgB,iBAAiB,CAAC,MAAM,GAAG,OAAO,EAChD,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC,CAQlC;AA6DD,wBAAgB,kBAAkB,CAAC,MAAM,EACvC,KAAK,EAAE,MAAM,EACb,mBAAmB,UAAQ,EAC3B,KAAK,SAAI,GACR,eAAe,CAAC,MAAM,CAAC,CAkIzB;yBAtIe,kBAAkB;;;;;;AAsJlC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,QA+BpD;AA+cD,iBAAS,qCAAqC,CAAC,MAAM,EACnD,KAAK,EAAE,MAAM,GACZ,mBAAmB,CAAC,MAAM,CAAC,CA8J7B;AAED,wDAAwD;AACxD,eAAO,MAAM,+BAA+B,EAIvC,OAAO,qCAAqC,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAY1E"}
1
+ {"version":3,"file":"serializable.native.d.ts","sourceRoot":"","sources":["../../../src/memory/serializable.native.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAEhB,eAAe,EAGhB,MAAM,SAAS,CAAC;AAajB,wBAAgB,iBAAiB,CAAC,MAAM,GAAG,OAAO,EAChD,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC,CAQlC;AA6DD,wBAAgB,kBAAkB,CAAC,MAAM,EACvC,KAAK,EAAE,MAAM,EACb,mBAAmB,UAAQ,EAC3B,KAAK,SAAI,GACR,eAAe,CAAC,MAAM,CAAC,CAkIzB;yBAtIe,kBAAkB;;;;;;AAsJlC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,QA+BpD;AA+cD,iBAAS,qCAAqC,CAAC,MAAM,EACnD,KAAK,EAAE,MAAM,GACZ,mBAAmB,CAAC,MAAM,CAAC,CAiK7B;AAED,wDAAwD;AACxD,eAAO,MAAM,+BAA+B,EAIvC,OAAO,qCAAqC,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAY1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"synchronizableUnpacker.native.d.ts","sourceRoot":"","sources":["../../../src/memory/synchronizableUnpacker.native.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEtE,wBAAgB,6BAA6B,SAqD5C;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAC1C,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC,KACzC,cAAc,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"synchronizableUnpacker.native.d.ts","sourceRoot":"","sources":["../../../src/memory/synchronizableUnpacker.native.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEtE,wBAAgB,6BAA6B,SA2D5C;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAC1C,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC,KACzC,cAAc,CAAC,MAAM,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-worklets",
3
- "version": "0.12.0",
3
+ "version": "0.12.2",
4
4
  "description": "The React Native multithreading library",
5
5
  "keywords": [
6
6
  "react-native",
@@ -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';
8
+ export const jsVersion = '0.12.2';
@@ -374,7 +374,7 @@ function cloneObjectProperties<T extends object>(
374
374
  shouldPersistRemote: boolean,
375
375
  depth: number
376
376
  ): Record<string, unknown> {
377
- const clonedProps: Record<string, unknown> = {};
377
+ const clonedProps: Record<string, unknown> = Object.create(null);
378
378
  for (const [key, element] of Object.entries(value)) {
379
379
  // We don't need to clone __initData field as it contains long strings
380
380
  // representing the worklet code, source map, and location, and we will
@@ -878,7 +878,10 @@ function makeShareableCloneOnUIRecursiveLEGACY<TValue>(
878
878
  '[Worklets] Promises cannot be converted to serializable.'
879
879
  );
880
880
  }
881
- const toAdapt: Record<string, FlatSerializableRef<TValue>> = {};
881
+ const toAdapt: Record<
882
+ string,
883
+ FlatSerializableRef<TValue>
884
+ > = Object.create(null);
882
885
  for (const [key, element] of Object.entries(value)) {
883
886
  toAdapt[key] = cloneRecursive(element);
884
887
  }
@@ -28,23 +28,29 @@ export function installSynchronizableUnpacker() {
28
28
  synchronizable.getBlocking = () => {
29
29
  return proxy.synchronizableGetBlocking(synchronizable);
30
30
  };
31
+ const setBlockingValue = (newValue: TValue) => {
32
+ proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
33
+ };
31
34
  synchronizable.setBlocking = (
32
35
  valueOrFunction: TValue | ((prev: TValue) => TValue)
33
36
  ) => {
34
- let newValue: TValue;
35
37
  if (typeof valueOrFunction === 'function') {
36
38
  const func = valueOrFunction as (prev: TValue) => TValue;
37
39
  synchronizable.lock();
38
- const prev = synchronizable.getBlocking();
39
- newValue = func(prev);
40
-
41
- proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
42
-
43
- synchronizable.unlock();
40
+ if (__DEV__) {
41
+ try {
42
+ const prev = synchronizable.getBlocking();
43
+ setBlockingValue(func(prev));
44
+ } finally {
45
+ synchronizable.unlock();
46
+ }
47
+ } else {
48
+ const prev = synchronizable.getBlocking();
49
+ setBlockingValue(func(prev));
50
+ synchronizable.unlock();
51
+ }
44
52
  } else {
45
- const value = valueOrFunction;
46
- newValue = value;
47
- proxy.synchronizableSetBlocking(synchronizable, serializer(newValue));
53
+ setBlockingValue(valueOrFunction);
48
54
  }
49
55
  };
50
56
  synchronizable.lock = () => {