@nativescript/canvas 2.0.0-alpha.10 → 2.0.0-alpha.12

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 (372) hide show
  1. package/Canvas/index.android.d.ts +4 -0
  2. package/Canvas/index.android.js +15 -1
  3. package/Canvas/index.android.js.map +1 -1
  4. package/Canvas/index.ios.js +0 -1
  5. package/Canvas/index.ios.js.map +1 -1
  6. package/WebGL/WebGLRenderingContext/index.js +9 -1
  7. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  8. package/package.json +1 -1
  9. package/platforms/android/canvas-release.aar +0 -0
  10. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  11. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +4 -0
  12. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +46 -0
  13. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  14. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +381 -16
  15. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +3 -0
  16. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +3 -0
  17. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  18. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  19. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +8 -0
  20. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +46 -0
  21. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  22. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  23. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +381 -16
  24. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +3 -0
  25. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +3 -0
  26. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +381 -16
  27. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +3 -0
  28. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +3 -0
  29. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +24 -24
  30. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  31. package/platforms/ios/Podfile +1 -1
  32. package/platforms/ios/build.xcconfig +1 -1
  33. package/platforms/ios/src/CanvasModule.h +1 -1
  34. package/platforms/ios/src/cpp/CanvasJSIModule.h +1 -1
  35. package/platforms/ios/src/cpp/CanvasJSIModule.mm +17 -17
  36. package/platforms/ios/src/cpp/Helpers.h +1 -1
  37. package/platforms/ios/src/cpp/ImageAssetImpl.h +1 -1
  38. package/platforms/ios/src/cpp/ImageBitmapImpl.h +1 -1
  39. package/platforms/ios/src/cpp/JSICallback.h +1 -1
  40. package/platforms/ios/src/cpp/JSIReadFileCallback.h +1 -1
  41. package/platforms/ios/src/cpp/TextDecoderImpl.h +1 -1
  42. package/platforms/ios/src/cpp/VecMutableBuffer.h +1 -1
  43. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.h +1 -1
  44. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.h +1 -1
  45. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +1 -1
  46. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.h +1 -1
  47. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.h +1 -1
  48. package/platforms/ios/src/cpp/canvas2d/Path2D.h +1 -1
  49. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.h +1 -1
  50. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.h +1 -1
  51. package/platforms/ios/src/cpp/webgl/WebGLBuffer.h +1 -1
  52. package/platforms/ios/src/cpp/webgl/WebGLFramebuffer.h +1 -1
  53. package/platforms/ios/src/cpp/webgl/WebGLProgram.h +1 -1
  54. package/platforms/ios/src/cpp/webgl/WebGLRenderbuffer.h +1 -1
  55. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.h +1 -1
  56. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +1 -1
  57. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.mm +1 -1
  58. package/platforms/ios/src/cpp/webgl/WebGLShader.h +1 -1
  59. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.h +1 -1
  60. package/platforms/ios/src/cpp/webgl/WebGLTexture.h +1 -1
  61. package/platforms/ios/src/cpp/webgl/WebGLUniformLocation.h +1 -1
  62. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.h +1 -1
  63. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.h +1 -1
  64. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.h +1 -1
  65. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.h +1 -1
  66. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.h +1 -1
  67. package/platforms/ios/src/cpp/webgl/extensions/EXT_shader_texture_lodImpl.h +1 -1
  68. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.h +1 -1
  69. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.h +1 -1
  70. package/platforms/ios/src/cpp/webgl/extensions/OES_fbo_render_mipmap.h +1 -1
  71. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.h +1 -1
  72. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_floatImpl.h +1 -1
  73. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_float_linearImpl.h +1 -1
  74. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.h +1 -1
  75. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_float_linearImpl.h +1 -1
  76. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.h +1 -1
  77. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.h +1 -1
  78. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.h +1 -1
  79. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.h +1 -1
  80. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.h +1 -1
  81. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.h +1 -1
  82. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.h +1 -1
  83. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.h +1 -1
  84. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.h +1 -1
  85. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.h +1 -1
  86. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.h +1 -1
  87. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.h +1 -1
  88. package/platforms/ios/src/cpp/webgl2/WebGLQuery.h +1 -1
  89. package/platforms/ios/src/cpp/webgl2/WebGLSampler.h +1 -1
  90. package/platforms/ios/src/cpp/webgl2/WebGLSyncImpl.h +1 -1
  91. package/platforms/ios/src/cpp/webgl2/WebGLTransformFeedback.h +1 -1
  92. package/platforms/ios/src/cpp/webgl2/WebGLVertexArrayObject.h +1 -1
  93. package/pods/Headers/include/APIDesign.md +0 -72
  94. package/pods/Headers/include/DEPS +0 -10
  95. package/pods/Headers/include/DIR_METADATA +0 -11
  96. package/pods/Headers/include/OWNERS +0 -23
  97. package/pods/Headers/include/cppgc/DEPS +0 -8
  98. package/pods/Headers/include/cppgc/OWNERS +0 -2
  99. package/pods/Headers/include/cppgc/README.md +0 -133
  100. package/pods/Headers/include/cppgc/allocation.h +0 -310
  101. package/pods/Headers/include/cppgc/common.h +0 -29
  102. package/pods/Headers/include/cppgc/cross-thread-persistent.h +0 -465
  103. package/pods/Headers/include/cppgc/custom-space.h +0 -97
  104. package/pods/Headers/include/cppgc/default-platform.h +0 -67
  105. package/pods/Headers/include/cppgc/ephemeron-pair.h +0 -30
  106. package/pods/Headers/include/cppgc/explicit-management.h +0 -100
  107. package/pods/Headers/include/cppgc/garbage-collected.h +0 -106
  108. package/pods/Headers/include/cppgc/heap-consistency.h +0 -266
  109. package/pods/Headers/include/cppgc/heap-state.h +0 -82
  110. package/pods/Headers/include/cppgc/heap-statistics.h +0 -120
  111. package/pods/Headers/include/cppgc/heap.h +0 -206
  112. package/pods/Headers/include/cppgc/internal/api-constants.h +0 -55
  113. package/pods/Headers/include/cppgc/internal/atomic-entry-flag.h +0 -48
  114. package/pods/Headers/include/cppgc/internal/caged-heap-local-data.h +0 -79
  115. package/pods/Headers/include/cppgc/internal/compiler-specific.h +0 -38
  116. package/pods/Headers/include/cppgc/internal/finalizer-trait.h +0 -93
  117. package/pods/Headers/include/cppgc/internal/gc-info.h +0 -156
  118. package/pods/Headers/include/cppgc/internal/logging.h +0 -50
  119. package/pods/Headers/include/cppgc/internal/name-trait.h +0 -122
  120. package/pods/Headers/include/cppgc/internal/persistent-node.h +0 -216
  121. package/pods/Headers/include/cppgc/internal/pointer-policies.h +0 -186
  122. package/pods/Headers/include/cppgc/internal/write-barrier.h +0 -435
  123. package/pods/Headers/include/cppgc/liveness-broker.h +0 -77
  124. package/pods/Headers/include/cppgc/macros.h +0 -26
  125. package/pods/Headers/include/cppgc/member.h +0 -291
  126. package/pods/Headers/include/cppgc/name-provider.h +0 -65
  127. package/pods/Headers/include/cppgc/object-size-trait.h +0 -58
  128. package/pods/Headers/include/cppgc/persistent.h +0 -370
  129. package/pods/Headers/include/cppgc/platform.h +0 -156
  130. package/pods/Headers/include/cppgc/prefinalizer.h +0 -75
  131. package/pods/Headers/include/cppgc/process-heap-statistics.h +0 -36
  132. package/pods/Headers/include/cppgc/sentinel-pointer.h +0 -32
  133. package/pods/Headers/include/cppgc/source-location.h +0 -92
  134. package/pods/Headers/include/cppgc/testing.h +0 -106
  135. package/pods/Headers/include/cppgc/trace-trait.h +0 -116
  136. package/pods/Headers/include/cppgc/type-traits.h +0 -240
  137. package/pods/Headers/include/cppgc/visitor.h +0 -379
  138. package/pods/Headers/include/js_protocol-1.2.json +0 -936
  139. package/pods/Headers/include/js_protocol-1.3.json +0 -1112
  140. package/pods/Headers/include/js_protocol.pdl +0 -1709
  141. package/pods/Headers/include/libffi/arm64/ffi.h +0 -524
  142. package/pods/Headers/include/libffi/arm64/ffitarget.h +0 -92
  143. package/pods/Headers/include/libffi/x86_64/ffi.h +0 -524
  144. package/pods/Headers/include/libffi/x86_64/ffitarget.h +0 -147
  145. package/pods/Headers/include/libffi.h +0 -12
  146. package/pods/Headers/include/libplatform/DEPS +0 -9
  147. package/pods/Headers/include/libplatform/libplatform-export.h +0 -29
  148. package/pods/Headers/include/libplatform/libplatform.h +0 -106
  149. package/pods/Headers/include/libplatform/v8-tracing.h +0 -333
  150. package/pods/Headers/include/v8-array-buffer.h +0 -433
  151. package/pods/Headers/include/v8-callbacks.h +0 -397
  152. package/pods/Headers/include/v8-container.h +0 -129
  153. package/pods/Headers/include/v8-context.h +0 -407
  154. package/pods/Headers/include/v8-cppgc.h +0 -215
  155. package/pods/Headers/include/v8-data.h +0 -80
  156. package/pods/Headers/include/v8-date.h +0 -43
  157. package/pods/Headers/include/v8-debug.h +0 -168
  158. package/pods/Headers/include/v8-embedder-heap.h +0 -218
  159. package/pods/Headers/include/v8-embedder-state-scope.h +0 -51
  160. package/pods/Headers/include/v8-exception.h +0 -217
  161. package/pods/Headers/include/v8-extension.h +0 -62
  162. package/pods/Headers/include/v8-external.h +0 -37
  163. package/pods/Headers/include/v8-fast-api-calls.h +0 -939
  164. package/pods/Headers/include/v8-forward.h +0 -81
  165. package/pods/Headers/include/v8-function-callback.h +0 -475
  166. package/pods/Headers/include/v8-function.h +0 -125
  167. package/pods/Headers/include/v8-initialization.h +0 -315
  168. package/pods/Headers/include/v8-inspector-protocol.h +0 -13
  169. package/pods/Headers/include/v8-inspector.h +0 -376
  170. package/pods/Headers/include/v8-internal.h +0 -661
  171. package/pods/Headers/include/v8-isolate.h +0 -1709
  172. package/pods/Headers/include/v8-json.h +0 -47
  173. package/pods/Headers/include/v8-local-handle.h +0 -455
  174. package/pods/Headers/include/v8-locker.h +0 -149
  175. package/pods/Headers/include/v8-maybe.h +0 -137
  176. package/pods/Headers/include/v8-memory-span.h +0 -43
  177. package/pods/Headers/include/v8-message.h +0 -216
  178. package/pods/Headers/include/v8-metrics.h +0 -255
  179. package/pods/Headers/include/v8-microtask-queue.h +0 -152
  180. package/pods/Headers/include/v8-microtask.h +0 -28
  181. package/pods/Headers/include/v8-object.h +0 -775
  182. package/pods/Headers/include/v8-persistent-handle.h +0 -590
  183. package/pods/Headers/include/v8-platform.h +0 -1092
  184. package/pods/Headers/include/v8-primitive-object.h +0 -118
  185. package/pods/Headers/include/v8-primitive.h +0 -866
  186. package/pods/Headers/include/v8-profiler.h +0 -1198
  187. package/pods/Headers/include/v8-promise.h +0 -174
  188. package/pods/Headers/include/v8-proxy.h +0 -50
  189. package/pods/Headers/include/v8-regexp.h +0 -105
  190. package/pods/Headers/include/v8-script.h +0 -748
  191. package/pods/Headers/include/v8-snapshot.h +0 -196
  192. package/pods/Headers/include/v8-statistics.h +0 -217
  193. package/pods/Headers/include/v8-template.h +0 -1079
  194. package/pods/Headers/include/v8-traced-handle.h +0 -420
  195. package/pods/Headers/include/v8-typed-array.h +0 -282
  196. package/pods/Headers/include/v8-unwinder-state.h +0 -31
  197. package/pods/Headers/include/v8-unwinder.h +0 -132
  198. package/pods/Headers/include/v8-util.h +0 -658
  199. package/pods/Headers/include/v8-value-serializer-version.h +0 -24
  200. package/pods/Headers/include/v8-value-serializer.h +0 -279
  201. package/pods/Headers/include/v8-value.h +0 -526
  202. package/pods/Headers/include/v8-version-string.h +0 -38
  203. package/pods/Headers/include/v8-version.h +0 -20
  204. package/pods/Headers/include/v8-wasm-trap-handler-posix.h +0 -31
  205. package/pods/Headers/include/v8-wasm-trap-handler-win.h +0 -28
  206. package/pods/Headers/include/v8-wasm.h +0 -257
  207. package/pods/Headers/include/v8-weak-callback-info.h +0 -86
  208. package/pods/Headers/include/v8.h +0 -88
  209. package/pods/Headers/include/v8config.h +0 -605
  210. package/pods/Headers/inspector/InspectorServer.h +0 -20
  211. package/pods/Headers/inspector/JsV8InspectorClient.h +0 -66
  212. package/pods/Headers/inspector/base/trace_event/common/trace_event_common.h +0 -1123
  213. package/pods/Headers/inspector/base64.h +0 -9
  214. package/pods/Headers/inspector/src/base/address-region.h +0 -95
  215. package/pods/Headers/inspector/src/base/atomic-utils.h +0 -219
  216. package/pods/Headers/inspector/src/base/atomicops.h +0 -332
  217. package/pods/Headers/inspector/src/base/atomicops_internals_atomicword_compat.h +0 -89
  218. package/pods/Headers/inspector/src/base/base-export.h +0 -31
  219. package/pods/Headers/inspector/src/base/bits.h +0 -343
  220. package/pods/Headers/inspector/src/base/build_config.h +0 -234
  221. package/pods/Headers/inspector/src/base/compiler-specific.h +0 -136
  222. package/pods/Headers/inspector/src/base/export-template.h +0 -163
  223. package/pods/Headers/inspector/src/base/flags.h +0 -130
  224. package/pods/Headers/inspector/src/base/immediate-crash.h +0 -162
  225. package/pods/Headers/inspector/src/base/lazy-instance.h +0 -258
  226. package/pods/Headers/inspector/src/base/logging.h +0 -417
  227. package/pods/Headers/inspector/src/base/macros.h +0 -423
  228. package/pods/Headers/inspector/src/base/memory.h +0 -89
  229. package/pods/Headers/inspector/src/base/once.h +0 -108
  230. package/pods/Headers/inspector/src/base/optional.h +0 -882
  231. package/pods/Headers/inspector/src/base/platform/mutex.h +0 -370
  232. package/pods/Headers/inspector/src/base/platform/platform.h +0 -476
  233. package/pods/Headers/inspector/src/base/platform/semaphore.h +0 -108
  234. package/pods/Headers/inspector/src/base/platform/v8-time.h +0 -513
  235. package/pods/Headers/inspector/src/base/platform/wrappers.h +0 -73
  236. package/pods/Headers/inspector/src/base/safe_conversions.h +0 -389
  237. package/pods/Headers/inspector/src/base/safe_conversions_impl.h +0 -822
  238. package/pods/Headers/inspector/src/base/template-utils.h +0 -113
  239. package/pods/Headers/inspector/src/base/v8-fallthrough.h +0 -21
  240. package/pods/Headers/inspector/src/common/checks.h +0 -38
  241. package/pods/Headers/inspector/src/common/globals.h +0 -1842
  242. package/pods/Headers/inspector/src/debug/debug-interface.h +0 -667
  243. package/pods/Headers/inspector/src/debug/interface-types.h +0 -175
  244. package/pods/Headers/inspector/src/init/v8.h +0 -52
  245. package/pods/Headers/inspector/src/inspector/custom-preview.h +0 -24
  246. package/pods/Headers/inspector/src/inspector/injected-script.h +0 -251
  247. package/pods/Headers/inspector/src/inspector/inspected-context.h +0 -79
  248. package/pods/Headers/inspector/src/inspector/protocol/CSS.h +0 -2148
  249. package/pods/Headers/inspector/src/inspector/protocol/Console.h +0 -211
  250. package/pods/Headers/inspector/src/inspector/protocol/DOM.h +0 -1008
  251. package/pods/Headers/inspector/src/inspector/protocol/Debugger.h +0 -892
  252. package/pods/Headers/inspector/src/inspector/protocol/Forward.h +0 -75
  253. package/pods/Headers/inspector/src/inspector/protocol/HeapProfiler.h +0 -346
  254. package/pods/Headers/inspector/src/inspector/protocol/Log.h +0 -342
  255. package/pods/Headers/inspector/src/inspector/protocol/Network.h +0 -2528
  256. package/pods/Headers/inspector/src/inspector/protocol/Overlay.h +0 -281
  257. package/pods/Headers/inspector/src/inspector/protocol/Page.h +0 -1189
  258. package/pods/Headers/inspector/src/inspector/protocol/Profiler.h +0 -1001
  259. package/pods/Headers/inspector/src/inspector/protocol/Protocol.h +0 -617
  260. package/pods/Headers/inspector/src/inspector/protocol/Runtime.h +0 -1696
  261. package/pods/Headers/inspector/src/inspector/protocol/Schema.h +0 -146
  262. package/pods/Headers/inspector/src/inspector/protocol/Security.h +0 -793
  263. package/pods/Headers/inspector/src/inspector/remote-object-id.h +0 -54
  264. package/pods/Headers/inspector/src/inspector/search-util.h +0 -26
  265. package/pods/Headers/inspector/src/inspector/string-16.h +0 -180
  266. package/pods/Headers/inspector/src/inspector/string-util.h +0 -128
  267. package/pods/Headers/inspector/src/inspector/v8-console-agent-impl.h +0 -48
  268. package/pods/Headers/inspector/src/inspector/v8-console-message.h +0 -147
  269. package/pods/Headers/inspector/src/inspector/v8-console.h +0 -173
  270. package/pods/Headers/inspector/src/inspector/v8-css-agent-impl.h +0 -62
  271. package/pods/Headers/inspector/src/inspector/v8-debugger-agent-impl.h +0 -248
  272. package/pods/Headers/inspector/src/inspector/v8-debugger-id.h +0 -44
  273. package/pods/Headers/inspector/src/inspector/v8-debugger-script.h +0 -123
  274. package/pods/Headers/inspector/src/inspector/v8-debugger.h +0 -257
  275. package/pods/Headers/inspector/src/inspector/v8-dom-agent-impl.h +0 -91
  276. package/pods/Headers/inspector/src/inspector/v8-heap-profiler-agent-impl.h +0 -80
  277. package/pods/Headers/inspector/src/inspector/v8-inspector-impl.h +0 -191
  278. package/pods/Headers/inspector/src/inspector/v8-inspector-session-impl.h +0 -156
  279. package/pods/Headers/inspector/src/inspector/v8-log-agent-impl.h +0 -34
  280. package/pods/Headers/inspector/src/inspector/v8-network-agent-impl.h +0 -71
  281. package/pods/Headers/inspector/src/inspector/v8-ns-debugger-agent-impl.h +0 -24
  282. package/pods/Headers/inspector/src/inspector/v8-overlay-agent-impl.h +0 -70
  283. package/pods/Headers/inspector/src/inspector/v8-page-agent-impl.h +0 -88
  284. package/pods/Headers/inspector/src/inspector/v8-profiler-agent-impl.h +0 -104
  285. package/pods/Headers/inspector/src/inspector/v8-regex.h +0 -38
  286. package/pods/Headers/inspector/src/inspector/v8-runtime-agent-impl.h +0 -157
  287. package/pods/Headers/inspector/src/inspector/v8-schema-agent-impl.h +0 -38
  288. package/pods/Headers/inspector/src/inspector/v8-stack-trace-impl.h +0 -164
  289. package/pods/Headers/inspector/src/inspector/v8-string-conversions.h +0 -17
  290. package/pods/Headers/inspector/src/inspector/v8-value-utils.h +0 -23
  291. package/pods/Headers/inspector/src/inspector/value-mirror.h +0 -87
  292. package/pods/Headers/inspector/src/libplatform/default-platform.h +0 -92
  293. package/pods/Headers/inspector/src/logging/tracing-flags.h +0 -50
  294. package/pods/Headers/inspector/src/numbers/conversions.h +0 -183
  295. package/pods/Headers/inspector/src/tracing/trace-event.h +0 -664
  296. package/pods/Headers/inspector/src/utils/allocation.h +0 -367
  297. package/pods/Headers/inspector/src/utils/vector.h +0 -324
  298. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/cbor.h +0 -305
  299. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/dispatch.h +0 -314
  300. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/error_support.h +0 -62
  301. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/export.h +0 -6
  302. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/find_by_first.h +0 -58
  303. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/frontend_channel.h +0 -47
  304. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/glue.h +0 -80
  305. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/json.h +0 -52
  306. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/json_platform.h +0 -26
  307. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/maybe.h +0 -104
  308. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/parser_handler.h +0 -39
  309. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/protocol_core.h +0 -406
  310. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/serializable.h +0 -32
  311. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/serializer_traits.h +0 -158
  312. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/span.h +0 -99
  313. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/status.h +0 -139
  314. package/pods/Headers/inspector/utils.h +0 -32
  315. package/pods/Headers/inspector/v8-inspector-platform.h +0 -44
  316. package/pods/Headers/jsi/decorator.h +0 -770
  317. package/pods/Headers/jsi/instrumentation.h +0 -117
  318. package/pods/Headers/jsi/jsi-inl.h +0 -338
  319. package/pods/Headers/jsi/jsi.h +0 -1571
  320. package/pods/Headers/jsi/jsilib.h +0 -59
  321. package/pods/Headers/jsi/threadsafe.h +0 -79
  322. package/pods/Headers/runtime/ArgConverter.h +0 -61
  323. package/pods/Headers/runtime/ArrayAdapter.h +0 -13
  324. package/pods/Headers/runtime/Caches.h +0 -98
  325. package/pods/Headers/runtime/ClassBuilder.h +0 -61
  326. package/pods/Headers/runtime/Common.h +0 -9
  327. package/pods/Headers/runtime/ConcurrentMap.h +0 -55
  328. package/pods/Headers/runtime/ConcurrentQueue.h +0 -28
  329. package/pods/Headers/runtime/Console.h +0 -27
  330. package/pods/Headers/runtime/Constants.h +0 -15
  331. package/pods/Headers/runtime/DataWrapper.h +0 -671
  332. package/pods/Headers/runtime/DictionaryAdapter.h +0 -13
  333. package/pods/Headers/runtime/ExtVector.h +0 -21
  334. package/pods/Headers/runtime/FFICall.h +0 -105
  335. package/pods/Headers/runtime/FastEnumerationAdapter.h +0 -13
  336. package/pods/Headers/runtime/FunctionReference.h +0 -18
  337. package/pods/Headers/runtime/Helpers.h +0 -84
  338. package/pods/Headers/runtime/InlineFunctions.h +0 -16
  339. package/pods/Headers/runtime/Interop.h +0 -202
  340. package/pods/Headers/runtime/KnownUnknownClassPair.h +0 -35
  341. package/pods/Headers/runtime/Metadata.h +0 -981
  342. package/pods/Headers/runtime/MetadataBuilder.h +0 -72
  343. package/pods/Headers/runtime/MetadataInlines.h +0 -157
  344. package/pods/Headers/runtime/ModuleInternal.h +0 -59
  345. package/pods/Headers/runtime/NSDataAdapter.h +0 -13
  346. package/pods/Headers/runtime/NativeScriptException.h +0 -27
  347. package/pods/Headers/runtime/ObjectManager.h +0 -31
  348. package/pods/Headers/runtime/OneByteStringResource.h +0 -21
  349. package/pods/Headers/runtime/Pointer.h +0 -26
  350. package/pods/Headers/runtime/PromiseProxy.h +0 -15
  351. package/pods/Headers/runtime/Reference.h +0 -38
  352. package/pods/Headers/runtime/Runtime.h +0 -67
  353. package/pods/Headers/runtime/RuntimeConfig.h +0 -17
  354. package/pods/Headers/runtime/SetTimeout.h +0 -34
  355. package/pods/Headers/runtime/SimpleAllocator.h +0 -23
  356. package/pods/Headers/runtime/StringHasher.h +0 -315
  357. package/pods/Headers/runtime/SymbolIterator.h +0 -18
  358. package/pods/Headers/runtime/SymbolLoader.h +0 -27
  359. package/pods/Headers/runtime/TNSDerivedClass.h +0 -8
  360. package/pods/Headers/runtime/TSHelpers.h +0 -15
  361. package/pods/Headers/runtime/Tasks.h +0 -19
  362. package/pods/Headers/runtime/UnmanagedType.h +0 -21
  363. package/pods/Headers/runtime/WeakRef.h +0 -15
  364. package/pods/Headers/runtime/Worker.h +0 -26
  365. package/pods/Headers/runtime/robin_hood.h +0 -2184
  366. package/pods/Headers/v8runtime/HostProxy.h +0 -71
  367. package/pods/Headers/v8runtime/JSIV8ValueConverter.h +0 -74
  368. package/pods/Headers/v8runtime/V8PointerValue.h +0 -44
  369. package/pods/Headers/v8runtime/V8Runtime.h +0 -240
  370. package/pods/Headers/v8runtime/V8RuntimeConfig.h +0 -26
  371. package/pods/Headers/v8runtime/V8RuntimeFactory.h +0 -21
  372. package/pods/NativeScript.podspec +0 -68
