react-native-worklets 0.3.0 → 0.4.0-bundle-mode-preview-1

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 (202) hide show
  1. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +532 -0
  2. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.h +88 -0
  3. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +40 -122
  4. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +16 -40
  5. package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +2 -1
  6. package/Common/cpp/worklets/Resources/ValueUnpacker.cpp +1 -1
  7. package/Common/cpp/worklets/SharedItems/Shareables.cpp +200 -24
  8. package/Common/cpp/worklets/SharedItems/Shareables.h +108 -7
  9. package/Common/cpp/worklets/Tools/JSLogger.cpp +56 -4
  10. package/Common/cpp/worklets/Tools/JSLogger.h +17 -0
  11. package/Common/cpp/worklets/Tools/JSScheduler.cpp +12 -0
  12. package/Common/cpp/worklets/Tools/JSScheduler.h +10 -2
  13. package/Common/cpp/worklets/Tools/SingleInstanceChecker.h +3 -1
  14. package/Common/cpp/worklets/Tools/WorkletsJSIUtils.cpp +19 -1
  15. package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +12 -3
  16. package/Common/cpp/worklets/Tools/WorkletsSystraceSection.h +136 -0
  17. package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +4 -4
  18. package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +1 -1
  19. package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +85 -0
  20. package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +55 -0
  21. package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.h +8 -4
  22. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +70 -24
  23. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +24 -4
  24. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +53 -1
  25. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +2 -1
  26. package/RNWorklets.podspec +9 -4
  27. package/android/CMakeLists.txt +14 -36
  28. package/android/build.gradle +16 -33
  29. package/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java +149 -0
  30. package/android/src/{main/java → legacyBundling}/com/swmansion/worklets/WorkletsModule.java +17 -2
  31. package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +49 -8
  32. package/android/src/main/cpp/worklets/android/WorkletsModule.h +17 -2
  33. package/android/src/main/java/com/swmansion/worklets/WorkletsPackage.java +1 -1
  34. package/apple/worklets/apple/WorkletsMessageThread.mm +4 -0
  35. package/apple/worklets/apple/WorkletsModule.h +16 -1
  36. package/apple/worklets/apple/WorkletsModule.mm +29 -2
  37. package/bundleMode/index.d.ts +3 -0
  38. package/bundleMode/index.js +55 -0
  39. package/lib/module/PlatformChecker/PlatformChecker.js +8 -0
  40. package/lib/module/PlatformChecker/PlatformChecker.js.map +1 -0
  41. package/lib/module/PlatformChecker/index.js +17 -0
  42. package/lib/module/PlatformChecker/index.js.map +1 -0
  43. package/lib/module/WorkletsError.js +2 -1
  44. package/lib/module/WorkletsError.js.map +1 -1
  45. package/lib/module/WorkletsModule/JSWorklets.js +36 -4
  46. package/lib/module/WorkletsModule/JSWorklets.js.map +1 -1
  47. package/lib/module/WorkletsModule/NativeWorklets.js +35 -15
  48. package/lib/module/WorkletsModule/NativeWorklets.js.map +1 -1
  49. package/lib/module/WorkletsModule/workletsModuleInstance.js +2 -2
  50. package/lib/module/WorkletsModule/workletsModuleInstance.js.map +1 -1
  51. package/lib/module/bundleUnpacker.js +47 -0
  52. package/lib/module/bundleUnpacker.js.map +1 -0
  53. package/lib/module/callGuard.js +30 -0
  54. package/lib/module/callGuard.js.map +1 -0
  55. package/lib/module/errors.js +30 -11
  56. package/lib/module/errors.js.map +1 -1
  57. package/lib/module/index.js +10 -7
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/initializers.js +123 -103
  60. package/lib/module/initializers.js.map +1 -1
  61. package/lib/module/logger.js +15 -0
  62. package/lib/module/logger.js.map +1 -0
  63. package/lib/module/privateGlobals.d.js +0 -1
  64. package/lib/module/privateGlobals.d.js.map +1 -1
  65. package/lib/module/publicGlobals.js +5 -0
  66. package/lib/module/publicGlobals.js.map +1 -0
  67. package/lib/module/runLoop/mockedRequestAnimationFrame.js.map +1 -0
  68. package/lib/module/runLoop/requestAnimationFrame.js +50 -0
  69. package/lib/module/runLoop/requestAnimationFrame.js.map +1 -0
  70. package/lib/module/runLoop/setImmediatePolyfill.js +15 -0
  71. package/lib/module/runLoop/setImmediatePolyfill.js.map +1 -0
  72. package/lib/module/runLoop/setIntervalPolyfill.js +26 -0
  73. package/lib/module/runLoop/setIntervalPolyfill.js.map +1 -0
  74. package/lib/module/runLoop/setTimeoutPolyfill.js +32 -0
  75. package/lib/module/runLoop/setTimeoutPolyfill.js.map +1 -0
  76. package/lib/module/runtimes.js +6 -10
  77. package/lib/module/runtimes.js.map +1 -1
  78. package/lib/module/shareableMappingCache.js +1 -3
  79. package/lib/module/shareableMappingCache.js.map +1 -1
  80. package/lib/module/shareables.js +116 -34
  81. package/lib/module/shareables.js.map +1 -1
  82. package/lib/module/specs/index.js +2 -2
  83. package/lib/module/specs/index.js.map +1 -1
  84. package/lib/module/threads.js +49 -54
  85. package/lib/module/threads.js.map +1 -1
  86. package/lib/module/valueUnpacker.js +3 -3
  87. package/lib/module/valueUnpacker.js.map +1 -1
  88. package/lib/module/workletRuntimeEntry.js +30 -0
  89. package/lib/module/workletRuntimeEntry.js.map +1 -0
  90. package/lib/typescript/PlatformChecker/PlatformChecker.d.ts +5 -0
  91. package/lib/typescript/PlatformChecker/PlatformChecker.d.ts.map +1 -0
  92. package/lib/typescript/PlatformChecker/index.d.ts +10 -0
  93. package/lib/typescript/PlatformChecker/index.d.ts.map +1 -0
  94. package/lib/typescript/WorkletsError.d.ts.map +1 -1
  95. package/lib/typescript/WorkletsModule/JSWorklets.d.ts.map +1 -1
  96. package/lib/typescript/WorkletsModule/NativeWorklets.d.ts +1 -3
  97. package/lib/typescript/WorkletsModule/NativeWorklets.d.ts.map +1 -1
  98. package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts +1 -1
  99. package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts.map +1 -1
  100. package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts +1 -1
  101. package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts.map +1 -1
  102. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +12 -2
  103. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -1
  104. package/lib/typescript/bundleUnpacker.d.ts +7 -0
  105. package/lib/typescript/bundleUnpacker.d.ts.map +1 -0
  106. package/lib/typescript/callGuard.d.ts +4 -0
  107. package/lib/typescript/callGuard.d.ts.map +1 -0
  108. package/lib/typescript/errors.d.ts +13 -5
  109. package/lib/typescript/errors.d.ts.map +1 -1
  110. package/lib/typescript/index.d.ts +1 -2
  111. package/lib/typescript/index.d.ts.map +1 -1
  112. package/lib/typescript/initializers.d.ts +16 -5
  113. package/lib/typescript/initializers.d.ts.map +1 -1
  114. package/lib/typescript/logger.d.ts +5 -0
  115. package/lib/typescript/logger.d.ts.map +1 -0
  116. package/lib/typescript/publicGlobals.d.ts +22 -0
  117. package/lib/typescript/publicGlobals.d.ts.map +1 -0
  118. package/lib/typescript/runLoop/mockedRequestAnimationFrame.d.ts.map +1 -0
  119. package/lib/typescript/runLoop/requestAnimationFrame.d.ts.map +1 -0
  120. package/lib/typescript/runLoop/setImmediatePolyfill.d.ts +2 -0
  121. package/lib/typescript/runLoop/setImmediatePolyfill.d.ts.map +1 -0
  122. package/lib/typescript/runLoop/setIntervalPolyfill.d.ts +2 -0
  123. package/lib/typescript/runLoop/setIntervalPolyfill.d.ts.map +1 -0
  124. package/lib/typescript/runLoop/setTimeoutPolyfill.d.ts +2 -0
  125. package/lib/typescript/runLoop/setTimeoutPolyfill.d.ts.map +1 -0
  126. package/lib/typescript/runtimes.d.ts.map +1 -1
  127. package/lib/typescript/shareableMappingCache.d.ts.map +1 -1
  128. package/lib/typescript/shareables.d.ts +3 -2
  129. package/lib/typescript/shareables.d.ts.map +1 -1
  130. package/lib/typescript/specs/NativeWorkletsModule.d.ts +1 -1
  131. package/lib/typescript/specs/NativeWorkletsModule.d.ts.map +1 -1
  132. package/lib/typescript/specs/index.d.ts +2 -2
  133. package/lib/typescript/specs/index.d.ts.map +1 -1
  134. package/lib/typescript/threads.d.ts.map +1 -1
  135. package/lib/typescript/workletRuntimeEntry.d.ts +14 -0
  136. package/lib/typescript/workletRuntimeEntry.d.ts.map +1 -0
  137. package/lib/typescript/workletTypes.d.ts +14 -3
  138. package/lib/typescript/workletTypes.d.ts.map +1 -1
  139. package/package.json +17 -8
  140. package/plugin/index.js +145 -52
  141. package/scripts/worklets_utils.rb +9 -0
  142. package/src/PlatformChecker/PlatformChecker.ts +7 -0
  143. package/src/PlatformChecker/index.ts +29 -0
  144. package/src/WorkletsError.ts +2 -1
  145. package/src/WorkletsModule/JSWorklets.ts +71 -4
  146. package/src/WorkletsModule/NativeWorklets.ts +83 -21
  147. package/src/WorkletsModule/workletsModuleInstance.ts +2 -2
  148. package/src/WorkletsModule/workletsModuleProxy.ts +49 -1
  149. package/src/bundleUnpacker.ts +75 -0
  150. package/src/callGuard.ts +33 -0
  151. package/src/errors.ts +35 -18
  152. package/src/index.ts +12 -12
  153. package/src/initializers.ts +143 -113
  154. package/src/logger.ts +16 -0
  155. package/src/privateGlobals.d.ts +22 -6
  156. package/src/publicGlobals.ts +26 -0
  157. package/src/runLoop/requestAnimationFrame.ts +67 -0
  158. package/src/runLoop/setImmediatePolyfill.ts +20 -0
  159. package/src/runLoop/setIntervalPolyfill.ts +38 -0
  160. package/src/runLoop/setTimeoutPolyfill.ts +40 -0
  161. package/src/runtimes.ts +6 -11
  162. package/src/shareableMappingCache.ts +1 -3
  163. package/src/shareables.ts +179 -65
  164. package/src/specs/NativeWorkletsModule.ts +1 -1
  165. package/src/specs/index.ts +5 -2
  166. package/src/threads.ts +75 -65
  167. package/src/valueUnpacker.ts +3 -3
  168. package/src/workletRuntimeEntry.ts +30 -0
  169. package/src/workletTypes.ts +22 -5
  170. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -139
  171. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -61
  172. package/android/src/paper/com/swmansion/worklets/NativeWorkletsModuleSpec.java +0 -26
  173. package/lib/module/PlatformChecker.js +0 -26
  174. package/lib/module/PlatformChecker.js.map +0 -1
  175. package/lib/module/animationFrameQueue/mockedRequestAnimationFrame.js.map +0 -1
  176. package/lib/module/animationFrameQueue/requestAnimationFrame.js +0 -36
  177. package/lib/module/animationFrameQueue/requestAnimationFrame.js.map +0 -1
  178. package/lib/module/logger/LogBox.js +0 -15
  179. package/lib/module/logger/LogBox.js.map +0 -1
  180. package/lib/module/logger/index.js +0 -5
  181. package/lib/module/logger/index.js.map +0 -1
  182. package/lib/module/logger/logger.js +0 -137
  183. package/lib/module/logger/logger.js.map +0 -1
  184. package/lib/typescript/PlatformChecker.d.ts +0 -6
  185. package/lib/typescript/PlatformChecker.d.ts.map +0 -1
  186. package/lib/typescript/animationFrameQueue/mockedRequestAnimationFrame.d.ts.map +0 -1
  187. package/lib/typescript/animationFrameQueue/requestAnimationFrame.d.ts.map +0 -1
  188. package/lib/typescript/logger/LogBox.d.ts +0 -32
  189. package/lib/typescript/logger/LogBox.d.ts.map +0 -1
  190. package/lib/typescript/logger/index.d.ts +0 -3
  191. package/lib/typescript/logger/index.d.ts.map +0 -1
  192. package/lib/typescript/logger/logger.d.ts +0 -52
  193. package/lib/typescript/logger/logger.d.ts.map +0 -1
  194. package/src/PlatformChecker.ts +0 -30
  195. package/src/animationFrameQueue/requestAnimationFrame.ts +0 -41
  196. package/src/logger/LogBox.ts +0 -55
  197. package/src/logger/index.ts +0 -3
  198. package/src/logger/logger.ts +0 -155
  199. /package/lib/module/{animationFrameQueue → runLoop}/mockedRequestAnimationFrame.js +0 -0
  200. /package/lib/typescript/{animationFrameQueue → runLoop}/mockedRequestAnimationFrame.d.ts +0 -0
  201. /package/lib/typescript/{animationFrameQueue → runLoop}/requestAnimationFrame.d.ts +0 -0
  202. /package/src/{animationFrameQueue → runLoop}/mockedRequestAnimationFrame.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["mockedRequestAnimationFrame","setupRequestAnimationFrame","reportFatalErrorOnJS","DEFAULT_LOGGER_CONFIG","logToLogBoxAndConsole","registerLoggerConfig","replaceLoggerImplementation","isJest","isWeb","shouldBeUseWeb","executeOnUIRuntimeSync","runOnJS","setupMicrotasks","isWorkletFunction","registerWorkletsError","WorkletsError","IS_JEST","SHOULD_BE_USE_WEB","overrideLogFunctionImplementation","data","global","_WORKLET","_log","console","log","_getAnimationTimestamp","performance","now","__DEV__","testWorklet","callGuardDEV","fn","args","e","__ErrorUtils","reportFatalError","setupCallGuard","__callGuardDEV","error","message","moduleName","stack","createMemorySafeCapturableConsole","consoleCopy","Object","fromEntries","entries","map","methodName","method","methodWrapper","name","defineProperty","value","writable","capturableConsole","setupConsole","assert","debug","warn","info","initializeUIRuntime","WorkletsModule","globalThis","requestAnimationFrame"],"sourceRoot":"../../src","sources":["initializers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["bundleValueUnpacker","setupCallGuard","registerReportFatalRemoteError","IS_JEST","SHOULD_BE_USE_WEB","mockedRequestAnimationFrame","setupRequestAnimationFrame","setupSetImmediate","setupSetInterval","setupSetTimeout","executeOnUIRuntimeSync","runOnJS","setupMicrotasks","isWorkletFunction","registerWorkletsError","WorkletsError","WorkletsModule","capturableConsole","getMemorySafeCapturableConsole","consoleCopy","Object","fromEntries","entries","console","map","methodName","method","methodWrapper","args","name","defineProperty","value","writable","setupConsole","boundCapturableConsole","globalThis","assert","debug","log","warn","error","info","initialized","init","initializeRuntime","initializeRuntimeOnWeb","_WORKLET","initializeWorkletRuntime","initializeRNRuntime","installRNBindingsOnUIRuntime","_WORKLETS_BUNDLE_MODE","__valueUnpacker","__DEV__","testWorklet","Refresh","Proxy","get","__r","_log","_getAnimationTimestamp","performance","now","requestAnimationFrame","runtimeBoundCapturableConsole"],"sourceRoot":"../../src","sources":["initializers.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ const PREFIX = '[Worklets]';
4
+ function formatMessage(message) {
5
+ return `${PREFIX} ${message}`;
6
+ }
7
+ export const logger = {
8
+ warn(message) {
9
+ console.warn(formatMessage(message));
10
+ },
11
+ error(message) {
12
+ console.error(formatMessage(message));
13
+ }
14
+ };
15
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PREFIX","formatMessage","message","logger","warn","console","error"],"sourceRoot":"../../src","sources":["logger.ts"],"mappings":"AAAA,YAAY;;AAEZ,MAAMA,MAAM,GAAG,YAAY;AAE3B,SAASC,aAAaA,CAACC,OAAe,EAAE;EACtC,OAAO,GAAGF,MAAM,IAAIE,OAAO,EAAE;AAC/B;AAEA,OAAO,MAAMC,MAAM,GAAG;EACpBC,IAAIA,CAACF,OAAe,EAAE;IACpBG,OAAO,CAACD,IAAI,CAACH,aAAa,CAACC,OAAO,CAAC,CAAC;EACtC,CAAC;EACDI,KAAKA,CAACJ,OAAe,EAAE;IACrBG,OAAO,CAACC,KAAK,CAACL,aAAa,CAACC,OAAO,CAAC,CAAC;EACvC;AACF,CAAC","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  /* eslint-disable reanimated/use-global-this */
2
- /* eslint-disable no-var */
3
2
  'use strict';
4
3
 
5
4
  // This file works by accident - currently Builder Bob doesn't move `.d.ts` files to output types.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["privateGlobals.d.ts"],"mappings":"AAAA;AACA;AACA,YAAY;;AAEZ;AACA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["privateGlobals.d.ts"],"mappings":"AAAA;AACA,YAAY;;AAEZ;AACA;AAAA","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ /* eslint-disable reanimated/use-global-this */
4
+ export {};
5
+ //# sourceMappingURL=publicGlobals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["publicGlobals.ts"],"mappings":"AAAA,YAAY;;AACZ;AACA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mockedRequestAnimationFrame","callback","setTimeout","performance","now"],"sourceRoot":"../../../src","sources":["runLoop/mockedRequestAnimationFrame.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,OAAO,SAASA,2BAA2BA,CACzCC,QAAqC,EACN;EAC/B,OAAOC,UAAU,CAAC,MAAMD,QAAQ,CAACE,WAAW,CAACC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ import { callMicrotasks } from "../threads.js";
4
+ export function setupRequestAnimationFrame() {
5
+ 'worklet';
6
+
7
+ const nativeRequestAnimationFrame = globalThis.requestAnimationFrame;
8
+ let animationFrameCallbacks = [];
9
+ let callbacksBegin = 0;
10
+ let callbacksEnd = 0;
11
+ let flushedCallbacks = animationFrameCallbacks;
12
+ let flushedCallbacksBegin = 0;
13
+ let flushedCallbacksEnd = 0;
14
+ let flushRequested = false;
15
+ globalThis.__flushAnimationFrame = timestamp => {
16
+ globalThis.__frameTimestamp = timestamp;
17
+ flushedCallbacks = animationFrameCallbacks;
18
+ animationFrameCallbacks = [];
19
+ flushedCallbacksBegin = callbacksBegin;
20
+ flushedCallbacksEnd = callbacksEnd;
21
+ callbacksBegin = callbacksEnd;
22
+ flushRequested = false;
23
+ for (const callback of flushedCallbacks) {
24
+ callback(timestamp);
25
+ }
26
+ flushedCallbacksBegin = callbacksEnd;
27
+ callMicrotasks();
28
+ globalThis.__frameTimestamp = undefined;
29
+ };
30
+ globalThis.requestAnimationFrame = callback => {
31
+ const handle = callbacksEnd++;
32
+ animationFrameCallbacks.push(callback);
33
+ if (!flushRequested) {
34
+ flushRequested = true;
35
+ nativeRequestAnimationFrame(globalThis.__flushAnimationFrame);
36
+ }
37
+ return handle;
38
+ };
39
+ globalThis.cancelAnimationFrame = handle => {
40
+ if (handle < flushedCallbacksBegin || handle >= callbacksEnd) {
41
+ return;
42
+ }
43
+ if (handle < flushedCallbacksEnd) {
44
+ flushedCallbacks[handle - flushedCallbacksBegin] = () => {};
45
+ } else {
46
+ animationFrameCallbacks[handle - callbacksBegin] = () => {};
47
+ }
48
+ };
49
+ }
50
+ //# sourceMappingURL=requestAnimationFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["callMicrotasks","setupRequestAnimationFrame","nativeRequestAnimationFrame","globalThis","requestAnimationFrame","animationFrameCallbacks","callbacksBegin","callbacksEnd","flushedCallbacks","flushedCallbacksBegin","flushedCallbacksEnd","flushRequested","__flushAnimationFrame","timestamp","__frameTimestamp","callback","undefined","handle","push","cancelAnimationFrame"],"sourceRoot":"../../../src","sources":["runLoop/requestAnimationFrame.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,cAAc,QAAQ,eAAY;AAE3C,OAAO,SAASC,0BAA0BA,CAAA,EAAG;EAC3C,SAAS;;EACT,MAAMC,2BAA2B,GAAGC,UAAU,CAACC,qBAAqB;EAEpE,IAAIC,uBAAwD,GAAG,EAAE;EACjE,IAAIC,cAAc,GAAG,CAAC;EACtB,IAAIC,YAAY,GAAG,CAAC;EAEpB,IAAIC,gBAAgB,GAAGH,uBAAuB;EAC9C,IAAII,qBAAqB,GAAG,CAAC;EAC7B,IAAIC,mBAAmB,GAAG,CAAC;EAE3B,IAAIC,cAAc,GAAG,KAAK;EAE1BR,UAAU,CAACS,qBAAqB,GAAIC,SAAiB,IAAK;IACxDV,UAAU,CAACW,gBAAgB,GAAGD,SAAS;IAEvCL,gBAAgB,GAAGH,uBAAuB;IAC1CA,uBAAuB,GAAG,EAAE;IAE5BI,qBAAqB,GAAGH,cAAc;IACtCI,mBAAmB,GAAGH,YAAY;IAClCD,cAAc,GAAGC,YAAY;IAE7BI,cAAc,GAAG,KAAK;IAEtB,KAAK,MAAMI,QAAQ,IAAIP,gBAAgB,EAAE;MACvCO,QAAQ,CAACF,SAAS,CAAC;IACrB;IAEAJ,qBAAqB,GAAGF,YAAY;IAEpCP,cAAc,CAAC,CAAC;IAEhBG,UAAU,CAACW,gBAAgB,GAAGE,SAAS;EACzC,CAAC;EAEDb,UAAU,CAACC,qBAAqB,GAC9BW,QAAqC,IAC1B;IACX,MAAME,MAAM,GAAGV,YAAY,EAAE;IAE7BF,uBAAuB,CAACa,IAAI,CAACH,QAAQ,CAAC;IACtC,IAAI,CAACJ,cAAc,EAAE;MACnBA,cAAc,GAAG,IAAI;MAErBT,2BAA2B,CAACC,UAAU,CAACS,qBAAqB,CAAC;IAC/D;IACA,OAAOK,MAAM;EACf,CAAC;EAEDd,UAAU,CAACgB,oBAAoB,GAAIF,MAAc,IAAK;IACpD,IAAIA,MAAM,GAAGR,qBAAqB,IAAIQ,MAAM,IAAIV,YAAY,EAAE;MAC5D;IACF;IAEA,IAAIU,MAAM,GAAGP,mBAAmB,EAAE;MAChCF,gBAAgB,CAACS,MAAM,GAAGR,qBAAqB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7D,CAAC,MAAM;MACLJ,uBAAuB,CAACY,MAAM,GAAGX,cAAc,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7D;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ export function setupSetImmediate() {
4
+ 'worklet';
5
+
6
+ const setImmediatePolyfill = (callback, ...args) => {
7
+ return setTimeout(callback, 0, ...args);
8
+ };
9
+ const clearImmediatePolyfill = immediateHandle => {
10
+ clearTimeout(immediateHandle);
11
+ };
12
+ globalThis.setImmediate = setImmediatePolyfill;
13
+ globalThis.clearImmediate = clearImmediatePolyfill;
14
+ }
15
+ //# sourceMappingURL=setImmediatePolyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["setupSetImmediate","setImmediatePolyfill","callback","args","setTimeout","clearImmediatePolyfill","immediateHandle","clearTimeout","globalThis","setImmediate","clearImmediate"],"sourceRoot":"../../../src","sources":["runLoop/setImmediatePolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,iBAAiBA,CAAA,EAAG;EAClC,SAAS;;EAET,MAAMC,oBAAoB,GAAGA,CAC3BC,QAAsC,EACtC,GAAGC,IAAe,KACf;IACH,OAAOC,UAAU,CAACF,QAAQ,EAAE,CAAC,EAAE,GAAGC,IAAI,CAAC;EACzC,CAAC;EAED,MAAME,sBAAsB,GAAIC,eAAuB,IAAK;IAC1DC,YAAY,CAACD,eAAe,CAAC;EAC/B,CAAC;EAEDE,UAAU,CAACC,YAAY,GACrBR,oBAAsD;EACxDO,UAAU,CAACE,cAAc,GAAGL,sBAA+C;AAC7E","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ export function setupSetInterval() {
4
+ 'worklet';
5
+
6
+ const intervalHandleToTimeoutHandle = new Map();
7
+ const setIntervalPolyfill = (callback, delay = 0, ...args) => {
8
+ let intervalHandle = 0;
9
+ const repeatingCallback = () => {
10
+ const timeoutHandle = setTimeout(repeatingCallback, delay);
11
+ intervalHandleToTimeoutHandle.set(intervalHandle, timeoutHandle);
12
+ callback(...args);
13
+ };
14
+ intervalHandle = setTimeout(repeatingCallback, delay);
15
+ intervalHandleToTimeoutHandle.set(intervalHandle, intervalHandle);
16
+ return intervalHandle;
17
+ };
18
+ const clearIntervalPolyfill = intervalHandle => {
19
+ const timeoutHandle = intervalHandleToTimeoutHandle.get(intervalHandle);
20
+ clearTimeout(timeoutHandle);
21
+ intervalHandleToTimeoutHandle.delete(intervalHandle);
22
+ };
23
+ globalThis.setInterval = setIntervalPolyfill;
24
+ globalThis.clearInterval = clearIntervalPolyfill;
25
+ }
26
+ //# sourceMappingURL=setIntervalPolyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["setupSetInterval","intervalHandleToTimeoutHandle","Map","setIntervalPolyfill","callback","delay","args","intervalHandle","repeatingCallback","timeoutHandle","setTimeout","set","clearIntervalPolyfill","get","clearTimeout","delete","globalThis","setInterval","clearInterval"],"sourceRoot":"../../../src","sources":["runLoop/setIntervalPolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,gBAAgBA,CAAA,EAAG;EACjC,SAAS;;EAET,MAAMC,6BAAkD,GAAG,IAAIC,GAAG,CAAC,CAAC;EAEpE,MAAMC,mBAAmB,GAAGA,CAC1BC,QAAsC,EACtCC,KAAa,GAAG,CAAC,EACjB,GAAGC,IAAe,KACf;IACH,IAAIC,cAAc,GAAG,CAAC;IAEtB,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;MAC9B,MAAMC,aAAa,GAAGC,UAAU,CAC9BF,iBAAiB,EACjBH,KACF,CAAsB;MACtBJ,6BAA6B,CAACU,GAAG,CAACJ,cAAc,EAAEE,aAAa,CAAC;MAChEL,QAAQ,CAAC,GAAGE,IAAI,CAAC;IACnB,CAAC;IAEDC,cAAc,GAAGG,UAAU,CAACF,iBAAiB,EAAEH,KAAK,CAAsB;IAC1EJ,6BAA6B,CAACU,GAAG,CAACJ,cAAc,EAAEA,cAAc,CAAC;IAEjE,OAAOA,cAAc;EACvB,CAAC;EAED,MAAMK,qBAAqB,GAAIL,cAAsB,IAAK;IACxD,MAAME,aAAa,GAAGR,6BAA6B,CAACY,GAAG,CAACN,cAAc,CAAC;IACvEO,YAAY,CAACL,aAAa,CAAC;IAC3BR,6BAA6B,CAACc,MAAM,CAACR,cAAc,CAAC;EACtD,CAAC;EAEDS,UAAU,CAACC,WAAW,GAAGd,mBAAyC;EAClEa,UAAU,CAACE,aAAa,GAAGN,qBAA6C;AAC1E","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ export function setupSetTimeout() {
4
+ 'worklet';
5
+
6
+ const timeoutHandleToRafHandle = new Map();
7
+ const setTimeoutPolyfill = (callback, delay = 1, ...args) => {
8
+ const start = performance.now();
9
+ let timeoutHandle = 0;
10
+ const rafCallback = () => {
11
+ const now = performance.now();
12
+ if (now - start >= delay) {
13
+ callback(...args);
14
+ timeoutHandleToRafHandle.delete(timeoutHandle);
15
+ } else {
16
+ const rafHandle = requestAnimationFrame(rafCallback);
17
+ timeoutHandleToRafHandle.set(timeoutHandle, rafHandle);
18
+ }
19
+ };
20
+ timeoutHandle = requestAnimationFrame(rafCallback);
21
+ timeoutHandleToRafHandle.set(timeoutHandle, timeoutHandle);
22
+ return timeoutHandle;
23
+ };
24
+ const clearTimeoutPolyfill = timeoutHandle => {
25
+ const rafHandle = timeoutHandleToRafHandle.get(timeoutHandle);
26
+ timeoutHandleToRafHandle.delete(timeoutHandle);
27
+ cancelAnimationFrame(rafHandle);
28
+ };
29
+ globalThis.setTimeout = setTimeoutPolyfill;
30
+ globalThis.clearTimeout = clearTimeoutPolyfill;
31
+ }
32
+ //# sourceMappingURL=setTimeoutPolyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["setupSetTimeout","timeoutHandleToRafHandle","Map","setTimeoutPolyfill","callback","delay","args","start","performance","now","timeoutHandle","rafCallback","delete","rafHandle","requestAnimationFrame","set","clearTimeoutPolyfill","get","cancelAnimationFrame","globalThis","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["runLoop/setTimeoutPolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,eAAeA,CAAA,EAAG;EAChC,SAAS;;EAET,MAAMC,wBAA6C,GAAG,IAAIC,GAAG,CAAC,CAAC;EAE/D,MAAMC,kBAAkB,GAAGA,CACzBC,QAAsC,EACtCC,KAAa,GAAG,CAAC,EACjB,GAAGC,IAAe,KACf;IACH,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IAC/B,IAAIC,aAAa,GAAG,CAAC;IAErB,MAAMC,WAAW,GAAGA,CAAA,KAAM;MACxB,MAAMF,GAAG,GAAGD,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAIA,GAAG,GAAGF,KAAK,IAAIF,KAAK,EAAE;QACxBD,QAAQ,CAAC,GAAGE,IAAI,CAAC;QACjBL,wBAAwB,CAACW,MAAM,CAACF,aAAa,CAAC;MAChD,CAAC,MAAM;QACL,MAAMG,SAAS,GAAGC,qBAAqB,CAACH,WAAW,CAAC;QACpDV,wBAAwB,CAACc,GAAG,CAACL,aAAa,EAAEG,SAAS,CAAC;MACxD;IACF,CAAC;IAEDH,aAAa,GAAGI,qBAAqB,CAACH,WAAW,CAAC;IAClDV,wBAAwB,CAACc,GAAG,CAACL,aAAa,EAAEA,aAAa,CAAC;IAC1D,OAAOA,aAAa;EACtB,CAAC;EAED,MAAMM,oBAAoB,GAAIN,aAAqB,IAAK;IACtD,MAAMG,SAAS,GAAGZ,wBAAwB,CAACgB,GAAG,CAACP,aAAa,CAAC;IAC7DT,wBAAwB,CAACW,MAAM,CAACF,aAAa,CAAC;IAC9CQ,oBAAoB,CAACL,SAAU,CAAC;EAClC,CAAC;EAEDM,UAAU,CAACC,UAAU,GAAGjB,kBAAuC;EAC/DgB,UAAU,CAACE,YAAY,GAAGL,oBAA2C;AACvE","ignoreList":[]}
@@ -1,13 +1,12 @@
1
1
  'use strict';
