@amazon-devices/react-native-worklets 1.0.0-rn-83

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 (348) hide show
  1. package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.cpp +71 -0
  2. package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.h +38 -0
  3. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +712 -0
  4. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.h +88 -0
  5. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +89 -0
  6. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +80 -0
  7. package/Common/cpp/worklets/Public/AsyncQueue.h +14 -0
  8. package/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +94 -0
  9. package/Common/cpp/worklets/Registries/EventHandlerRegistry.h +51 -0
  10. package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +8 -0
  11. package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +40 -0
  12. package/Common/cpp/worklets/Resources/SynchronizableUnpacker.cpp +49 -0
  13. package/Common/cpp/worklets/Resources/Unpackers.h +6 -0
  14. package/Common/cpp/worklets/Resources/ValueUnpacker.cpp +53 -0
  15. package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +62 -0
  16. package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.h +46 -0
  17. package/Common/cpp/worklets/RunLoop/EventLoop.cpp +112 -0
  18. package/Common/cpp/worklets/RunLoop/EventLoop.h +52 -0
  19. package/Common/cpp/worklets/SharedItems/Serializable.cpp +545 -0
  20. package/Common/cpp/worklets/SharedItems/Serializable.h +473 -0
  21. package/Common/cpp/worklets/SharedItems/Synchronizable.cpp +67 -0
  22. package/Common/cpp/worklets/SharedItems/Synchronizable.h +59 -0
  23. package/Common/cpp/worklets/SharedItems/SynchronizableAccess.cpp +81 -0
  24. package/Common/cpp/worklets/SharedItems/SynchronizableAccess.h +45 -0
  25. package/Common/cpp/worklets/Tools/Defs.h +10 -0
  26. package/Common/cpp/worklets/Tools/FeatureFlags.cpp +15 -0
  27. package/Common/cpp/worklets/Tools/FeatureFlags.h +44 -0
  28. package/Common/cpp/worklets/Tools/JSISerializer.cpp +342 -0
  29. package/Common/cpp/worklets/Tools/JSISerializer.h +51 -0
  30. package/Common/cpp/worklets/Tools/JSLogger.cpp +68 -0
  31. package/Common/cpp/worklets/Tools/JSLogger.h +37 -0
  32. package/Common/cpp/worklets/Tools/JSScheduler.cpp +24 -0
  33. package/Common/cpp/worklets/Tools/JSScheduler.h +39 -0
  34. package/Common/cpp/worklets/Tools/PlatformLogger.h +16 -0
  35. package/Common/cpp/worklets/Tools/SingleInstanceChecker.h +82 -0
  36. package/Common/cpp/worklets/Tools/ThreadSafeQueue.h +49 -0
  37. package/Common/cpp/worklets/Tools/UIScheduler.cpp +19 -0
  38. package/Common/cpp/worklets/Tools/UIScheduler.h +26 -0
  39. package/Common/cpp/worklets/Tools/VersionUtils.cpp +75 -0
  40. package/Common/cpp/worklets/Tools/VersionUtils.h +28 -0
  41. package/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +29 -0
  42. package/Common/cpp/worklets/Tools/WorkletEventHandler.h +41 -0
  43. package/Common/cpp/worklets/Tools/WorkletsJSIUtils.cpp +46 -0
  44. package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +208 -0
  45. package/Common/cpp/worklets/Tools/WorkletsSystraceSection.h +161 -0
  46. package/Common/cpp/worklets/Tools/WorkletsVersion.cpp +54 -0
  47. package/Common/cpp/worklets/Tools/WorkletsVersion.h +20 -0
  48. package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +38 -0
  49. package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +21 -0
  50. package/Common/cpp/worklets/WorkletRuntime/RuntimeData.cpp +3 -0
  51. package/Common/cpp/worklets/WorkletRuntime/RuntimeData.h +12 -0
  52. package/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +191 -0
  53. package/Common/cpp/worklets/WorkletRuntime/RuntimeKind.h +16 -0
  54. package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +105 -0
  55. package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +63 -0
  56. package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.cpp +23 -0
  57. package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.h +16 -0
  58. package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.cpp +119 -0
  59. package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.h +134 -0
  60. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +244 -0
  61. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +102 -0
  62. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +36 -0
  63. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +308 -0
  64. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +26 -0
  65. package/LICENSE +7 -0
  66. package/README.md +31 -0
  67. package/RNWorklets.podspec +94 -0
  68. package/SystemBundles/cc12deac6e91c435b76698c8445aed85612f2f88e733218d14f88a35d06fb0f4.bundle +10512 -0
  69. package/SystemBundles/cc12deac6e91c435b76698c8445aed85612f2f88e733218d14f88a35d06fb0f4.map +3771 -0
  70. package/SystemModules/amzn__react-native-worklets-1.modules.txt +39 -0
  71. package/SystemModules/amzn__react-native-worklets-1.private.modules.txt +61 -0
  72. package/SystemModules/keplerscript-system-bundle-config.json +7 -0
  73. package/android/CMakeLists.txt +124 -0
  74. package/android/build.gradle +350 -0
  75. package/android/gradle.properties +5 -0
  76. package/android/proguard-rules.pro +3 -0
  77. package/android/spotless.gradle +9 -0
  78. package/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java +149 -0
  79. package/android/src/legacyBundling/com/swmansion/worklets/WorkletsModule.java +122 -0
  80. package/android/src/main/AndroidManifest.xml +2 -0
  81. package/android/src/main/cpp/worklets/android/AndroidUIScheduler.cpp +63 -0
  82. package/android/src/main/cpp/worklets/android/AndroidUIScheduler.h +43 -0
  83. package/android/src/main/cpp/worklets/android/AnimationFrameCallback.h +34 -0
  84. package/android/src/main/cpp/worklets/android/PlatformLogger.cpp +29 -0
  85. package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +115 -0
  86. package/android/src/main/cpp/worklets/android/WorkletsModule.h +78 -0
  87. package/android/src/main/cpp/worklets/android/WorkletsOnLoad.cpp +13 -0
  88. package/android/src/main/java/com/swmansion/worklets/AndroidUIScheduler.java +60 -0
  89. package/android/src/main/java/com/swmansion/worklets/JSCallInvokerResolver.java +27 -0
  90. package/android/src/main/java/com/swmansion/worklets/WorkletsMessageQueueThread.java +16 -0
  91. package/android/src/main/java/com/swmansion/worklets/WorkletsMessageQueueThreadBase.java +73 -0
  92. package/android/src/main/java/com/swmansion/worklets/WorkletsPackage.java +48 -0
  93. package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameCallback.java +19 -0
  94. package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameQueue.java +113 -0
  95. package/apple/worklets/apple/AnimationFrameQueue.h +15 -0
  96. package/apple/worklets/apple/AnimationFrameQueue.mm +135 -0
  97. package/apple/worklets/apple/AssertJavaScriptQueue.h +14 -0
  98. package/apple/worklets/apple/AssertTurboModuleManagerQueue.h +16 -0
  99. package/apple/worklets/apple/IOSUIScheduler.h +15 -0
  100. package/apple/worklets/apple/IOSUIScheduler.mm +29 -0
  101. package/apple/worklets/apple/PlatformLogger.mm +31 -0
  102. package/apple/worklets/apple/SlowAnimations.h +8 -0
  103. package/apple/worklets/apple/SlowAnimations.mm +45 -0
  104. package/apple/worklets/apple/WorkletsDisplayLink.h +21 -0
  105. package/apple/worklets/apple/WorkletsMessageThread.h +16 -0
  106. package/apple/worklets/apple/WorkletsMessageThread.mm +31 -0
  107. package/apple/worklets/apple/WorkletsModule.h +28 -0
  108. package/apple/worklets/apple/WorkletsModule.mm +121 -0
  109. package/bundleMode/index.d.ts +3 -0
  110. package/bundleMode/index.js +59 -0
  111. package/compatibility.json +11 -0
  112. package/kepler-compatibility.json +5 -0
  113. package/kepler-transformed-package-info.json +3 -0
  114. package/lib/module/PlatformChecker/PlatformChecker.js +8 -0
  115. package/lib/module/PlatformChecker/PlatformChecker.js.map +1 -0
  116. package/lib/module/PlatformChecker/index.js +18 -0
  117. package/lib/module/PlatformChecker/index.js.map +1 -0
  118. package/lib/module/WorkletsError.js +29 -0
  119. package/lib/module/WorkletsError.js.map +1 -0
  120. package/lib/module/WorkletsModule/JSWorklets.js +111 -0
  121. package/lib/module/WorkletsModule/JSWorklets.js.map +1 -0
  122. package/lib/module/WorkletsModule/NativeWorklets.js +126 -0
  123. package/lib/module/WorkletsModule/NativeWorklets.js.map +1 -0
  124. package/lib/module/WorkletsModule/index.js +4 -0
  125. package/lib/module/WorkletsModule/index.js.map +1 -0
  126. package/lib/module/WorkletsModule/workletsModuleInstance.js +7 -0
  127. package/lib/module/WorkletsModule/workletsModuleInstance.js.map +1 -0
  128. package/lib/module/WorkletsModule/workletsModuleInstance.web.js +5 -0
  129. package/lib/module/WorkletsModule/workletsModuleInstance.web.js.map +1 -0
  130. package/lib/module/WorkletsModule/workletsModuleProxy.js +4 -0
  131. package/lib/module/WorkletsModule/workletsModuleProxy.js.map +1 -0
  132. package/lib/module/bundleUnpacker.js +47 -0
  133. package/lib/module/bundleUnpacker.js.map +1 -0
  134. package/lib/module/callGuard.js +30 -0
  135. package/lib/module/callGuard.js.map +1 -0
  136. package/lib/module/deprecated.js +20 -0
  137. package/lib/module/deprecated.js.map +1 -0
  138. package/lib/module/errors.js +69 -0
  139. package/lib/module/errors.js.map +1 -0
  140. package/lib/module/featureFlags/index.js +48 -0
  141. package/lib/module/featureFlags/index.js.map +1 -0
  142. package/lib/module/featureFlags/staticFlags.json +4 -0
  143. package/lib/module/index.js +26 -0
  144. package/lib/module/index.js.map +1 -0
  145. package/lib/module/initializers.js +221 -0
  146. package/lib/module/initializers.js.map +1 -0
  147. package/lib/module/isSynchronizable.js +6 -0
  148. package/lib/module/isSynchronizable.js.map +1 -0
  149. package/lib/module/logger.js +15 -0
  150. package/lib/module/logger.js.map +1 -0
  151. package/lib/module/privateGlobals.d.js +7 -0
  152. package/lib/module/privateGlobals.d.js.map +1 -0
  153. package/lib/module/publicGlobals.js +6 -0
  154. package/lib/module/publicGlobals.js.map +1 -0
  155. package/lib/module/runLoop/common/setImmediatePolyfill.js +15 -0
  156. package/lib/module/runLoop/common/setImmediatePolyfill.js.map +1 -0
  157. package/lib/module/runLoop/common/setIntervalPolyfill.js +26 -0
  158. package/lib/module/runLoop/common/setIntervalPolyfill.js.map +1 -0
  159. package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js +10 -0
  160. package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js.map +1 -0
  161. package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js +52 -0
  162. package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js.map +1 -0
  163. package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js +32 -0
  164. package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js.map +1 -0
  165. package/lib/module/runLoop/workletRuntime/index.js +19 -0
  166. package/lib/module/runLoop/workletRuntime/index.js.map +1 -0
  167. package/lib/module/runLoop/workletRuntime/queueMicrotask.js +11 -0
  168. package/lib/module/runLoop/workletRuntime/queueMicrotask.js.map +1 -0
  169. package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js +48 -0
  170. package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js.map +1 -0
  171. package/lib/module/runLoop/workletRuntime/setTimeout.js +28 -0
  172. package/lib/module/runLoop/workletRuntime/setTimeout.js.map +1 -0
  173. package/lib/module/runLoop/workletRuntime/taskQueue.js +37 -0
  174. package/lib/module/runLoop/workletRuntime/taskQueue.js.map +1 -0
  175. package/lib/module/runtimeKind.js +39 -0
  176. package/lib/module/runtimeKind.js.map +1 -0
  177. package/lib/module/runtimes.js +100 -0
  178. package/lib/module/runtimes.js.map +1 -0
  179. package/lib/module/serializable.js +568 -0
  180. package/lib/module/serializable.js.map +1 -0
  181. package/lib/module/serializableMappingCache.js +37 -0
  182. package/lib/module/serializableMappingCache.js.map +1 -0
  183. package/lib/module/specs/NativeWorkletsModule.js +5 -0
  184. package/lib/module/specs/NativeWorkletsModule.js.map +1 -0
  185. package/lib/module/specs/NativeWorkletsModule.kepler.js +7 -0
  186. package/lib/module/specs/NativeWorkletsModule.kepler.js.map +1 -0
  187. package/lib/module/specs/index.js +10 -0
  188. package/lib/module/specs/index.js.map +1 -0
  189. package/lib/module/synchronizable.js +9 -0
  190. package/lib/module/synchronizable.js.map +1 -0
  191. package/lib/module/synchronizableUnpacker.js +42 -0
  192. package/lib/module/synchronizableUnpacker.js.map +1 -0
  193. package/lib/module/threads.js +347 -0
  194. package/lib/module/threads.js.map +1 -0
  195. package/lib/module/utils/checkCppVersion.js +30 -0
  196. package/lib/module/utils/checkCppVersion.js.map +1 -0
  197. package/lib/module/utils/jsVersion.js +9 -0
  198. package/lib/module/utils/jsVersion.js.map +1 -0
  199. package/lib/module/valueUnpacker.js +60 -0
  200. package/lib/module/valueUnpacker.js.map +1 -0
  201. package/lib/module/workletFunction.js +37 -0
  202. package/lib/module/workletFunction.js.map +1 -0
  203. package/lib/module/workletRuntimeEntry.js +32 -0
  204. package/lib/module/workletRuntimeEntry.js.map +1 -0
  205. package/lib/module/workletTypes.js +12 -0
  206. package/lib/module/workletTypes.js.map +1 -0
  207. package/lib/typescript/PlatformChecker/PlatformChecker.d.ts +5 -0
  208. package/lib/typescript/PlatformChecker/PlatformChecker.d.ts.map +1 -0
  209. package/lib/typescript/PlatformChecker/index.d.ts +10 -0
  210. package/lib/typescript/PlatformChecker/index.d.ts.map +1 -0
  211. package/lib/typescript/WorkletsError.d.ts +15 -0
  212. package/lib/typescript/WorkletsError.d.ts.map +1 -0
  213. package/lib/typescript/WorkletsModule/JSWorklets.d.ts +3 -0
  214. package/lib/typescript/WorkletsModule/JSWorklets.d.ts.map +1 -0
  215. package/lib/typescript/WorkletsModule/NativeWorklets.d.ts +3 -0
  216. package/lib/typescript/WorkletsModule/NativeWorklets.d.ts.map +1 -0
  217. package/lib/typescript/WorkletsModule/index.d.ts +3 -0
  218. package/lib/typescript/WorkletsModule/index.d.ts.map +1 -0
  219. package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts +2 -0
  220. package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts.map +1 -0
  221. package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts +2 -0
  222. package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts.map +1 -0
  223. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +37 -0
  224. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -0
  225. package/lib/typescript/bundleUnpacker.d.ts +7 -0
  226. package/lib/typescript/bundleUnpacker.d.ts.map +1 -0
  227. package/lib/typescript/callGuard.d.ts +4 -0
  228. package/lib/typescript/callGuard.d.ts.map +1 -0
  229. package/lib/typescript/deprecated.d.ts +20 -0
  230. package/lib/typescript/deprecated.d.ts.map +1 -0
  231. package/lib/typescript/errors.d.ts +16 -0
  232. package/lib/typescript/errors.d.ts.map +1 -0
  233. package/lib/typescript/featureFlags/index.d.ts +23 -0
  234. package/lib/typescript/featureFlags/index.d.ts.map +1 -0
  235. package/lib/typescript/index.d.ts +17 -0
  236. package/lib/typescript/index.d.ts.map +1 -0
  237. package/lib/typescript/initializers.d.ts +17 -0
  238. package/lib/typescript/initializers.d.ts.map +1 -0
  239. package/lib/typescript/isSynchronizable.d.ts +3 -0
  240. package/lib/typescript/isSynchronizable.d.ts.map +1 -0
  241. package/lib/typescript/logger.d.ts +5 -0
  242. package/lib/typescript/logger.d.ts.map +1 -0
  243. package/lib/typescript/publicGlobals.d.ts +31 -0
  244. package/lib/typescript/publicGlobals.d.ts.map +1 -0
  245. package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts +2 -0
  246. package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts.map +1 -0
  247. package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts +2 -0
  248. package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts.map +1 -0
  249. package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts +6 -0
  250. package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts.map +1 -0
  251. package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts +2 -0
  252. package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts.map +1 -0
  253. package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts +2 -0
  254. package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts.map +1 -0
  255. package/lib/typescript/runLoop/workletRuntime/index.d.ts +2 -0
  256. package/lib/typescript/runLoop/workletRuntime/index.d.ts.map +1 -0
  257. package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts +2 -0
  258. package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts.map +1 -0
  259. package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts +2 -0
  260. package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts.map +1 -0
  261. package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts +2 -0
  262. package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts.map +1 -0
  263. package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts +10 -0
  264. package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts.map +1 -0
  265. package/lib/typescript/runtimeKind.d.ts +25 -0
  266. package/lib/typescript/runtimeKind.d.ts.map +1 -0
  267. package/lib/typescript/runtimes.d.ts +77 -0
  268. package/lib/typescript/runtimes.d.ts.map +1 -0
  269. package/lib/typescript/serializable.d.ts +20 -0
  270. package/lib/typescript/serializable.d.ts.map +1 -0
  271. package/lib/typescript/serializableMappingCache.d.ts +16 -0
  272. package/lib/typescript/serializableMappingCache.d.ts.map +1 -0
  273. package/lib/typescript/specs/NativeWorkletsModule.d.ts +7 -0
  274. package/lib/typescript/specs/NativeWorkletsModule.d.ts.map +1 -0
  275. package/lib/typescript/specs/NativeWorkletsModule.kepler.d.ts +7 -0
  276. package/lib/typescript/specs/NativeWorkletsModule.kepler.d.ts.map +1 -0
  277. package/lib/typescript/specs/index.d.ts +3 -0
  278. package/lib/typescript/specs/index.d.ts.map +1 -0
  279. package/lib/typescript/synchronizable.d.ts +15 -0
  280. package/lib/typescript/synchronizable.d.ts.map +1 -0
  281. package/lib/typescript/synchronizableUnpacker.d.ts +4 -0
  282. package/lib/typescript/synchronizableUnpacker.d.ts.map +1 -0
  283. package/lib/typescript/threads.d.ts +138 -0
  284. package/lib/typescript/threads.d.ts.map +1 -0
  285. package/lib/typescript/utils/checkCppVersion.d.ts +3 -0
  286. package/lib/typescript/utils/checkCppVersion.d.ts.map +1 -0
  287. package/lib/typescript/utils/jsVersion.d.ts +7 -0
  288. package/lib/typescript/utils/jsVersion.d.ts.map +1 -0
  289. package/lib/typescript/valueUnpacker.d.ts +6 -0
  290. package/lib/typescript/valueUnpacker.d.ts.map +1 -0
  291. package/lib/typescript/workletFunction.d.ts +27 -0
  292. package/lib/typescript/workletFunction.d.ts.map +1 -0
  293. package/lib/typescript/workletRuntimeEntry.d.ts +14 -0
  294. package/lib/typescript/workletRuntimeEntry.d.ts.map +1 -0
  295. package/lib/typescript/workletTypes.d.ts +61 -0
  296. package/lib/typescript/workletTypes.d.ts.map +1 -0
  297. package/package.json +153 -0
  298. package/plugin/index.js +1761 -0
  299. package/react-native.config.js +21 -0
  300. package/scripts/validate-react-native-version.js +43 -0
  301. package/scripts/worklets_utils.rb +94 -0
  302. package/src/PlatformChecker/PlatformChecker.ts +7 -0
  303. package/src/PlatformChecker/index.ts +30 -0
  304. package/src/WorkletsError.ts +36 -0
  305. package/src/WorkletsModule/JSWorklets.ts +200 -0
  306. package/src/WorkletsModule/NativeWorklets.ts +256 -0
  307. package/src/WorkletsModule/index.ts +7 -0
  308. package/src/WorkletsModule/workletsModuleInstance.ts +9 -0
  309. package/src/WorkletsModule/workletsModuleInstance.web.ts +5 -0
  310. package/src/WorkletsModule/workletsModuleProxy.ts +126 -0
  311. package/src/bundleUnpacker.ts +75 -0
  312. package/src/callGuard.ts +33 -0
  313. package/src/deprecated.ts +32 -0
  314. package/src/errors.ts +80 -0
  315. package/src/featureFlags/index.ts +72 -0
  316. package/src/featureFlags/staticFlags.json +4 -0
  317. package/src/index.ts +53 -0
  318. package/src/initializers.ts +262 -0
  319. package/src/isSynchronizable.ts +13 -0
  320. package/src/logger.ts +16 -0
  321. package/src/privateGlobals.d.ts +79 -0
  322. package/src/publicGlobals.ts +39 -0
  323. package/src/runLoop/common/setImmediatePolyfill.ts +20 -0
  324. package/src/runLoop/common/setIntervalPolyfill.ts +38 -0
  325. package/src/runLoop/uiRuntime/mockedRequestAnimationFrame.ts +11 -0
  326. package/src/runLoop/uiRuntime/requestAnimationFrame.ts +66 -0
  327. package/src/runLoop/uiRuntime/setTimeoutPolyfill.ts +40 -0
  328. package/src/runLoop/workletRuntime/index.ts +18 -0
  329. package/src/runLoop/workletRuntime/queueMicrotask.ts +13 -0
  330. package/src/runLoop/workletRuntime/requestAnimationFramePolyfill.ts +61 -0
  331. package/src/runLoop/workletRuntime/setTimeout.ts +37 -0
  332. package/src/runLoop/workletRuntime/taskQueue.ts +44 -0
  333. package/src/runtimeKind.ts +37 -0
  334. package/src/runtimes.ts +193 -0
  335. package/src/serializable.ts +801 -0
  336. package/src/serializableMappingCache.ts +42 -0
  337. package/src/specs/NativeWorkletsModule.kepler.ts +11 -0
  338. package/src/specs/NativeWorkletsModule.ts +9 -0
  339. package/src/specs/index.ts +13 -0
  340. package/src/synchronizable.ts +32 -0
  341. package/src/synchronizableUnpacker.ts +67 -0
  342. package/src/threads.ts +452 -0
  343. package/src/utils/checkCppVersion.ts +34 -0
  344. package/src/utils/jsVersion.ts +7 -0
  345. package/src/valueUnpacker.ts +90 -0
  346. package/src/workletFunction.ts +42 -0
  347. package/src/workletRuntimeEntry.ts +35 -0
  348. package/src/workletTypes.ts +81 -0
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ import { SHOULD_BE_USE_WEB } from '../PlatformChecker';
4
+ import { createJSWorkletsModule } from './JSWorklets';
5
+ import { createNativeWorkletsModule } from './NativeWorklets';
6
+ export const WorkletsModule = SHOULD_BE_USE_WEB ? createJSWorkletsModule() : createNativeWorkletsModule();
7
+ //# sourceMappingURL=workletsModuleInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SHOULD_BE_USE_WEB","createJSWorkletsModule","createNativeWorkletsModule","WorkletsModule"],"sourceRoot":"../../../src","sources":["WorkletsModule/workletsModuleInstance.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,iBAAiB,QAAQ,oBAAoB;AACtD,SAASC,sBAAsB,QAAQ,cAAc;AACrD,SAASC,0BAA0B,QAAQ,kBAAkB;AAE7D,OAAO,MAAMC,cAAc,GAAGH,iBAAiB,GAC3CC,sBAAsB,CAAC,CAAC,GACxBC,0BAA0B,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ import { createJSWorkletsModule } from './JSWorklets';
4
+ export const WorkletsModule = createJSWorkletsModule();
5
+ //# sourceMappingURL=workletsModuleInstance.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createJSWorkletsModule","WorkletsModule"],"sourceRoot":"../../../src","sources":["WorkletsModule/workletsModuleInstance.web.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,sBAAsB,QAAQ,cAAc;AAErD,OAAO,MAAMC,cAAc,GAAGD,sBAAsB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ export {};
4
+ //# sourceMappingURL=workletsModuleProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["WorkletsModule/workletsModuleProxy.ts"],"mappings":"AAAA,YAAY;;AAAC","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ import { logger } from './logger';
4
+ import { WorkletsError } from './WorkletsError';
5
+ const handleCache = new WeakMap();
6
+ export function bundleValueUnpacker(objectToUnpack, category, remoteFunctionName) {
7
+ const workletHash = objectToUnpack.__workletHash;
8
+ if (workletHash !== undefined) {
9
+ return getWorklet(workletHash, objectToUnpack.__closure);
10
+ } else if (objectToUnpack.__init !== undefined) {
11
+ let value = handleCache.get(objectToUnpack);
12
+ if (value === undefined) {
13
+ value = objectToUnpack.__init();
14
+ handleCache.set(objectToUnpack, value);
15
+ }
16
+ return value;
17
+ } else if (category === 'RemoteFunction') {
18
+ const remoteFunctionHolder = () => {
19
+ const label = remoteFunctionName ? `function \`${remoteFunctionName}\`` : 'anonymous function';
20
+ throw new WorkletsError(`Tried to synchronously call a non-worklet ${label} on the UI thread.
21
+ See https://docs.swmansion.com/react-native-reanimated/docs/guides/troubleshooting#tried-to-synchronously-call-a-non-worklet-function-on-the-ui-thread for more details.`);
22
+ };
23
+ remoteFunctionHolder.__remoteFunction = objectToUnpack;
24
+ return remoteFunctionHolder;
25
+ } else {
26
+ throw new WorkletsError(`Data type in category "${category}" not recognized by value unpacker: "${globalThis._toString(objectToUnpack)}".`);
27
+ }
28
+ }
29
+ function getWorklet(workletHash, closureVariables) {
30
+ let worklet;
31
+ if (__DEV__) {
32
+ try {
33
+ worklet = getWorkletFromMetroRequire(workletHash, closureVariables);
34
+ } catch (_e) {
35
+ logger.error('Unable to resolve worklet with hash ' + workletHash + '. Try reloading the app.');
36
+ }
37
+ } else {
38
+ worklet = getWorkletFromMetroRequire(workletHash, closureVariables);
39
+ }
40
+ return worklet;
41
+ }
42
+ const metroRequire = globalThis.__r;
43
+ function getWorkletFromMetroRequire(workletHash, closureVariables) {
44
+ const factory = metroRequire(workletHash).default;
45
+ return factory(closureVariables);
46
+ }
47
+ //# sourceMappingURL=bundleUnpacker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["logger","WorkletsError","handleCache","WeakMap","bundleValueUnpacker","objectToUnpack","category","remoteFunctionName","workletHash","__workletHash","undefined","getWorklet","__closure","__init","value","get","set","remoteFunctionHolder","label","__remoteFunction","globalThis","_toString","closureVariables","worklet","__DEV__","getWorkletFromMetroRequire","_e","error","metroRequire","__r","factory","default"],"sourceRoot":"../../src","sources":["bundleUnpacker.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,MAAM,QAAQ,UAAU;AACjC,SAASC,aAAa,QAAQ,iBAAiB;AAG/C,MAAMC,WAAW,GAAG,IAAIC,OAAO,CAA2B,CAAC;AAE3D,OAAO,SAASC,mBAAmBA,CACjCC,cAA8B,EAC9BC,QAAiB,EACjBC,kBAA2B,EAClB;EACT,MAAMC,WAAW,GAAGH,cAAc,CAACI,aAAa;EAChD,IAAID,WAAW,KAAKE,SAAS,EAAE;IAC7B,OAAOC,UAAU,CAACH,WAAW,EAAEH,cAAc,CAACO,SAAS,CAAC;EAC1D,CAAC,MAAM,IAAIP,cAAc,CAACQ,MAAM,KAAKH,SAAS,EAAE;IAC9C,IAAII,KAAK,GAAGZ,WAAW,CAACa,GAAG,CAACV,cAAc,CAAC;IAC3C,IAAIS,KAAK,KAAKJ,SAAS,EAAE;MACvBI,KAAK,GAAGT,cAAc,CAACQ,MAAM,CAAC,CAAC;MAC/BX,WAAW,CAACc,GAAG,CAACX,cAAc,EAAES,KAAK,CAAC;IACxC;IACA,OAAOA,KAAK;EACd,CAAC,MAAM,IAAIR,QAAQ,KAAK,gBAAgB,EAAE;IACxC,MAAMW,oBAAoB,GAAGA,CAAA,KAAM;MACjC,MAAMC,KAAK,GAAGX,kBAAkB,GAC5B,cAAcA,kBAAkB,IAAI,GACpC,oBAAoB;MACxB,MAAM,IAAIN,aAAa,CAAC,6CAA6CiB,KAAK;AAChF,yKAAyK,CAAC;IACtK,CAAC;IACDD,oBAAoB,CAACE,gBAAgB,GAAGd,cAAc;IACtD,OAAOY,oBAAoB;EAC7B,CAAC,MAAM;IACL,MAAM,IAAIhB,aAAa,CACrB,0BAA0BK,QAAQ,wCAAwCc,UAAU,CAACC,SAAS,CAC5FhB,cACF,CAAC,IACH,CAAC;EACH;AACF;AAEA,SAASM,UAAUA,CACjBH,WAAmB,EACnBc,gBAAyC,EACZ;EAC7B,IAAIC,OAAO;EACX,IAAIC,OAAO,EAAE;IACX,IAAI;MACFD,OAAO,GAAGE,0BAA0B,CAACjB,WAAW,EAAEc,gBAAgB,CAAC;IACrE,CAAC,CAAC,OAAOI,EAAE,EAAE;MACX1B,MAAM,CAAC2B,KAAK,CACV,sCAAsC,GACpCnB,WAAW,GACX,0BACJ,CAAC;IACH;EACF,CAAC,MAAM;IACLe,OAAO,GAAGE,0BAA0B,CAACjB,WAAW,EAAEc,gBAAgB,CAAC;EACrE;EACA,OAAOC,OAAO;AAChB;AAEA,MAAMK,YAAY,GAAGR,UAAU,CAACS,GAAG;AAEnC,SAASJ,0BAA0BA,CACjCjB,WAAmB,EACnBc,gBAAyC,EACxB;EACjB,MAAMQ,OAAO,GAAGF,YAAY,CAACpB,WAAW,CAAC,CAACuB,OAAyB;EACnE,OAAOD,OAAO,CAACR,gBAAgB,CAAC;AAClC","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ /** Used only with debug builds. */
4
+ export function callGuardDEV(fn, ...args) {
5
+ 'worklet';
6
+
7
+ try {
8
+ return fn(...args);
9
+ } catch (error) {
10
+ if (globalThis.__workletsModuleProxy) {
11
+ const {
12
+ message,
13
+ stack,
14
+ name,
15
+ jsEngine
16
+ } = error;
17
+ globalThis.__workletsModuleProxy.reportFatalErrorOnJS(message, stack ?? '', name ?? 'WorkletsError', jsEngine ?? 'Worklets');
18
+ } else {
19
+ throw error;
20
+ }
21
+ }
22
+ }
23
+ export function setupCallGuard() {
24
+ 'worklet';
25
+
26
+ if (!globalThis.__callGuardDEV) {
27
+ globalThis.__callGuardDEV = callGuardDEV;
28
+ }
29
+ }
30
+ //# sourceMappingURL=callGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["callGuardDEV","fn","args","error","globalThis","__workletsModuleProxy","message","stack","name","jsEngine","reportFatalErrorOnJS","setupCallGuard","__callGuardDEV"],"sourceRoot":"../../src","sources":["callGuard.ts"],"mappings":"AAAA,YAAY;;AAIZ;AACA,OAAO,SAASA,YAAYA,CAC1BC,EAAkC,EAClC,GAAGC,IAAU,EACO;EACpB,SAAS;;EACT,IAAI;IACF,OAAOD,EAAE,CAAC,GAAGC,IAAI,CAAC;EACpB,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,IAAIC,UAAU,CAACC,qBAAqB,EAAE;MACpC,MAAM;QAAEC,OAAO;QAAEC,KAAK;QAAEC,IAAI;QAAEC;MAAS,CAAC,GAAGN,KAAgB;MAC3DC,UAAU,CAACC,qBAAqB,CAACK,oBAAoB,CACnDJ,OAAO,EACPC,KAAK,IAAI,EAAE,EACXC,IAAI,IAAI,eAAe,EACvBC,QAAQ,IAAI,UACd,CAAC;IACH,CAAC,MAAM;MACL,MAAMN,KAAK;IACb;EACF;AACF;AAEA,OAAO,SAASQ,cAAcA,CAAA,EAAG;EAC/B,SAAS;;EACT,IAAI,CAACP,UAAU,CAACQ,cAAc,EAAE;IAC9BR,UAAU,CAACQ,cAAc,GAAGZ,YAAY;EAC1C;AACF","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ import { createSerializable, isSerializableRef, makeShareable, makeShareableCloneOnUIRecursive } from './serializable';
4
+ import { serializableMappingCache } from './serializableMappingCache';
5
+
6
+ /** @deprecated Use {@link SerializableRef} instead. */
7
+
8
+ export { makeShareable, makeShareableCloneOnUIRecursive };
9
+
10
+ /** @deprecated It will be removed in the next major version. */
11
+
12
+ /** @deprecated Use {@link createSerializable} instead. */
13
+ export const makeShareableCloneRecursive = createSerializable;
14
+
15
+ /** @deprecated Use {@link isSerializableRef} instead. */
16
+ export const isShareableRef = isSerializableRef;
17
+
18
+ /** @deprecated Use {@link serializableMappingCache} instead. */
19
+ export const shareableMappingCache = serializableMappingCache;
20
+ //# sourceMappingURL=deprecated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSerializable","isSerializableRef","makeShareable","makeShareableCloneOnUIRecursive","serializableMappingCache","makeShareableCloneRecursive","isShareableRef","shareableMappingCache"],"sourceRoot":"../../src","sources":["deprecated.ts"],"mappings":"AAAA,YAAY;;AAEZ,SACEA,kBAAkB,EAClBC,iBAAiB,EACjBC,aAAa,EACbC,+BAA+B,QAC1B,gBAAgB;AACvB,SAASC,wBAAwB,QAAQ,4BAA4B;;AAGrE;;AAGA,SAASF,aAAa,EAAEC,+BAA+B;;AAEvD;;AAOA;AACA,OAAO,MAAME,2BAA+C,GAC1DL,kBAAkB;;AAEpB;AACA,OAAO,MAAMM,cAAc,GAAGL,iBAAiB;;AAE/C;AACA,OAAO,MAAMM,qBAAqB,GAAGH,wBAAwB","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ import { WorkletsError } from './WorkletsError';
4
+ const _workletStackDetails = new Map();
5
+ export function registerWorkletStackDetails(hash, stackDetails) {
6
+ _workletStackDetails.set(hash, stackDetails);
7
+ }
8
+ function getBundleOffset(error) {
9
+ const frame = error.stack?.split('\n')?.[0];
10
+ if (frame) {
11
+ const parsedFrame = /@([^@]+):(\d+):(\d+)/.exec(frame);
12
+ if (parsedFrame) {
13
+ const [, file, line, col] = parsedFrame;
14
+ return [file, Number(line), Number(col)];
15
+ }
16
+ }
17
+ return ['unknown', 0, 0];
18
+ }
19
+ function processStack(stack) {
20
+ if (stack === '' || stack === undefined) {
21
+ return undefined;
22
+ }
23
+ const workletStackEntries = stack.match(/worklet_(\d+):(\d+):(\d+)/g);
24
+ let result = stack;
25
+ workletStackEntries?.forEach(match => {
26
+ const [, hash, origLine, origCol] = match.split(/:|_/).map(Number);
27
+ const errorDetails = _workletStackDetails.get(hash);
28
+ if (!errorDetails) {
29
+ return;
30
+ }
31
+ const [error, lineOffset, colOffset] = errorDetails;
32
+ const [bundleFile, bundleLine, bundleCol] = getBundleOffset(error);
33
+ const line = origLine + bundleLine + lineOffset;
34
+ const col = origCol + bundleCol + colOffset;
35
+ result = result.replace(match, `${bundleFile}:${line}:${col}`);
36
+ });
37
+ return result;
38
+ }
39
+ /**
40
+ * Remote error is an error coming from a Worklet Runtime that we bubble up to
41
+ * the RN Runtime.
42
+ */
43
+ export function reportFatalRemoteError({
44
+ message,
45
+ stack,
46
+ name,
47
+ jsEngine
48
+ }, force) {
49
+ const error = new WorkletsError();
50
+ error.message = message;
51
+ error.stack = processStack(stack);
52
+ error.name = name;
53
+ error.jsEngine = jsEngine;
54
+ if (force) {
55
+ throw error;
56
+ } else {
57
+ // @ts-expect-error React Native's `ErrorUtils` are hidden from the global scope.
58
+ globalThis.ErrorUtils.reportFatalError(error);
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Registers `reportFatalRemoteError` function in global scope to allow to
64
+ * invoke it from C++.
65
+ */
66
+ export function registerReportFatalRemoteError() {
67
+ globalThis.__reportFatalRemoteError = reportFatalRemoteError;
68
+ }
69
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WorkletsError","_workletStackDetails","Map","registerWorkletStackDetails","hash","stackDetails","set","getBundleOffset","error","frame","stack","split","parsedFrame","exec","file","line","col","Number","processStack","undefined","workletStackEntries","match","result","forEach","origLine","origCol","map","errorDetails","get","lineOffset","colOffset","bundleFile","bundleLine","bundleCol","replace","reportFatalRemoteError","message","name","jsEngine","force","globalThis","ErrorUtils","reportFatalError","registerReportFatalRemoteError","__reportFatalRemoteError"],"sourceRoot":"../../src","sources":["errors.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,aAAa,QAAQ,iBAAiB;AAG/C,MAAMC,oBAAoB,GAAG,IAAIC,GAAG,CAA8B,CAAC;AAEnE,OAAO,SAASC,2BAA2BA,CACzCC,IAAY,EACZC,YAAiC,EACjC;EACAJ,oBAAoB,CAACK,GAAG,CAACF,IAAI,EAAEC,YAAY,CAAC;AAC9C;AAEA,SAASE,eAAeA,CAACC,KAAY,EAA4B;EAC/D,MAAMC,KAAK,GAAGD,KAAK,CAACE,KAAK,EAAEC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC3C,IAAIF,KAAK,EAAE;IACT,MAAMG,WAAW,GAAG,sBAAsB,CAACC,IAAI,CAACJ,KAAK,CAAC;IACtD,IAAIG,WAAW,EAAE;MACf,MAAM,GAAGE,IAAI,EAAEC,IAAI,EAAEC,GAAG,CAAC,GAAGJ,WAAW;MACvC,OAAO,CAACE,IAAI,EAAEG,MAAM,CAACF,IAAI,CAAC,EAAEE,MAAM,CAACD,GAAG,CAAC,CAAC;IAC1C;EACF;EACA,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1B;AAEA,SAASE,YAAYA,CAACR,KAAc,EAAsB;EACxD,IAAIA,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAKS,SAAS,EAAE;IACvC,OAAOA,SAAS;EAClB;EACA,MAAMC,mBAAmB,GAAGV,KAAK,CAACW,KAAK,CAAC,4BAA4B,CAAC;EACrE,IAAIC,MAAM,GAAGZ,KAAK;EAClBU,mBAAmB,EAAEG,OAAO,CAAEF,KAAK,IAAK;IACtC,MAAM,GAAGjB,IAAI,EAAEoB,QAAQ,EAAEC,OAAO,CAAC,GAAGJ,KAAK,CAACV,KAAK,CAAC,KAAK,CAAC,CAACe,GAAG,CAACT,MAAM,CAAC;IAClE,MAAMU,YAAY,GAAG1B,oBAAoB,CAAC2B,GAAG,CAACxB,IAAI,CAAC;IACnD,IAAI,CAACuB,YAAY,EAAE;MACjB;IACF;IACA,MAAM,CAACnB,KAAK,EAAEqB,UAAU,EAAEC,SAAS,CAAC,GAAGH,YAAY;IACnD,MAAM,CAACI,UAAU,EAAEC,UAAU,EAAEC,SAAS,CAAC,GAAG1B,eAAe,CAACC,KAAK,CAAC;IAClE,MAAMO,IAAI,GAAGS,QAAQ,GAAGQ,UAAU,GAAGH,UAAU;IAC/C,MAAMb,GAAG,GAAGS,OAAO,GAAGQ,SAAS,GAAGH,SAAS;IAE3CR,MAAM,GAAGA,MAAM,CAACY,OAAO,CAACb,KAAK,EAAE,GAAGU,UAAU,IAAIhB,IAAI,IAAIC,GAAG,EAAE,CAAC;EAChE,CAAC,CAAC;EACF,OAAOM,MAAM;AACf;AAMA;AACA;AACA;AACA;AACA,OAAO,SAASa,sBAAsBA,CACpC;EAAEC,OAAO;EAAE1B,KAAK;EAAE2B,IAAI;EAAEC;AAAkB,CAAC,EAC3CC,KAAc,EACR;EACN,MAAM/B,KAAK,GAAG,IAAIR,aAAa,CAAC,CAAY;EAC5CQ,KAAK,CAAC4B,OAAO,GAAGA,OAAO;EACvB5B,KAAK,CAACE,KAAK,GAAGQ,YAAY,CAACR,KAAK,CAAC;EACjCF,KAAK,CAAC6B,IAAI,GAAGA,IAAI;EACjB7B,KAAK,CAAC8B,QAAQ,GAAGA,QAAQ;EACzB,IAAIC,KAAK,EAAE;IACT,MAAM/B,KAAK;EACb,CAAC,MAAM;IACL;IACAgC,UAAU,CAACC,UAAU,CAACC,gBAAgB,CAAClC,KAAK,CAAC;EAC/C;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASmC,8BAA8BA,CAAA,EAAG;EAC/CH,UAAU,CAACI,wBAAwB,GAAGT,sBAAsB;AAC9D","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ import { logger } from '../logger';
4
+ import { WorkletsModule } from '../WorkletsModule';
5
+ export const DynamicFlags = {
6
+ EXAMPLE_DYNAMIC_FLAG: true,
7
+ init() {
8
+ Object.keys(DynamicFlags).forEach(key => {
9
+ if (key !== 'init' && key !== 'setFlag') {
10
+ WorkletsModule.setDynamicFeatureFlag(key, DynamicFlags[key]);
11
+ }
12
+ });
13
+ },
14
+ setFlag(name, value) {
15
+ if (name in DynamicFlags) {
16
+ DynamicFlags[name] = value;
17
+ WorkletsModule.setDynamicFeatureFlag(name, value);
18
+ } else {
19
+ logger.warn(`The feature flag: '${name}' no longer exists, you can safely remove invocation of \`setDynamicFeatureFlag('${name}')\` from your code.`);
20
+ }
21
+ }
22
+ };
23
+ DynamicFlags.init();
24
+ // Public API function to update a feature flag
25
+ export function setDynamicFeatureFlag(name, value) {
26
+ DynamicFlags.setFlag(name, value);
27
+ }
28
+
29
+ /**
30
+ * This constant is needed for typechecking and preserving static typechecks in
31
+ * generated .d.ts files. Without it, the static flags resolve to an object
32
+ * without specific keys.
33
+ */
34
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
+ const DefaultStaticFeatureFlags = {
36
+ RUNTIME_TEST_FLAG: false,
37
+ IOS_DYNAMIC_FRAMERATE_ENABLED: false
38
+ };
39
+ const staticFeatureFlags = {};
40
+ export function getStaticFeatureFlag(name) {
41
+ if (name in staticFeatureFlags) {
42
+ return staticFeatureFlags[name];
43
+ }
44
+ const featureFlagValue = WorkletsModule.getStaticFeatureFlag(name);
45
+ staticFeatureFlags[name] = featureFlagValue;
46
+ return featureFlagValue;
47
+ }
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["logger","WorkletsModule","DynamicFlags","EXAMPLE_DYNAMIC_FLAG","init","Object","keys","forEach","key","setDynamicFeatureFlag","setFlag","name","value","warn","DefaultStaticFeatureFlags","RUNTIME_TEST_FLAG","IOS_DYNAMIC_FRAMERATE_ENABLED","staticFeatureFlags","getStaticFeatureFlag","featureFlagValue"],"sourceRoot":"../../../src","sources":["featureFlags/index.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,MAAM,QAAQ,WAAW;AAClC,SAASC,cAAc,QAAQ,mBAAmB;AAUlD,OAAO,MAAMC,YAA8B,GAAG;EAC5CC,oBAAoB,EAAE,IAAI;EAE1BC,IAAIA,CAAA,EAAG;IACLC,MAAM,CAACC,IAAI,CAACJ,YAAY,CAAC,CAACK,OAAO,CAAEC,GAAG,IAAK;MACzC,IAAIA,GAAG,KAAK,MAAM,IAAIA,GAAG,KAAK,SAAS,EAAE;QACvCP,cAAc,CAACQ,qBAAqB,CAClCD,GAAG,EACHN,YAAY,CAACM,GAAG,CAClB,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC;EACDE,OAAOA,CAACC,IAAI,EAAEC,KAAK,EAAE;IACnB,IAAID,IAAI,IAAIT,YAAY,EAAE;MACxBA,YAAY,CAACS,IAAI,CAAC,GAAGC,KAAK;MAC1BX,cAAc,CAACQ,qBAAqB,CAACE,IAAI,EAAEC,KAAK,CAAC;IACnD,CAAC,MAAM;MACLZ,MAAM,CAACa,IAAI,CACT,sBAAsBF,IAAI,oFAAoFA,IAAI,sBACpH,CAAC;IACH;EACF;AACF,CAAC;AACDT,YAAY,CAACE,IAAI,CAAC,CAAC;AACnB;AACA,OAAO,SAASK,qBAAqBA,CACnCE,IAAqB,EACrBC,KAAc,EACR;EACNV,YAAY,CAACQ,OAAO,CAACC,IAAI,EAAEC,KAAK,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,yBAAyB,GAAG;EAChCC,iBAAiB,EAAE,KAAK;EACxBC,6BAA6B,EAAE;AACjC,CAAkD;AAMlD,MAAMC,kBAAqD,GAAG,CAAC,CAAC;AAEhE,OAAO,SAASC,oBAAoBA,CAClCP,IAAoC,EAC3B;EACT,IAAIA,IAAI,IAAIM,kBAAkB,EAAE;IAC9B,OAAOA,kBAAkB,CAACN,IAAI,CAAC;EACjC;EACA,MAAMQ,gBAAgB,GAAGlB,cAAc,CAACiB,oBAAoB,CAACP,IAAI,CAAC;EAClEM,kBAAkB,CAACN,IAAI,CAAC,GAAGQ,gBAAgB;EAC3C,OAAOA,gBAAgB;AACzB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ {
2
+ "RUNTIME_TEST_FLAG": false,
3
+ "IOS_DYNAMIC_FRAMERATE_ENABLED": true
4
+ }
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ import './publicGlobals';
4
+ import { init } from './initializers';
5
+ import { bundleModeInit } from './workletRuntimeEntry';
6
+ init();
7
+ export { isShareableRef, makeShareable, makeShareableCloneOnUIRecursive, makeShareableCloneRecursive, shareableMappingCache } from './deprecated';
8
+ export { getStaticFeatureFlag, setDynamicFeatureFlag } from './featureFlags';
9
+ export { isSynchronizable } from './isSynchronizable';
10
+ export { getRuntimeKind, RuntimeKind } from './runtimeKind';
11
+ export { createWorkletRuntime, runOnRuntime } from './runtimes';
12
+ export { createSerializable, isSerializableRef } from './serializable';
13
+ export { serializableMappingCache } from './serializableMappingCache';
14
+ export { createSynchronizable } from './synchronizable';
15
+ export { callMicrotasks, executeOnUIRuntimeSync, runOnJS, runOnUI, runOnUIAsync, runOnUISync, scheduleOnRN, scheduleOnUI,
16
+ // eslint-disable-next-line camelcase
17
+ unstable_eventLoopTask } from './threads';
18
+ export { isWorkletFunction } from './workletFunction';
19
+ export { WorkletsModule } from './WorkletsModule';
20
+ // @ts-expect-error We must trick the bundler to include
21
+ // the `workletRuntimeEntry` file the way it cannot optimize it out.
22
+ if (globalThis._ALWAYS_FALSE) {
23
+ // Bundle mode.
24
+ bundleModeInit();
25
+ }
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["init","bundleModeInit","isShareableRef","makeShareable","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","shareableMappingCache","getStaticFeatureFlag","setDynamicFeatureFlag","isSynchronizable","getRuntimeKind","RuntimeKind","createWorkletRuntime","runOnRuntime","createSerializable","isSerializableRef","serializableMappingCache","createSynchronizable","callMicrotasks","executeOnUIRuntimeSync","runOnJS","runOnUI","runOnUIAsync","runOnUISync","scheduleOnRN","scheduleOnUI","unstable_eventLoopTask","isWorkletFunction","WorkletsModule","globalThis","_ALWAYS_FALSE"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,iBAAiB;AAExB,SAASA,IAAI,QAAQ,gBAAgB;AACrC,SAASC,cAAc,QAAQ,uBAAuB;AAEtDD,IAAI,CAAC,CAAC;AAGN,SACEE,cAAc,EACdC,aAAa,EACbC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,qBAAqB,QAChB,cAAc;AACrB,SAASC,oBAAoB,EAAEC,qBAAqB,QAAQ,gBAAgB;AAC5E,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,cAAc,EAAEC,WAAW,QAAQ,eAAe;AAC3D,SAASC,oBAAoB,EAAEC,YAAY,QAAQ,YAAY;AAC/D,SAASC,kBAAkB,EAAEC,iBAAiB,QAAQ,gBAAgB;AACtE,SAASC,wBAAwB,QAAQ,4BAA4B;AAErE,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SACEC,cAAc,EACdC,sBAAsB,EACtBC,OAAO,EACPC,OAAO,EACPC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,YAAY;AACZ;AACAC,sBAAsB,QACjB,WAAW;AAClB,SAASC,iBAAiB,QAAQ,mBAAmB;AAErD,SAASC,cAAc,QAAQ,kBAAkB;AAQjD;AACA;AACA,IAAIC,UAAU,CAACC,aAAa,EAAE;EAC5B;EACA7B,cAAc,CAAC,CAAC;AAClB","ignoreList":[]}
@@ -0,0 +1,221 @@
1
+ 'use strict';
2
+
3
+ import { bundleValueUnpacker } from './bundleUnpacker';
4
+ import { setupCallGuard } from './callGuard';
5
+ import { registerReportFatalRemoteError } from './errors';
6
+ import { IS_JEST, SHOULD_BE_USE_WEB } from './PlatformChecker';
7
+ import { setupSetImmediate } from './runLoop/common/setImmediatePolyfill';
8
+ import { setupSetInterval } from './runLoop/common/setIntervalPolyfill';
9
+ import { mockedRequestAnimationFrame } from './runLoop/uiRuntime/mockedRequestAnimationFrame';
10
+ import { setupRequestAnimationFrame } from './runLoop/uiRuntime/requestAnimationFrame';
11
+ import { setupSetTimeout } from './runLoop/uiRuntime/setTimeoutPolyfill';
12
+ import { RuntimeKind } from './runtimeKind';
13
+ import { __installUnpacker as installSynchronizableUnpacker } from './synchronizableUnpacker';
14
+ import { executeOnUIRuntimeSync, runOnJS, setupMicrotasks } from './threads';
15
+ import { isWorkletFunction } from './workletFunction';
16
+ import { registerWorkletsError, WorkletsError } from './WorkletsError';
17
+ import { WorkletsModule } from './WorkletsModule';
18
+ let capturableConsole;
19
+
20
+ /**
21
+ * Currently there seems to be a bug in the JSI layer which causes a crash when
22
+ * we try to copy some of the console methods, i.e. `clear` or `dirxml`.
23
+ *
24
+ * The crash happens only in React Native 0.75. It's not reproducible in neither
25
+ * 0.76 nor 0.74. It also happens only in the configuration of a debug app and
26
+ * production bundle.
27
+ *
28
+ * I haven't yet discovered what exactly causes the crash. It's tied to the
29
+ * console methods sometimes being `HostFunction`s. Therefore, as a workaround
30
+ * we don't copy the methods as they are in the original console object, we copy
31
+ * JavaScript wrappers instead.
32
+ */
33
+ export function getMemorySafeCapturableConsole() {
34
+ if (capturableConsole) {
35
+ return capturableConsole;
36
+ }
37
+ const consoleCopy = Object.fromEntries(Object.entries(console).map(([methodName, method]) => {
38
+ const methodWrapper = function methodWrapper(...args) {
39
+ return method(...args);
40
+ };
41
+ if (method.name) {
42
+ /**
43
+ * Set the original method name as the wrapper name if available.
44
+ *
45
+ * It might be unnecessary but if we want to fully mimic the console
46
+ * object we should take into the account the fact some code might rely
47
+ * on the method name.
48
+ */
49
+ Object.defineProperty(methodWrapper, 'name', {
50
+ value: method.name,
51
+ writable: false
52
+ });
53
+ }
54
+ return [methodName, methodWrapper];
55
+ }));
56
+ capturableConsole = consoleCopy;
57
+ return consoleCopy;
58
+ }
59
+ export function setupConsole(boundCapturableConsole) {
60
+ 'worklet';
61
+
62
+ // @ts-ignore TypeScript doesn't like that there are missing methods in console object, but we don't provide all the methods for the UI runtime console version
63
+ globalThis.console = {
64
+ assert: runOnJS(boundCapturableConsole.assert),
65
+ debug: runOnJS(boundCapturableConsole.debug),
66
+ log: runOnJS(boundCapturableConsole.log),
67
+ warn: runOnJS(boundCapturableConsole.warn),
68
+ error: runOnJS(boundCapturableConsole.error),
69
+ info: runOnJS(boundCapturableConsole.info)
70
+ };
71
+ }
72
+ let initialized = false;
73
+ export function init() {
74
+ if (initialized) {
75
+ return;
76
+ }
77
+ initialized = true;
78
+ if (globalThis.__RUNTIME_KIND === undefined) {
79
+ // The only runtime that doesn't have `__RUNTIME_KIND` preconfigured
80
+ // is the RN Runtime. We must set it as soon as possible.
81
+ globalThis.__RUNTIME_KIND = RuntimeKind.ReactNative;
82
+ }
83
+ initializeRuntime();
84
+ if (SHOULD_BE_USE_WEB) {
85
+ initializeRuntimeOnWeb();
86
+ }
87
+ if (globalThis.__RUNTIME_KIND !== RuntimeKind.ReactNative) {
88
+ initializeWorkletRuntime();
89
+ } else {
90
+ initializeRNRuntime();
91
+ if (!SHOULD_BE_USE_WEB) {
92
+ installRNBindingsOnUIRuntime();
93
+ }
94
+ }
95
+ }
96
+
97
+ /** A function that should be run on any kind of runtime. */
98
+ function initializeRuntime() {
99
+ if (globalThis._WORKLETS_BUNDLE_MODE) {
100
+ globalThis.__valueUnpacker = bundleValueUnpacker;
101
+ }
102
+ installSynchronizableUnpacker();
103
+ }
104
+
105
+ /** A function that should be run only on React Native runtime. */
106
+ function initializeRNRuntime() {
107
+ if (__DEV__) {
108
+ const testWorklet = () => {
109
+ 'worklet';
110
+ };
111
+ if (!isWorkletFunction(testWorklet)) {
112
+ throw new WorkletsError(`Failed to create a worklet. See https://docs.swmansion.com/react-native-reanimated/docs/guides/troubleshooting#failed-to-create-a-worklet for more details.`);
113
+ }
114
+ }
115
+ registerReportFatalRemoteError();
116
+ }
117
+
118
+ /** A function that should be run only on Worklet runtimes. */
119
+ function initializeWorkletRuntime() {
120
+ if (globalThis._WORKLETS_BUNDLE_MODE) {
121
+ setupCallGuard();
122
+ if (__DEV__) {
123
+ /*
124
+ * Temporary workaround for Metro bundler. We must implement a dummy
125
+ * Refresh module to prevent Metro from throwing irrelevant errors.
126
+ */
127
+ const Refresh = new Proxy({}, {
128
+ get() {
129
+ return () => {};
130
+ }
131
+ });
132
+ globalThis.__r.Refresh = Refresh;
133
+
134
+ /* Gracefully handle unwanted imports from React Native. */
135
+ // @ts-expect-error type not exposed by Metro
136
+ const modules = require.getModules();
137
+ // @ts-expect-error type not exposed by Metro
138
+ const ReactNativeModuleId = require.resolveWeak('react-native');
139
+ const factory = function (_global, _require, _importDefault, _importAll, module, _exports, _dependencyMap) {
140
+ module.exports = new Proxy({}, {
141
+ get: function get(_target, prop) {
142
+ globalThis.console.warn(`You tried to import '${String(prop)}' from 'react-native' module on a Worklet Runtime. Using 'react-native' module on a Worklet Runtime is not allowed.`);
143
+ return {
144
+ get() {
145
+ return undefined;
146
+ }
147
+ };
148
+ }
149
+ });
150
+ };
151
+ const mod = {
152
+ dependencyMap: [],
153
+ factory,
154
+ hasError: false,
155
+ importedAll: {},
156
+ importedDefault: {},
157
+ isInitialized: false,
158
+ publicModule: {
159
+ exports: {}
160
+ }
161
+ };
162
+ modules.set(ReactNativeModuleId, mod);
163
+ }
164
+ }
165
+ }
166
+
167
+ /** A function that should be run only on RN Runtime in web implementation. */
168
+ function initializeRuntimeOnWeb() {
169
+ globalThis._WORKLET = false;
170
+ globalThis._log = console.log;
171
+ globalThis._getAnimationTimestamp = () => performance.now();
172
+ if (IS_JEST) {
173
+ // requestAnimationFrame react-native jest's setup is incorrect as it polyfills
174
+ // the method directly using setTimeout, therefore the callback doesn't get the
175
+ // expected timestamp as the only argument: https://github.com/facebook/react-native/blob/main/packages/react-native/jest/setup.js#L28
176
+ // We override this setup here to make sure that callbacks get the proper timestamps
177
+ // when executed. For non-jest environments we define requestAnimationFrame in setupRequestAnimationFrame
178
+ // @ts-ignore TypeScript uses Node definition for rAF, setTimeout, etc which returns a Timeout object rather than a number
179
+ globalThis.requestAnimationFrame = mockedRequestAnimationFrame;
180
+ }
181
+ }
182
+
183
+ /**
184
+ * A function that should be run on the RN Runtime to configure the UI Runtime
185
+ * with callback bindings.
186
+ */
187
+ function installRNBindingsOnUIRuntime() {
188
+ if (!WorkletsModule) {
189
+ throw new WorkletsError('Worklets are trying to initialize the UI runtime without a valid WorkletsModule');
190
+ }
191
+ const runtimeBoundCapturableConsole = getMemorySafeCapturableConsole();
192
+ if (!globalThis._WORKLETS_BUNDLE_MODE) {
193
+ /** In bundle mode Runtimes setup their callGuard themselves. */
194
+ executeOnUIRuntimeSync(setupCallGuard)();
195
+
196
+ /**
197
+ * Register WorkletsError in the UI runtime global scope. (we are using
198
+ * `executeOnUIRuntimeSync` here to make sure that the changes are applied
199
+ * before any async operations are executed on the UI runtime).
200
+ *
201
+ * There's no need to register the error in bundle mode.
202
+ */
203
+ executeOnUIRuntimeSync(registerWorkletsError)();
204
+ }
205
+ executeOnUIRuntimeSync(() => {
206
+ 'worklet';
207
+
208
+ setupConsole(runtimeBoundCapturableConsole);
209
+ /**
210
+ * TODO: Move `setupMicrotasks` and `setupRequestAnimationFrame` to a
211
+ * separate function once we have a better way to distinguish between
212
+ * Worklet Runtimes.
213
+ */
214
+ setupMicrotasks();
215
+ setupRequestAnimationFrame();
216
+ setupSetTimeout();
217
+ setupSetImmediate();
218
+ setupSetInterval();
219
+ })();
220
+ }
221
+ //# sourceMappingURL=initializers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bundleValueUnpacker","setupCallGuard","registerReportFatalRemoteError","IS_JEST","SHOULD_BE_USE_WEB","setupSetImmediate","setupSetInterval","mockedRequestAnimationFrame","setupRequestAnimationFrame","setupSetTimeout","RuntimeKind","__installUnpacker","installSynchronizableUnpacker","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","__RUNTIME_KIND","undefined","ReactNative","initializeRuntime","initializeRuntimeOnWeb","initializeWorkletRuntime","initializeRNRuntime","installRNBindingsOnUIRuntime","_WORKLETS_BUNDLE_MODE","__valueUnpacker","__DEV__","testWorklet","Refresh","Proxy","get","__r","modules","require","getModules","ReactNativeModuleId","resolveWeak","factory","_global","_require","_importDefault","_importAll","module","_exports","_dependencyMap","exports","_target","prop","String","mod","dependencyMap","hasError","importedAll","importedDefault","isInitialized","publicModule","set","_WORKLET","_log","_getAnimationTimestamp","performance","now","requestAnimationFrame","runtimeBoundCapturableConsole"],"sourceRoot":"../../src","sources":["initializers.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ export function isSynchronizable(value) {
4
+ return typeof value === 'object' && value !== null && '__synchronizableRef' in value && value.__synchronizableRef === true;
5
+ }
6
+ //# sourceMappingURL=isSynchronizable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isSynchronizable","value","__synchronizableRef"],"sourceRoot":"../../src","sources":["isSynchronizable.ts"],"mappings":"AAAA,YAAY;;AAGZ,OAAO,SAASA,gBAAgBA,CAC9BC,KAAc,EACmB;EACjC,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,qBAAqB,IAAIA,KAAK,IAC9BA,KAAK,CAACC,mBAAmB,KAAK,IAAI;AAEtC","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":[]}
@@ -0,0 +1,7 @@
1
+ /* eslint-disable reanimated/use-global-this */
2
+ 'use strict';
3
+
4
+ // This file works by accident - currently Builder Bob doesn't move `.d.ts` files to output types.
5
+ // If it ever breaks, we should address it so we'd not pollute the user's global namespace.
6
+ export {};
7
+ //# sourceMappingURL=privateGlobals.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["privateGlobals.d.ts"],"mappings":"AAAA;AACA,YAAY;;AAEZ;AACA;AAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ /* eslint-disable reanimated/use-global-this */
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ export {};
6
+ //# sourceMappingURL=publicGlobals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["publicGlobals.ts"],"mappings":"AAAA,YAAY;;AACZ;AAEA;AAGA","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/common/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":[]}