@@ -1,465 +0,0 @@
1
- // Copyright 2020 the V8 project authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef INCLUDE_CPPGC_CROSS_THREAD_PERSISTENT_H_
6
- #define INCLUDE_CPPGC_CROSS_THREAD_PERSISTENT_H_
7
-
8
- #include <atomic>
9
-
10
- #include "cppgc/internal/persistent-node.h"
11
- #include "cppgc/internal/pointer-policies.h"
12
- #include "cppgc/persistent.h"
13
- #include "cppgc/visitor.h"
14
-
15
- namespace cppgc {
16
- namespace internal {
17
-
18
- // Wrapper around PersistentBase that allows accessing poisoned memory when
19
- // using ASAN. This is needed as the GC of the heap that owns the value
20
- // of a CTP, may clear it (heap termination, weakness) while the object
21
- // holding the CTP may be poisoned as itself may be deemed dead.
22
- class CrossThreadPersistentBase : public PersistentBase {
23
- public:
24
- CrossThreadPersistentBase() = default;
25
- explicit CrossThreadPersistentBase(const void* raw) : PersistentBase(raw) {}
26
-
27
- V8_CLANG_NO_SANITIZE("address") const void* GetValueFromGC() const {
28
- return raw_;
29
- }
30
-
31
- V8_CLANG_NO_SANITIZE("address")
32
- PersistentNode* GetNodeFromGC() const { return node_; }
33
-
34
- V8_CLANG_NO_SANITIZE("address")
35
- void ClearFromGC() const {
36
- raw_ = nullptr;
37
- SetNodeSafe(nullptr);
38
- }
39
-
40
- // GetNodeSafe() can be used for a thread-safe IsValid() check in a
41
- // double-checked locking pattern. See ~BasicCrossThreadPersistent.
42
- PersistentNode* GetNodeSafe() const {
43
- return reinterpret_cast<std::atomic<PersistentNode*>*>(&node_)->load(
44
- std::memory_order_acquire);
45
- }
46
-
47
- // The GC writes using SetNodeSafe() while holding the lock.
48
- V8_CLANG_NO_SANITIZE("address")
49
- void SetNodeSafe(PersistentNode* value) const {
50
- #if defined(__has_feature)
51
- #if __has_feature(address_sanitizer)
52
- #define V8_IS_ASAN 1
53
- #endif
54
- #endif
55
-
56
- #ifdef V8_IS_ASAN
57
- __atomic_store(&node_, &value, __ATOMIC_RELEASE);
58
- #else // !V8_IS_ASAN
59
- // Non-ASAN builds can use atomics. This also covers MSVC which does not
60
- // have the __atomic_store intrinsic.
61
- reinterpret_cast<std::atomic<PersistentNode*>*>(&node_)->store(
62
- value, std::memory_order_release);
63
- #endif // !V8_IS_ASAN
64
-
65
- #undef V8_IS_ASAN
66
- }
67
- };
68
-
69
- template <typename T, typename WeaknessPolicy, typename LocationPolicy,
70
- typename CheckingPolicy>
71
- class BasicCrossThreadPersistent final : public CrossThreadPersistentBase,
72
- public LocationPolicy,
73
- private WeaknessPolicy,
74
- private CheckingPolicy {
75
- public:
76
- using typename WeaknessPolicy::IsStrongPersistent;
77
- using PointeeType = T;
78
-
79
- ~BasicCrossThreadPersistent() {
80
- // This implements fast path for destroying empty/sentinel.
81
- //
82
- // Simplified version of `AssignUnsafe()` to allow calling without a
83
- // complete type `T`. Uses double-checked locking with a simple thread-safe
84
- // check for a valid handle based on a node.
85
- if (GetNodeSafe()) {
86
- PersistentRegionLock guard;
87
- const void* old_value = GetValue();
88
- // The fast path check (GetNodeSafe()) does not acquire the lock. Recheck
89
- // validity while holding the lock to ensure the reference has not been
90
- // cleared.
91
- if (IsValid(old_value)) {
92
- CrossThreadPersistentRegion& region =
93
- this->GetPersistentRegion(old_value);
94
- region.FreeNode(GetNode());
95
- SetNode(nullptr);
96
- } else {
97
- CPPGC_DCHECK(!GetNode());
98
- }
99
- }
100
- // No need to call SetValue() as the handle is not used anymore. This can
101
- // leave behind stale sentinel values but will always destroy the underlying
102
- // node.
103
- }
104
-
105
- BasicCrossThreadPersistent(
106
- const SourceLocation& loc = SourceLocation::Current())
107
- : LocationPolicy(loc) {}
108
-
109
- BasicCrossThreadPersistent(
110
- std::nullptr_t, const SourceLocation& loc = SourceLocation::Current())
111
- : LocationPolicy(loc) {}
112
-
113
- BasicCrossThreadPersistent(
114
- SentinelPointer s, const SourceLocation& loc = SourceLocation::Current())
115
- : CrossThreadPersistentBase(s), LocationPolicy(loc) {}
116
-
117
- BasicCrossThreadPersistent(
118
- T* raw, const SourceLocation& loc = SourceLocation::Current())
119
- : CrossThreadPersistentBase(raw), LocationPolicy(loc) {
120
- if (!IsValid(raw)) return;
121
- PersistentRegionLock guard;
122
- CrossThreadPersistentRegion& region = this->GetPersistentRegion(raw);
123
- SetNode(region.AllocateNode(this, &Trace));
124
- this->CheckPointer(raw);
125
- }
126
-
127
- class UnsafeCtorTag {
128
- private:
129
- UnsafeCtorTag() = default;
130
- template <typename U, typename OtherWeaknessPolicy,
131
- typename OtherLocationPolicy, typename OtherCheckingPolicy>
132
- friend class BasicCrossThreadPersistent;
133
- };
134
-
135
- BasicCrossThreadPersistent(
136
- UnsafeCtorTag, T* raw,
137
- const SourceLocation& loc = SourceLocation::Current())
138
- : CrossThreadPersistentBase(raw), LocationPolicy(loc) {
139
- if (!IsValid(raw)) return;
140
- CrossThreadPersistentRegion& region = this->GetPersistentRegion(raw);
141
- SetNode(region.AllocateNode(this, &Trace));
142
- this->CheckPointer(raw);
143
- }
144
-
145
- BasicCrossThreadPersistent(
146
- T& raw, const SourceLocation& loc = SourceLocation::Current())
147
- : BasicCrossThreadPersistent(&raw, loc) {}
148
-
149
- template <typename U, typename MemberBarrierPolicy,
150
- typename MemberWeaknessTag, typename MemberCheckingPolicy,
151
- typename = std::enable_if_t<std::is_base_of<T, U>::value>>
152
- BasicCrossThreadPersistent(
153
- internal::BasicMember<U, MemberBarrierPolicy, MemberWeaknessTag,
154
- MemberCheckingPolicy>
155
- member,
156
- const SourceLocation& loc = SourceLocation::Current())
157
- : BasicCrossThreadPersistent(member.Get(), loc) {}
158
-
159
- BasicCrossThreadPersistent(
160
- const BasicCrossThreadPersistent& other,
161
- const SourceLocation& loc = SourceLocation::Current())
162
- : BasicCrossThreadPersistent(loc) {
163
- // Invoke operator=.
164
- *this = other;
165
- }
166
-
167
- // Heterogeneous ctor.
168
- template <typename U, typename OtherWeaknessPolicy,
169
- typename OtherLocationPolicy, typename OtherCheckingPolicy,
170
- typename = std::enable_if_t<std::is_base_of<T, U>::value>>
171
- BasicCrossThreadPersistent(
172
- const BasicCrossThreadPersistent<U, OtherWeaknessPolicy,
173
- OtherLocationPolicy,
174
- OtherCheckingPolicy>& other,
175
- const SourceLocation& loc = SourceLocation::Current())
176
- : BasicCrossThreadPersistent(loc) {
177
- *this = other;
178
- }
179
-
180
- BasicCrossThreadPersistent(
181
- BasicCrossThreadPersistent&& other,
182
- const SourceLocation& loc = SourceLocation::Current()) noexcept {
183
- // Invoke operator=.
184
- *this = std::move(other);
185
- }
186
-
187
- BasicCrossThreadPersistent& operator=(
188
- const BasicCrossThreadPersistent& other) {
189
- PersistentRegionLock guard;
190
- AssignSafe(guard, other.Get());
191
- return *this;
192
- }
193
-
194
- template <typename U, typename OtherWeaknessPolicy,
195
- typename OtherLocationPolicy, typename OtherCheckingPolicy,
196
- typename = std::enable_if_t<std::is_base_of<T, U>::value>>
197
- BasicCrossThreadPersistent& operator=(
198
- const BasicCrossThreadPersistent<U, OtherWeaknessPolicy,
199
- OtherLocationPolicy,
200
- OtherCheckingPolicy>& other) {
201
- PersistentRegionLock guard;
202
- AssignSafe(guard, other.Get());
203
- return *this;
204
- }
205
-
206
- BasicCrossThreadPersistent& operator=(BasicCrossThreadPersistent&& other) {
207
- if (this == &other) return *this;
208
- Clear();
209
- PersistentRegionLock guard;
210
- PersistentBase::operator=(std::move(other));
211
- LocationPolicy::operator=(std::move(other));
212
- if (!IsValid(GetValue())) return *this;
213
- GetNode()->UpdateOwner(this);
214
- other.SetValue(nullptr);
215
- other.SetNode(nullptr);
216
- this->CheckPointer(Get());
217
- return *this;
218
- }
219
-
220
- /**
221
- * Assigns a raw pointer.
222
- *
223
- * Note: **Not thread-safe.**
224
- */
225
- BasicCrossThreadPersistent& operator=(T* other) {
226
- AssignUnsafe(other);
227
- return *this;
228
- }
229
-
230
- // Assignment from member.
231
- template <typename U, typename MemberBarrierPolicy,
232
- typename MemberWeaknessTag, typename MemberCheckingPolicy,
233
- typename = std::enable_if_t<std::is_base_of<T, U>::value>>
234
- BasicCrossThreadPersistent& operator=(
235
- internal::BasicMember<U, MemberBarrierPolicy, MemberWeaknessTag,
236
- MemberCheckingPolicy>
237
- member) {
238
- return operator=(member.Get());
239
- }
240
-
241
- /**
242
- * Assigns a nullptr.
243
- *
244
- * \returns the handle.
245
- */
246
- BasicCrossThreadPersistent& operator=(std::nullptr_t) {
247
- Clear();
248
- return *this;
249
- }
250
-
251
- /**
252
- * Assigns the sentinel pointer.
253
- *
254
- * \returns the handle.
255
- */
256
- BasicCrossThreadPersistent& operator=(SentinelPointer s) {
257
- PersistentRegionLock guard;
258
- AssignSafe(guard, s);
259
- return *this;
260
- }
261
-
262
- /**
263
- * Returns a pointer to the stored object.
264
- *
265
- * Note: **Not thread-safe.**
266
- *
267
- * \returns a pointer to the stored object.
268
- */
269
- // CFI cast exemption to allow passing SentinelPointer through T* and support
270
- // heterogeneous assignments between different Member and Persistent handles
271
- // based on their actual types.
272
- V8_CLANG_NO_SANITIZE("cfi-unrelated-cast") T* Get() const {
273
- return static_cast<T*>(const_cast<void*>(GetValue()));
274
- }
275
-
276
- /**
277
- * Clears the stored object.
278
- */
279
- void Clear() {
280
- PersistentRegionLock guard;
281
- AssignSafe(guard, nullptr);
282
- }
283
-
284
- /**
285
- * Returns a pointer to the stored object and releases it.
286
- *
287
- * Note: **Not thread-safe.**
288
- *
289
- * \returns a pointer to the stored object.
290
- */
291
- T* Release() {
292
- T* result = Get();
293
- Clear();
294
- return result;
295
- }
296
-
297
- /**
298
- * Conversio to boolean.
299
- *
300
- * Note: **Not thread-safe.**
301
- *
302
- * \returns true if an actual object has been stored and false otherwise.
303
- */
304
- explicit operator bool() const { return Get(); }
305
-
306
- /**
307
- * Conversion to object of type T.
308
- *
309
- * Note: **Not thread-safe.**
310
- *
311
- * \returns the object.
312
- */
313
- operator T*() const { return Get(); }
314
-
315
- /**
316
- * Dereferences the stored object.
317
- *
318
- * Note: **Not thread-safe.**
319
- */
320
- T* operator->() const { return Get(); }
321
- T& operator*() const { return *Get(); }
322
-
323
- template <typename U, typename OtherWeaknessPolicy = WeaknessPolicy,
324
- typename OtherLocationPolicy = LocationPolicy,
325
- typename OtherCheckingPolicy = CheckingPolicy>
326
- BasicCrossThreadPersistent<U, OtherWeaknessPolicy, OtherLocationPolicy,
327
- OtherCheckingPolicy>
328
- To() const {
329
- using OtherBasicCrossThreadPersistent =
330
- BasicCrossThreadPersistent<U, OtherWeaknessPolicy, OtherLocationPolicy,
331
- OtherCheckingPolicy>;
332
- PersistentRegionLock guard;
333
- return OtherBasicCrossThreadPersistent(
334
- typename OtherBasicCrossThreadPersistent::UnsafeCtorTag(),
335
- static_cast<U*>(Get()));
336
- }
337
-
338
- template <typename U = T,
339
- typename = typename std::enable_if<!BasicCrossThreadPersistent<
340
- U, WeaknessPolicy>::IsStrongPersistent::value>::type>
341
- BasicCrossThreadPersistent<U, internal::StrongCrossThreadPersistentPolicy>
342
- Lock() const {
343
- return BasicCrossThreadPersistent<
344
- U, internal::StrongCrossThreadPersistentPolicy>(*this);
345
- }
346
-
347
- private:
348
- static bool IsValid(const void* ptr) {
349
- return ptr && ptr != kSentinelPointer;
350
- }
351
-
352
- static void Trace(Visitor* v, const void* ptr) {
353
- const auto* handle = static_cast<const BasicCrossThreadPersistent*>(ptr);
354
- v->TraceRoot(*handle, handle->Location());
355
- }
356
-
357
- void AssignUnsafe(T* ptr) {
358
- const void* old_value = GetValue();
359
- if (IsValid(old_value)) {
360
- PersistentRegionLock guard;
361
- old_value = GetValue();
362
- // The fast path check (IsValid()) does not acquire the lock. Reload
363
- // the value to ensure the reference has not been cleared.
364
- if (IsValid(old_value)) {
365
- CrossThreadPersistentRegion& region =
366
- this->GetPersistentRegion(old_value);
367
- if (IsValid(ptr) && (&region == &this->GetPersistentRegion(ptr))) {
368
- SetValue(ptr);
369
- this->CheckPointer(ptr);
370
- return;
371
- }
372
- region.FreeNode(GetNode());
373
- SetNode(nullptr);
374
- } else {
375
- CPPGC_DCHECK(!GetNode());
376
- }
377
- }
378
- SetValue(ptr);
379
- if (!IsValid(ptr)) return;
380
- PersistentRegionLock guard;
381
- SetNode(this->GetPersistentRegion(ptr).AllocateNode(this, &Trace));
382
- this->CheckPointer(ptr);
383
- }
384
-
385
- void AssignSafe(PersistentRegionLock&, T* ptr) {
386
- PersistentRegionLock::AssertLocked();
387
- const void* old_value = GetValue();
388
- if (IsValid(old_value)) {
389
- CrossThreadPersistentRegion& region =
390
- this->GetPersistentRegion(old_value);
391
- if (IsValid(ptr) && (&region == &this->GetPersistentRegion(ptr))) {
392
- SetValue(ptr);
393
- this->CheckPointer(ptr);
394
- return;
395
- }
396
- region.FreeNode(GetNode());
397
- SetNode(nullptr);
398
- }
399
- SetValue(ptr);
400
- if (!IsValid(ptr)) return;
401
- SetNode(this->GetPersistentRegion(ptr).AllocateNode(this, &Trace));
402
- this->CheckPointer(ptr);
403
- }
404
-
405
- void ClearFromGC() const {
406
- if (IsValid(GetValueFromGC())) {
407
- WeaknessPolicy::GetPersistentRegion(GetValueFromGC())
408
- .FreeNode(GetNodeFromGC());
409
- CrossThreadPersistentBase::ClearFromGC();
410
- }
411
- }
412
-
413
- // See Get() for details.
414
- V8_CLANG_NO_SANITIZE("cfi-unrelated-cast")
415
- T* GetFromGC() const {
416
- return static_cast<T*>(const_cast<void*>(GetValueFromGC()));
417
- }
418
-
419
- friend class cppgc::Visitor;
420
- };
421
-
422
- template <typename T, typename LocationPolicy, typename CheckingPolicy>
423
- struct IsWeak<
424
- BasicCrossThreadPersistent<T, internal::WeakCrossThreadPersistentPolicy,
425
- LocationPolicy, CheckingPolicy>>
426
- : std::true_type {};
427
-
428
- } // namespace internal
429
-
430
- namespace subtle {
431
-
432
- /**
433
- * **DO NOT USE: Has known caveats, see below.**
434
- *
435
- * CrossThreadPersistent allows retaining objects from threads other than the
436
- * thread the owning heap is operating on.
437
- *
438
- * Known caveats:
439
- * - Does not protect the heap owning an object from terminating.
440
- * - Reaching transitively through the graph is unsupported as objects may be
441
- * moved concurrently on the thread owning the object.
442
- */
443
- template <typename T>
444
- using CrossThreadPersistent = internal::BasicCrossThreadPersistent<
445
- T, internal::StrongCrossThreadPersistentPolicy>;
446
-
447
- /**
448
- * **DO NOT USE: Has known caveats, see below.**
449
- *
450
- * CrossThreadPersistent allows weakly retaining objects from threads other than
451
- * the thread the owning heap is operating on.
452
- *
453
- * Known caveats:
454
- * - Does not protect the heap owning an object from terminating.
455
- * - Reaching transitively through the graph is unsupported as objects may be
456
- * moved concurrently on the thread owning the object.
457
- */
458
- template <typename T>
459
- using WeakCrossThreadPersistent = internal::BasicCrossThreadPersistent<
460
- T, internal::WeakCrossThreadPersistentPolicy>;
461
-
462
- } // namespace subtle
463
- } // namespace cppgc
464
-
465
- #endif // INCLUDE_CPPGC_CROSS_THREAD_PERSISTENT_H_
@@ -1,97 +0,0 @@
1
- // Copyright 2020 the V8 project authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef INCLUDE_CPPGC_CUSTOM_SPACE_H_
6
- #define INCLUDE_CPPGC_CUSTOM_SPACE_H_
7
-
8
- #include <stddef.h>
9
-
10
- namespace cppgc {
11
-
12
- /**
13
- * Index identifying a custom space.
14
- */
15
- struct CustomSpaceIndex {
16
- constexpr CustomSpaceIndex(size_t value) : value(value) {} // NOLINT
17
- size_t value;
18
- };
19
-
20
- /**
21
- * Top-level base class for custom spaces. Users must inherit from CustomSpace
22
- * below.
23
- */
24
- class CustomSpaceBase {
25
- public:
26
- virtual ~CustomSpaceBase() = default;
27
- virtual CustomSpaceIndex GetCustomSpaceIndex() const = 0;
28
- virtual bool IsCompactable() const = 0;
29
- };
30
-
31
- /**
32
- * Base class custom spaces should directly inherit from. The class inheriting
33
- * from `CustomSpace` must define `kSpaceIndex` as unique space index. These
34
- * indices need for form a sequence starting at 0.
35
- *
36
- * Example:
37
- * \code
38
- * class CustomSpace1 : public CustomSpace<CustomSpace1> {
39
- * public:
40
- * static constexpr CustomSpaceIndex kSpaceIndex = 0;
41
- * };
42
- * class CustomSpace2 : public CustomSpace<CustomSpace2> {
43
- * public:
44
- * static constexpr CustomSpaceIndex kSpaceIndex = 1;
45
- * };
46
- * \endcode
47
- */
48
- template <typename ConcreteCustomSpace>
49
- class CustomSpace : public CustomSpaceBase {
50
- public:
51
- /**
52
- * Compaction is only supported on spaces that manually manage slots
53
- * recording.
54
- */
55
- static constexpr bool kSupportsCompaction = false;
56
-
57
- CustomSpaceIndex GetCustomSpaceIndex() const final {
58
- return ConcreteCustomSpace::kSpaceIndex;
59
- }
60
- bool IsCompactable() const final {
61
- return ConcreteCustomSpace::kSupportsCompaction;
62
- }
63
- };
64
-
65
- /**
66
- * User-overridable trait that allows pinning types to custom spaces.
67
- */
68
- template <typename T, typename = void>
69
- struct SpaceTrait {
70
- using Space = void;
71
- };
72
-
73
- namespace internal {
74
-
75
- template <typename CustomSpace>
76
- struct IsAllocatedOnCompactableSpaceImpl {
77
- static constexpr bool value = CustomSpace::kSupportsCompaction;
78
- };
79
-
80
- template <>
81
- struct IsAllocatedOnCompactableSpaceImpl<void> {
82
- // Non-custom spaces are by default not compactable.
83
- static constexpr bool value = false;
84
- };
85
-
86
- template <typename T>
87
- struct IsAllocatedOnCompactableSpace {
88
- public:
89
- static constexpr bool value =
90
- IsAllocatedOnCompactableSpaceImpl<typename SpaceTrait<T>::Space>::value;
91
- };
92
-
93
- } // namespace internal
94
-
95
- } // namespace cppgc
96
-
97
- #endif // INCLUDE_CPPGC_CUSTOM_SPACE_H_
@@ -1,67 +0,0 @@
1
- // Copyright 2020 the V8 project authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef INCLUDE_CPPGC_DEFAULT_PLATFORM_H_
6
- #define INCLUDE_CPPGC_DEFAULT_PLATFORM_H_
7
-
8
- #include <memory>
9
-
10
- #include "cppgc/platform.h"
11
- #include "libplatform/libplatform.h"
12
- #include "v8config.h" // NOLINT(build/include_directory)
13
-
14
- namespace cppgc {
15
-
16
- /**
17
- * Platform provided by cppgc. Uses V8's DefaultPlatform provided by
18
- * libplatform internally. Exception: `GetForegroundTaskRunner()`, see below.
19
- */
20
- class V8_EXPORT DefaultPlatform : public Platform {
21
- public:
22
- using IdleTaskSupport = v8::platform::IdleTaskSupport;
23
- explicit DefaultPlatform(
24
- int thread_pool_size = 0,
25
- IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled,
26
- std::unique_ptr<TracingController> tracing_controller = {})
27
- : v8_platform_(v8::platform::NewDefaultPlatform(
28
- thread_pool_size, idle_task_support,
29
- v8::platform::InProcessStackDumping::kDisabled,
30
- std::move(tracing_controller))) {}
31
-
32
- cppgc::PageAllocator* GetPageAllocator() override {
33
- return v8_platform_->GetPageAllocator();
34
- }
35
-
36
- double MonotonicallyIncreasingTime() override {
37
- return v8_platform_->MonotonicallyIncreasingTime();
38
- }
39
-
40
- std::shared_ptr<cppgc::TaskRunner> GetForegroundTaskRunner() override {
41
- // V8's default platform creates a new task runner when passed the
42
- // `v8::Isolate` pointer the first time. For non-default platforms this will
43
- // require getting the appropriate task runner.
44
- return v8_platform_->GetForegroundTaskRunner(kNoIsolate);
45
- }
46
-
47
- std::unique_ptr<cppgc::JobHandle> PostJob(
48
- cppgc::TaskPriority priority,
49
- std::unique_ptr<cppgc::JobTask> job_task) override {
50
- return v8_platform_->PostJob(priority, std::move(job_task));
51
- }
52
-
53
- TracingController* GetTracingController() override {
54
- return v8_platform_->GetTracingController();
55
- }
56
-
57
- v8::Platform* GetV8Platform() const { return v8_platform_.get(); }
58
-
59
- protected:
60
- static constexpr v8::Isolate* kNoIsolate = nullptr;
61
-
62
- std::unique_ptr<v8::Platform> v8_platform_;
63
- };
64
-
65
- } // namespace cppgc
66
-
67
- #endif // INCLUDE_CPPGC_DEFAULT_PLATFORM_H_
@@ -1,30 +0,0 @@
1
- // Copyright 2020 the V8 project authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef INCLUDE_CPPGC_EPHEMERON_PAIR_H_
6
- #define INCLUDE_CPPGC_EPHEMERON_PAIR_H_
7
-
8
- #include "cppgc/liveness-broker.h"
9
- #include "cppgc/member.h"
10
-
11
- namespace cppgc {
12
-
13
- /**
14
- * An ephemeron pair is used to conditionally retain an object.
15
- * The `value` will be kept alive only if the `key` is alive.
16
- */
17
- template <typename K, typename V>
18
- struct EphemeronPair {
19
- EphemeronPair(K* k, V* v) : key(k), value(v) {}
20
- WeakMember<K> key;
21
- Member<V> value;
22
-
23
- void ClearValueIfKeyIsDead(const LivenessBroker& broker) {
24
- if (!broker.IsHeapObjectAlive(key)) value = nullptr;
25
- }
26
- };
27
-
28
- } // namespace cppgc
29
-
30
- #endif // INCLUDE_CPPGC_EPHEMERON_PAIR_H_