2
2
 
3
- import { setupCallGuard, setupConsole } from "./initializers.js";
4
- import { registerLoggerConfig } from "./logger/index.js";
5
- import { shouldBeUseWeb } from "./PlatformChecker.js";
3
+ import { setupCallGuard } from "./callGuard.js";
4
+ import { getMemorySafeCapturableConsole, setupConsole } from "./initializers.js";
5
+ import { SHOULD_BE_USE_WEB } from "./PlatformChecker/index.js";
6
6
  import { makeShareableCloneOnUIRecursive, makeShareableCloneRecursive } from "./shareables.js";
7
7
  import { isWorkletFunction } from "./workletFunction.js";
8
8
  import { registerWorkletsError, WorkletsError } from "./WorkletsError.js";
9
9
  import { WorkletsModule } from "./WorkletsModule/index.js";
10
- const SHOULD_BE_USE_WEB = shouldBeUseWeb();
11
10
 
12
11
  /**
13
12
  * Lets you create a new JS runtime which can be used to run worklets possibly
@@ -24,16 +23,13 @@ const SHOULD_BE_USE_WEB = shouldBeUseWeb();
24
23
  // @ts-expect-error Check `runOnUI` overload.
25
24
 
26
25
  export function createWorkletRuntime(name, initializer) {
27
- // Assign to a different variable as __workletsLoggerConfig is not a captured
28
- // identifier in the Worklet runtime.
29
- const config = __workletsLoggerConfig;
26
+ const runtimeBoundCapturableConsole = getMemorySafeCapturableConsole();
30
27
  return WorkletsModule.createWorkletRuntime(name, makeShareableCloneRecursive(() => {
31
28
  'worklet';
32
29
 
33
- registerWorkletsError();
34
- registerLoggerConfig(config);
35
30
  setupCallGuard();
36
- setupConsole();
31
+ registerWorkletsError();
32
+ setupConsole(runtimeBoundCapturableConsole);
37
33
  initializer?.();
38
34
  }));
39
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["setupCallGuard","setupConsole","registerLoggerConfig","shouldBeUseWeb","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","isWorkletFunction","registerWorkletsError","WorkletsError","WorkletsModule","SHOULD_BE_USE_WEB","createWorkletRuntime","name","initializer","config","__workletsLoggerConfig","runOnRuntime","workletRuntime","worklet","__DEV__","globalThis","_WORKLET","args","global","_scheduleOnRuntime","scheduleOnRuntime"],"sourceRoot":"../../src","sources":["runtimes.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,cAAc,EAAEC,YAAY,QAAQ,mBAAgB;AAC7D,SAASC,oBAAoB,QAAQ,mBAAU;AAC/C,SAASC,cAAc,QAAQ,sBAAmB;AAClD,SACEC,+BAA+B,EAC/BC,2BAA2B,QACtB,iBAAc;AACrB,SAASC,iBAAiB,QAAQ,sBAAmB;AACrD,SAASC,qBAAqB,EAAEC,aAAa,QAAQ,oBAAiB;AACtE,SAASC,cAAc,QAAQ,2BAAkB;AAGjD,MAAMC,iBAAiB,GAAGP,cAAc,CAAC,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,OAAO,SAASQ,oBAAoBA,CAClCC,IAAY,EACZC,WAAuC,EACvB;EAChB;EACA;EACA,MAAMC,MAAM,GAAGC,sBAAsB;EACrC,OAAON,cAAc,CAACE,oBAAoB,CACxCC,IAAI,EACJP,2BAA2B,CAAC,MAAM;IAChC,SAAS;;IACTE,qBAAqB,CAAC,CAAC;IACvBL,oBAAoB,CAACY,MAAM,CAAC;IAC5Bd,cAAc,CAAC,CAAC;IAChBC,YAAY,CAAC,CAAC;IACdY,WAAW,GAAG,CAAC;EACjB,CAAC,CACH,CAAC;AACH;;AAEA;;AAKA;AACA,OAAO,SAASG,YAAYA,CAC1BC,cAA8B,EAC9BC,OAA2C,EAClB;EACzB,SAAS;;EACT,IAAIC,OAAO,IAAI,CAACT,iBAAiB,IAAI,CAACJ,iBAAiB,CAACY,OAAO,CAAC,EAAE;IAChE,MAAM,IAAIV,aAAa,CACrB,yDACF,CAAC;EACH;EACA,IAAIY,UAAU,CAACC,QAAQ,EAAE;IACvB,OAAO,CAAC,GAAGC,IAAI,KACbC,MAAM,CAACC,kBAAkB,CACvBP,cAAc,EACdb,+BAA+B,CAAC,MAAM;MACpC,SAAS;;MACTc,OAAO,CAAC,GAAGI,IAAI,CAAC;IAClB,CAAC,CACH,CAAC;EACL;EACA,OAAO,CAAC,GAAGA,IAAI,KACbb,cAAc,CAACgB,iBAAiB,CAC9BR,cAAc,EACdZ,2BAA2B,CAAC,MAAM;IAChC,SAAS;;IACTa,OAAO,CAAC,GAAGI,IAAI,CAAC;EAClB,CAAC,CACH,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["setupCallGuard","getMemorySafeCapturableConsole","setupConsole","SHOULD_BE_USE_WEB","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","isWorkletFunction","registerWorkletsError","WorkletsError","WorkletsModule","createWorkletRuntime","name","initializer","runtimeBoundCapturableConsole","runOnRuntime","workletRuntime","worklet","__DEV__","globalThis","_WORKLET","args","global","_scheduleOnRuntime","scheduleOnRuntime"],"sourceRoot":"../../src","sources":["runtimes.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,cAAc,QAAQ,gBAAa;AAC5C,SAASC,8BAA8B,EAAEC,YAAY,QAAQ,mBAAgB;AAC7E,SAASC,iBAAiB,QAAQ,4BAAmB;AACrD,SACEC,+BAA+B,EAC/BC,2BAA2B,QACtB,iBAAc;AACrB,SAASC,iBAAiB,QAAQ,sBAAmB;AACrD,SAASC,qBAAqB,EAAEC,aAAa,QAAQ,oBAAiB;AACtE,SAASC,cAAc,QAAQ,2BAAkB;;AAGjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,OAAO,SAASC,oBAAoBA,CAClCC,IAAY,EACZC,WAAuC,EACvB;EAChB,MAAMC,6BAA6B,GAAGZ,8BAA8B,CAAC,CAAC;EACtE,OAAOQ,cAAc,CAACC,oBAAoB,CACxCC,IAAI,EACJN,2BAA2B,CAAC,MAAM;IAChC,SAAS;;IACTL,cAAc,CAAC,CAAC;IAChBO,qBAAqB,CAAC,CAAC;IACvBL,YAAY,CAACW,6BAA6B,CAAC;IAC3CD,WAAW,GAAG,CAAC;EACjB,CAAC,CACH,CAAC;AACH;;AAEA;;AAKA;AACA,OAAO,SAASE,YAAYA,CAC1BC,cAA8B,EAC9BC,OAA2C,EAClB;EACzB,SAAS;;EACT,IAAIC,OAAO,IAAI,CAACd,iBAAiB,IAAI,CAACG,iBAAiB,CAACU,OAAO,CAAC,EAAE;IAChE,MAAM,IAAIR,aAAa,CACrB,yDACF,CAAC;EACH;EACA,IAAIU,UAAU,CAACC,QAAQ,EAAE;IACvB,OAAO,CAAC,GAAGC,IAAI,KACbC,MAAM,CAACC,kBAAkB,CACvBP,cAAc,EACdX,+BAA+B,CAAC,MAAM;MACpC,SAAS;;MACTY,OAAO,CAAC,GAAGI,IAAI,CAAC;IAClB,CAAC,CACH,CAAC;EACL;EACA,OAAO,CAAC,GAAGA,IAAI,KACbX,cAAc,CAACc,iBAAiB,CAC9BR,cAAc,EACdV,2BAA2B,CAAC,MAAM;IAChC,SAAS;;IACTW,OAAO,CAAC,GAAGI,IAAI,CAAC;EAClB,CAAC,CACH,CAAC;AACL","ignoreList":[]}
@@ -1,8 +1,6 @@
1
1
  'use strict';
2
2
 
3
- import { shouldBeUseWeb } from "./PlatformChecker.js";
4
- const SHOULD_BE_USE_WEB = shouldBeUseWeb();
5
-
3
+ import { SHOULD_BE_USE_WEB } from "./PlatformChecker/index.js";
6
4
  /**
7
5
  * This symbol is used to represent a mapping from the value to itself.
8
6
  *
@@ -1 +1 @@
1
- {"version":3,"names":["shouldBeUseWeb","SHOULD_BE_USE_WEB","shareableMappingFlag","Symbol","cache","WeakMap","shareableMappingCache","set","get","shareable","shareableRef","bind"],"sourceRoot":"../../src","sources":["shareableMappingCache.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,cAAc,QAAQ,sBAAmB;AAGlD,MAAMC,iBAAiB,GAAGD,cAAc,CAAC,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,oBAAoB,GAAGC,MAAM,CAAC,gBAAgB,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,KAAK,GAAGH,iBAAiB,GAC3B,IAAI,GACJ,IAAII,OAAO,CAAgC,CAAC;AAEhD,OAAO,MAAMC,qBAAqB,GAAGL,iBAAiB,GAClD;EACEM,GAAGA,CAAA,EAAG;IACJ;EAAA,CACD;EACDC,GAAGA,CAAA,EAAG;IACJ,OAAO,IAAI;EACb;AACF,CAAC,GACD;EACED,GAAGA,CAACE,SAAiB,EAAEC,YAA2B,EAAQ;IACxDN,KAAK,CAAEG,GAAG,CAACE,SAAS,EAAEC,YAAY,IAAIR,oBAAoB,CAAC;EAC7D,CAAC;EACDM,GAAG,EAAEJ,KAAK,CAAEI,GAAG,CAACG,IAAI,CAACP,KAAK;AAC5B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["SHOULD_BE_USE_WEB","shareableMappingFlag","Symbol","cache","WeakMap","shareableMappingCache","set","get","shareable","shareableRef","bind"],"sourceRoot":"../../src","sources":["shareableMappingCache.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,iBAAiB,QAAQ,4BAAmB;AAGrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAGC,MAAM,CAAC,gBAAgB,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,KAAK,GAAGH,iBAAiB,GAC3B,IAAI,GACJ,IAAII,OAAO,CAAgC,CAAC;AAEhD,OAAO,MAAMC,qBAAqB,GAAGL,iBAAiB,GAClD;EACEM,GAAGA,CAAA,EAAG;IACJ;EAAA,CACD;EACDC,GAAGA,CAAA,EAAG;IACJ,OAAO,IAAI;EACb;AACF,CAAC,GACD;EACED,GAAGA,CAACE,SAAiB,EAAEC,YAA2B,EAAQ;IACxDN,KAAK,CAAEG,GAAG,CAACE,SAAS,EAAEC,YAAY,IAAIR,oBAAoB,CAAC;EAC7D,CAAC;EACDM,GAAG,EAAEJ,KAAK,CAAEI,GAAG,CAACG,IAAI,CAACP,KAAK;AAC5B,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  import { registerWorkletStackDetails } from "./errors.js";
4
- import { logger } from "./logger/index.js";
5
- import { shouldBeUseWeb } from "./PlatformChecker.js";
4
+ import { logger } from "./logger.js";
5
+ import { SHOULD_BE_USE_WEB } from "./PlatformChecker/index.js";
6
6
  import { shareableMappingCache, shareableMappingFlag } from "./shareableMappingCache.js";
7
7
  import { isWorkletFunction } from "./workletFunction.js";
8
8
  import { WorkletsError } from "./WorkletsError.js";
@@ -11,7 +11,7 @@ import { WorkletsModule } from "./WorkletsModule/index.js";
11
11
  // where no shareable references are used. Instead, the objects themselves are used
12
12
  // instead of shareable references, because of the fact that we don't have to deal with
13
13
  // running the code on separate VMs.
14
- const SHOULD_BE_USE_WEB = shouldBeUseWeb();
14
+
15
15
  const MAGIC_KEY = 'REANIMATED_MAGIC_KEY';
16
16
  function isHostObject(value) {
17
17
  'worklet';
@@ -23,8 +23,13 @@ function isHostObject(value) {
23
23
  return MAGIC_KEY in value;
24
24
  }
25
25
  function isPlainJSObject(object) {
26
+ 'worklet';
27
+
26
28
  return Object.getPrototypeOf(object) === Object.prototype;
27
29
  }
30
+ function isTurboModuleLike(object) {
31
+ return isHostObject(Object.getPrototypeOf(object));
32
+ }
28
33
  function getFromCache(value) {
29
34
  const cached = shareableMappingCache.get(value);
30
35
  if (cached === shareableMappingFlag) {
@@ -106,11 +111,22 @@ function makeShareableCloneRecursiveNative(value, shouldPersistRemote = false, d
106
111
  if (Array.isArray(value)) {
107
112
  return cloneArray(value, shouldPersistRemote, depth);
108
113
  }
114
+ if (globalThis._WORKLETS_BUNDLE_MODE && isFunction && value.__bundleData) {
115
+ return cloneImport(value);
116
+ }
109
117
  if (isFunction && !isWorkletFunction(value)) {
110
- return cloneRemoteFunction(value, shouldPersistRemote);
118
+ return cloneRemoteFunction(value);
119
+ }
120
+ // RN has introduced a new representation of TurboModules as a JS object whose prototype is the host object
121
+ // More details: https://github.com/facebook/react-native/blob/main/packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp#L182
122
+ if (isTurboModuleLike(value)) {
123
+ return cloneTurboModuleLike(value, shouldPersistRemote, depth);
111
124
  }
112
125
  if (isHostObject(value)) {
113
- return cloneHostObject(value, shouldPersistRemote);
126
+ return cloneHostObject(value);
127
+ }
128
+ if (isPlainJSObject(value) && value.__init) {
129
+ return cloneInitializer(value, shouldPersistRemote, depth);
114
130
  }
115
131
  if (isPlainJSObject(value) && value.__workletContextObjectFactory) {
116
132
  return cloneContextObject(value);
@@ -121,6 +137,12 @@ function makeShareableCloneRecursiveNative(value, shouldPersistRemote = false, d
121
137
  if (isPlainJSObject(value) || isFunction) {
122
138
  return clonePlainJSObject(value, shouldPersistRemote, depth);
123
139
  }
140
+ if (value instanceof Set) {
141
+ return cloneSet(value);
142
+ }
143
+ if (value instanceof Map) {
144
+ return cloneMap(value);
145
+ }
124
146
  if (value instanceof RegExp) {
125
147
  return cloneRegExp(value);
126
148
  }
@@ -136,6 +158,14 @@ function makeShareableCloneRecursiveNative(value, shouldPersistRemote = false, d
136
158
  }
137
159
  return inaccessibleObject(value);
138
160
  }
161
+ if (globalThis._WORKLETS_BUNDLE_MODE) {
162
+ // TODO: Do it programatically.
163
+ makeShareableCloneRecursiveNative.__bundleData = {
164
+ imported: 'makeShareableCloneRecursive',
165
+ // @ts-expect-error resolveWeak is defined by Metro
166
+ source: require.resolveWeak('./index')
167
+ };
168
+ }
139
169
  export const makeShareableCloneRecursive = SHOULD_BE_USE_WEB ? makeShareableCloneRecursiveWeb : makeShareableCloneRecursiveNative;
140
170
  function detectCyclicObject(value, depth) {
141
171
  if (depth >= DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD) {
@@ -174,26 +204,43 @@ function cloneUndefined() {
174
204
  function cloneNull() {
175
205
  return WorkletsModule.makeShareableNull();
176
206
  }
207
+ function cloneObjectProperties(value, shouldPersistRemote, depth) {
208
+ const clonedProps = {};
209
+ for (const [key, element] of Object.entries(value)) {
210
+ // We don't need to clone __initData field as it contains long strings
211
+ // representing the worklet code, source map, and location, and we will
212
+ // serialize/deserialize it once.
213
+ if (key === '__initData' && clonedProps.__initData !== undefined) {
214
+ continue;
215
+ }
216
+ clonedProps[key] = makeShareableCloneRecursive(element, shouldPersistRemote, depth + 1);
217
+ }
218
+ return clonedProps;
219
+ }
220
+ function cloneInitializer(value, shouldPersistRemote = false, depth = 0) {
221
+ const clonedProps = cloneObjectProperties(value, shouldPersistRemote, depth);
222
+ return WorkletsModule.makeShareableInitializer(clonedProps);
223
+ }
177
224
  function cloneArray(value, shouldPersistRemote, depth) {
178
225
  const clonedElements = value.map(element => makeShareableCloneRecursive(element, shouldPersistRemote, depth + 1));
179
- const clone = WorkletsModule.makeShareableClone(clonedElements, shouldPersistRemote, value);
226
+ const clone = WorkletsModule.makeShareableArray(clonedElements, shouldPersistRemote);
180
227
  shareableMappingCache.set(value, clone);
181
228
  shareableMappingCache.set(clone);
182
229
  freezeObjectInDev(value);
183
230
  return clone;
184
231
  }
185
- function cloneRemoteFunction(value, shouldPersistRemote) {
186
- const clone = WorkletsModule.makeShareableClone(value, shouldPersistRemote, value);
232
+ function cloneRemoteFunction(value) {
233
+ const clone = WorkletsModule.makeShareableFunction(value);
187
234
  shareableMappingCache.set(value, clone);
188
235
  shareableMappingCache.set(clone);
189
236
  freezeObjectInDev(value);
190
237
  return clone;
191
238
  }
192
- function cloneHostObject(value, shouldPersistRemote) {
239
+ function cloneHostObject(value) {
193
240
  // for host objects we pass the reference to the object as shareable and
194
241
  // then recreate new host object wrapping the same instance on the UI thread.
195
242
  // there is no point of iterating over keys as we do for regular objects.
196
- const clone = WorkletsModule.makeShareableClone(value, shouldPersistRemote, value);
243
+ const clone = WorkletsModule.makeShareableHostObject(value);
197
244
  shareableMappingCache.set(value, clone);
198
245
  shareableMappingCache.set(clone);
199
246
  return clone;
@@ -216,30 +263,36 @@ function cloneWorklet(value, shouldPersistRemote, depth) {
216
263
  // seems more elegant to handle it this way.
217
264
  delete value.__stackDetails;
218
265
  }
266
+ const clonedProps = cloneObjectProperties(value, true, depth);
219
267
  // to save on transferring static __initData field of worklet structure
220
268
  // we request shareable value to persist its UI counterpart. This means
221
- // that the __initData field that contains long strings represeting the
269
+ // that the __initData field that contains long strings representing the
222
270
  // worklet code, source map, and location, will always be
223
271
  // serialized/deserialized once.
224
- const clonedProps = {};
225
272
  clonedProps.__initData = makeShareableCloneRecursive(value.__initData, true, depth + 1);
226
- for (const [key, element] of Object.entries(value)) {
227
- if (key === '__initData' && clonedProps.__initData !== undefined) {
228
- continue;
229
- }
230
- clonedProps[key] = makeShareableCloneRecursive(element, shouldPersistRemote, depth + 1);
231
- }
232
- const clone = WorkletsModule.makeShareableClone(clonedProps,
273
+ const clone = WorkletsModule.makeShareableWorklet(clonedProps,
274
+ // TODO: Check after refactor if we can remove shouldPersistRemote parameter (imho it's redundant here since worklets are always persistent)
233
275
  // retain all worklets
234
- true, value);
276
+ true);
235
277
  shareableMappingCache.set(value, clone);
236
278
  shareableMappingCache.set(clone);
237
279
  freezeObjectInDev(value);
238
280
  return clone;
239
281
  }
282
+
283
+ /**
284
+ * TurboModuleLike objects are JS objects that have a TurboModule as their
285
+ * prototype.
286
+ */
287
+ function cloneTurboModuleLike(value, shouldPersistRemote, depth) {
288
+ const proto = Object.getPrototypeOf(value);
289
+ const clonedProps = cloneObjectProperties(value, shouldPersistRemote, depth);
290
+ const clone = WorkletsModule.makeShareableTurboModuleLike(clonedProps, proto);
291
+ return clone;
292
+ }
240
293
  function cloneContextObject(value) {
241
294
  const workletContextObjectFactory = value.__workletContextObjectFactory;
242
- const handle = makeShareableCloneRecursive({
295
+ const handle = cloneInitializer({
243
296
  __init: () => {
244
297
  'worklet';
245
298
 
@@ -250,14 +303,32 @@ function cloneContextObject(value) {
250
303
  return handle;
251
304
  }
252
305
  function clonePlainJSObject(value, shouldPersistRemote, depth) {
253
- const clonedProps = {};
254
- for (const [key, element] of Object.entries(value)) {
255
- if (key === '__initData' && clonedProps.__initData !== undefined) {
256
- continue;
257
- }
258
- clonedProps[key] = makeShareableCloneRecursive(element, shouldPersistRemote, depth + 1);
306
+ const clonedProps = cloneObjectProperties(value, shouldPersistRemote, depth);
307
+ const clone = WorkletsModule.makeShareableObject(clonedProps, shouldPersistRemote, value);
308
+ shareableMappingCache.set(value, clone);
309
+ shareableMappingCache.set(clone);
310
+ freezeObjectInDev(value);
311
+ return clone;
312
+ }
313
+ function cloneMap(value) {
314
+ const clonedKeys = [];
315
+ const clonedValues = [];
316
+ for (const [key, element] of value.entries()) {
317
+ clonedKeys.push(makeShareableCloneRecursive(key));
318
+ clonedValues.push(makeShareableCloneRecursive(element));
259
319
  }
260
- const clone = WorkletsModule.makeShareableClone(clonedProps, shouldPersistRemote, value);
320
+ const clone = WorkletsModule.makeShareableMap(clonedKeys, clonedValues);
321
+ shareableMappingCache.set(value, clone);
322
+ shareableMappingCache.set(clone);
323
+ freezeObjectInDev(value);
324
+ return clone;
325
+ }
326
+ function cloneSet(value) {
327
+ const clonedElements = [];
328
+ for (const element of value) {
329
+ clonedElements.push(makeShareableCloneRecursive(element));
330
+ }
331
+ const clone = WorkletsModule.makeShareableSet(clonedElements);
261
332
  shareableMappingCache.set(value, clone);
262
333
  shareableMappingCache.set(clone);
263
334
  freezeObjectInDev(value);
@@ -266,7 +337,7 @@ function clonePlainJSObject(value, shouldPersistRemote, depth) {
266
337
  function cloneRegExp(value) {
267
338
  const pattern = value.source;
268
339
  const flags = value.flags;
269
- const handle = makeShareableCloneRecursive({
340
+ const handle = cloneInitializer({
270
341
  __init: () => {
271
342
  'worklet';
272
343
 
@@ -282,7 +353,7 @@ function cloneError(value) {
282
353
  message,
283
354
  stack
284
355
  } = value;
285
- const handle = makeShareableCloneRecursive({
356
+ const handle = cloneInitializer({
286
357
  __init: () => {
287
358
  'worklet';
288
359
 
@@ -306,7 +377,7 @@ function cloneArrayBuffer(value, shouldPersistRemote) {
306
377
  function cloneArrayBufferView(value) {
307
378
  const buffer = value.buffer;
308
379
  const typeName = value.constructor.name;
309
- const handle = makeShareableCloneRecursive({
380
+ const handle = cloneInitializer({
310
381
  __init: () => {
311
382
  'worklet';
312
383
 
@@ -323,6 +394,16 @@ function cloneArrayBufferView(value) {
323
394
  shareableMappingCache.set(value, handle);
324
395
  return handle;
325
396
  }
397
+ function cloneImport(value) {
398
+ const {
399
+ source,
400
+ imported
401
+ } = value.__bundleData;
402
+ const clone = WorkletsModule.makeShareableImport(source, imported);
403
+ shareableMappingCache.set(value, clone);
404
+ shareableMappingCache.set(clone);
405
+ return clone;
406
+ }
326
407
  function inaccessibleObject(value) {
327
408
  // This is reached for object types that are not of plain Object.prototype.
328
409
  // We don't support such objects from being transferred as shareables to
@@ -391,7 +472,7 @@ function freezeObjectInDev(value) {
391
472
  });
392
473
  Object.preventExtensions(value);
393
474
  }
394
- export function makeShareableCloneOnUIRecursive(value) {
475
+ function makeShareableCloneOnUIRecursiveLEGACY(value) {
395
476
  'worklet';
396
477
 
397
478
  if (SHOULD_BE_USE_WEB) {
@@ -405,7 +486,7 @@ export function makeShareableCloneOnUIRecursive(value) {
405
486
  if (isHostObject(value)) {
406
487
  // We call `_makeShareableClone` to wrap the provided HostObject
407
488
  // inside ShareableJSRef.
408
- return global._makeShareableClone(value, undefined);
489
+ return global._makeShareableHostObject(value);
409
490
  }
410
491
  if (isRemoteFunction(value)) {
411
492
  // RemoteFunctions are created by us therefore they are
@@ -414,7 +495,7 @@ export function makeShareableCloneOnUIRecursive(value) {
414
495
  return value.__remoteFunction;
415
496
  }
416
497
  if (Array.isArray(value)) {
417
- return global._makeShareableClone(value.map(cloneRecursive), undefined);
498
+ return global._makeShareableArray(value.map(cloneRecursive));
418
499
  }
419
500
  const toAdapt = {};
420
501
  for (const [key, element] of Object.entries(value)) {
@@ -444,6 +525,7 @@ export function makeShareableCloneOnUIRecursive(value) {
444
525
  }
445
526
  return cloneRecursive(value);
446
527
  }
528
+ export const makeShareableCloneOnUIRecursive = globalThis._WORKLETS_BUNDLE_MODE ? makeShareableCloneRecursive : makeShareableCloneOnUIRecursiveLEGACY;
447
529
  function makeShareableJS(value) {
448
530
  return value;
449
531
  }