diff --git a/.agents/docs/binding-mapping.md b/.agents/docs/binding-mapping.md index a9c6366..a3379e5 100644 --- a/.agents/docs/binding-mapping.md +++ b/.agents/docs/binding-mapping.md @@ -2,7 +2,7 @@ This is the current reference for Rust/JavaScript conversion and safety in `@taffyjs/node`. It describes the implemented Taffy boundary. Product choices that should constrain future work are recorded in [@taffyjs/node decisions](taffyjs-node-decisions.md). -Recheck version-sensitive behavior whenever Taffy, napi-rs, Node.js, or TypeScript changes. The primary upstream references are [TaffyTree](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs), [Style](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/mod.rs), [geometry](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/geometry.rs), and [napi-rs conversions](https://napi.rs/docs/concepts/type-conversions). +Recheck version-sensitive behavior whenever Taffy, napi-rs, Node.js, or TypeScript changes. The primary upstream references are [TaffyTree](https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/tree/taffy_tree.rs), [Style](https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/style/mod.rs), [geometry](https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/geometry.rs), and [napi-rs conversions](https://napi.rs/docs/concepts/type-conversions). ## Scope and ownership @@ -88,7 +88,7 @@ Non-Style scalar and fixed-object inputs use concrete napi-rs types where their Borrowed Rust values never escape. Direct Style reads, Layout, child arrays, detailed Grid data, available space, and nested records are copied into complete detached JavaScript values. A measure callback's Style is first cloned into an owned Rust snapshot and is converted into a complete detached JavaScript value only when its `getStyle()` function is called. -Layout snapshots expose Taffy's `scrollable_overflow_rect` as `scrollableOverflowRect`; `right` and `bottom` are the reachable content extents formerly represented by `contentSize`, while negative `left` and `top` preserve start-side overflow that the old size could not express. Detailed Grid track snapshots expose per-track `positions` and resolved `lineNames`, replacing the old derived `sizes` and `gutters` arrays and preserving content-alignment offsets and logical RTL order. +Layout snapshots expose Taffy's `scrollable_overflow_rect` as `scrollableOverflowRect`; `right` and `bottom` are the reachable content extents formerly represented by `contentSize`, while negative `left` and `top` preserve start-side overflow that the old size could not express. Detailed Grid track snapshots expose per-track `positions`, the optional `emptyAxisLine` for a content-aligned axis with no tracks, and resolved `lineNames`, replacing the old derived `sizes` and `gutters` arrays and preserving content-alignment offsets and logical RTL order. Binding-produced records and arrays are recursively readonly in TypeScript because mutation cannot update Taffy. Runtime objects remain ordinary mutable, unfrozen objects, and each read or callback `getStyle()` call returns an independent snapshot. There are no live native views, output caches, lazy properties, selectors, prepared queries, or batch snapshots; the callback function is an explicit on-demand operation rather than a property that hides an already materialized object. diff --git a/.agents/docs/query-api-design.md b/.agents/docs/query-api-design.md index c765a62..f3f8a8a 100644 --- a/.agents/docs/query-api-design.md +++ b/.agents/docs/query-api-design.md @@ -82,13 +82,13 @@ This design is deliberately smaller than a general query language. ## Why this boundary remains valid -The values covered by this design are finite and non-recursive in the Taffy revision currently pinned by TaffyJS, [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). +The values covered by this design are finite and non-recursive in the Taffy revision currently pinned by TaffyJS, [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d). -- [`Layout`](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/layout.rs#L263-L294) contains numbers and fixed Point, Size, and Rect records. -- [`DetailedLayoutInfo`](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/layout.rs#L402-L410) currently contains either no details or a Grid value. The Grid details contain fixed records plus arrays of fixed line-position records, line-name strings, and numbers rather than another DetailedLayoutInfo value. -- Style contains fixed records, tagged variants, and collections, but those collections have bounded element shapes. For example, [`GridTemplateComponent::Repeat`](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/grid.rs#L1639-L1648) contains a list of TrackSizingFunction values rather than another list of GridTemplateComponent values. CSS Grid also specifies that [`repeat()` cannot be nested](https://www.w3.org/TR/css-grid/#repeat-notation). +- [`Layout`](https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/tree/layout.rs#L263-L294) contains numbers and fixed Point, Size, and Rect records. +- [`DetailedLayoutInfo`](https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/tree/layout.rs#L402-L410) currently contains either no details or a Grid value. The Grid details contain fixed records plus arrays of fixed line-position records, line-name strings, numbers, and an optional empty-axis line rather than another DetailedLayoutInfo value. +- Style contains fixed records, tagged variants, and collections, but those collections have bounded element shapes. For example, [`GridTemplateComponent::Repeat`](https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/style/grid.rs#L1639-L1648) contains a list of TrackSizingFunction values rather than another list of GridTemplateComponent values. CSS Grid also specifies that [`repeat()` cannot be nested](https://www.w3.org/TR/css-grid/#repeat-notation). -Two related structures are recursive, but neither is embedded in these per-node values. The Taffy node tree refers to children through NodeId and belongs to the tree API. CSS math functions such as `calc()`, `min()`, `max()`, and `clamp()` have a recursive [calculation-tree model](https://www.w3.org/TR/css-values-4/#calc-internal), but [Taffy stores a calc value as an opaque pointer-like handle resolved by the surrounding tree implementation](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/compact_length.rs#L210-L270), not as an expression tree inside Style. +Two related structures are recursive, but neither is embedded in these per-node values. The Taffy node tree refers to children through NodeId and belongs to the tree API. CSS math functions such as `calc()`, `min()`, `max()`, and `clamp()` have a recursive [calculation-tree model](https://www.w3.org/TR/css-values-4/#calc-internal), but [Taffy stores a calc value as an opaque pointer-like handle resolved by the surrounding tree implementation](https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/style/compact_length.rs#L210-L270), not as an expression tree inside Style. New layout features may add fields, variants, collections, or relationships between nodes without making a per-node Style or Layout recursively contain itself. Those changes can extend the generated selectors without changing this model. If TaffyJS later exposes a genuinely recursive value such as a raw CSS expression tree or layout-fragment tree, the existing query can return the whole value or a reference to it without descending recursively, or that new value can receive a separately designed API. diff --git a/.agents/docs/technology-stack.md b/.agents/docs/technology-stack.md index 0ab91fa..fbd3ce8 100644 --- a/.agents/docs/technology-stack.md +++ b/.agents/docs/technology-stack.md @@ -2,7 +2,7 @@ ## Native bindings and distribution -The binding depends on Taffy by exact Git revision, currently [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), which is also the Taffy 0.14.0 release commit. The repository publishes npm packages and no Rust crate, so a Git requirement carries no crates.io restriction. `Cargo.toml` and `Cargo.lock` retain the exact source identity; public package docs name the Taffy release instead of repeating its commit hash when the revision is tagged. The Git-pin strategy was originally supported by a 500-node nested-flexbox measurement on one macOS arm64 host: on 2026-08-22, Taffy 0.13.0 took 26.15 ms while the then-current post-release revision `55cda62a` took 3.24 ms and the `yoga-layout` baseline remained 9.7 ms. That historical comparison is not a performance claim for the current pin. The retained public dataset is measured on the fixed benchmark host, identifies its TaffyJS source commit, and is normally refreshed after a dependency change. +The binding depends on Taffy by exact Git revision, currently [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d), selected from upstream `main` on 2026-08-29. The repository publishes npm packages and no Rust crate, so a Git requirement carries no crates.io restriction. `Cargo.toml` and `Cargo.lock` retain the exact source identity; public package docs name the exact revision while the pin is untagged and name the Taffy release when it is tagged. The Git-pin strategy was originally supported by a 500-node nested-flexbox measurement on one macOS arm64 host: on 2026-08-22, Taffy 0.13.0 took 26.15 ms while the then-current post-release revision `55cda62a` took 3.24 ms and the `yoga-layout` baseline remained 9.7 ms. That historical comparison is not a performance claim for the current pin. The retained public dataset is measured on the fixed benchmark host, identifies its TaffyJS source commit, and is normally refreshed after a dependency change. napi-rs owns the Rust-to-Node boundary, private native declarations, native loader, and target-specific package metadata. It generates an ESM loader, which Vite+ bundles into the ESM public entry without maintaining a custom loader. The pinned napi-rs template deliberately emits bare Node builtin specifiers to retain Node 12 compatibility; TaffyJS targets Node 22.20 or newer, so the repository mechanically normalizes those generated specifiers to the explicit `node:` protocol before formatting and bundling the loader. diff --git a/Cargo.lock b/Cargo.lock index 69f687f..031dcdc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -314,7 +314,7 @@ dependencies = [ [[package]] name = "taffy" version = "0.14.0" -source = "git+https://github.com/DioxusLabs/taffy?rev=77f385683c1d698c91a23a259f87fdddf26925fb#77f385683c1d698c91a23a259f87fdddf26925fb" +source = "git+https://github.com/DioxusLabs/taffy?rev=b3b387132be1dda0e9d08d5044692236532c166d#b3b387132be1dda0e9d08d5044692236532c166d" dependencies = [ "arrayvec", "serde", diff --git a/Cargo.toml b/Cargo.toml index 6a6611c..29bcf0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ rust-version = "1.88" napi = { version = "=3.12.0", features = ["napi8"] } napi-build = "=2.4.0" napi-derive = "=3.6.2" -taffy = { git = "https://github.com/DioxusLabs/taffy", rev = "77f385683c1d698c91a23a259f87fdddf26925fb" } +taffy = { git = "https://github.com/DioxusLabs/taffy", rev = "b3b387132be1dda0e9d08d5044692236532c166d" } [profile.release] lto = true diff --git a/apps/website/node/index.md b/apps/website/node/index.md index c9ce801..f918f52 100644 --- a/apps/website/node/index.md +++ b/apps/website/node/index.md @@ -1,6 +1,6 @@ # `@taffyjs/node` -`@taffyjs/node` is the native Node-API binding for Taffy 0.14.0. It provides an explicit in-memory layout tree for Block, Flexbox, and Grid through readable JavaScript inputs and outputs. +`@taffyjs/node` is the native Node-API binding for Taffy at upstream main revision [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d). It provides an explicit in-memory layout tree for Block, Flexbox, and Grid through readable JavaScript inputs and outputs. Follow [Getting Started](../guide/getting-started.md) to install the package and compute a first layout. diff --git a/apps/website/wasm/index.md b/apps/website/wasm/index.md index f23f423..d5a86ab 100644 --- a/apps/website/wasm/index.md +++ b/apps/website/wasm/index.md @@ -1,6 +1,6 @@ # `@taffyjs/wasm` -`@taffyjs/wasm` runs the same TaffyJS API through WebAssembly, using Taffy 0.14.0. Choose it for a bundled browser application, or when you want to use WebAssembly explicitly in Node.js instead of loading a native addon. +`@taffyjs/wasm` runs the same TaffyJS API through WebAssembly, using Taffy at upstream main revision [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d). Choose it for a bundled browser application, or when you want to use WebAssembly explicitly in Node.js instead of loading a native addon. Read the [Design](./design.md) to understand how the package keeps one direct API across native and WebAssembly runtimes. diff --git a/benchmarks/results/published.json b/benchmarks/results/published.json index 6d61622..cea02d4 100644 --- a/benchmarks/results/published.json +++ b/benchmarks/results/published.json @@ -1,12 +1,12 @@ { "schemaVersion": 3, - "generatedAt": "2026-08-25T02:16:51.246Z", + "generatedAt": "2026-08-29T04:41:30.139Z", "source": { - "commit": "2a19dc217cd15ad8170d890ef7dbf46bf76037ea", + "commit": "93c4ba79c165fd3cd043fd3d231508c4af0bf9e7", "dirty": false }, "environment": { - "node": "v24.19.0", + "node": "v24.20.0", "platform": "darwin", "release": "25.6.0", "arch": "arm64", @@ -89,200 +89,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 4041.3692507037267, - "meanMs": 0.24744381953388303, - "medianMs": 0.23456249999998136, - "minMs": 0.22470799999996416, - "maxMs": 2.855957999999987, - "p75Ms": 0.2449789999998302, - "p99Ms": 0.40627100000006067, - "maxRelativeMarginOfError": 0.4562268413524829, + "hz": 4247.239283669984, + "meanMs": 0.23544760615590357, + "medianMs": 0.22825000000000273, + "minMs": 0.2206659999999374, + "maxMs": 0.5972500000000309, + "p75Ms": 0.23337500000002365, + "p99Ms": 0.28560399999992114, + "maxRelativeMarginOfError": 0.14482528319848628, "measureCalls": 5, "readCount": 4656, "roundCount": 2, - "sampleCount": 20208, + "sampleCount": 21237, "rounds": [ { - "hz": 4027.46118468987, - "meanMs": 0.24829537868705837, - "medianMs": 0.2351250000000391, - "minMs": 0.22470799999996416, - "maxMs": 2.239458999999897, - "p75Ms": 0.2464999999997417, - "p99Ms": 0.4237920000000486, - "relativeMarginOfError": 0.45146492352936674, - "sampleCount": 10069 + "hz": 4240.767145928748, + "meanMs": 0.2358063920015102, + "medianMs": 0.22866700000008677, + "minMs": 0.2206659999999374, + "maxMs": 0.48791700000015226, + "p75Ms": 0.2337079999999787, + "p99Ms": 0.2853749999999309, + "relativeMarginOfError": 0.13567798567565809, + "sampleCount": 10602 }, { - "hz": 4055.2773167175837, - "meanMs": 0.2465922603807077, - "medianMs": 0.2339999999999236, - "minMs": 0.22474999999985812, - "maxMs": 2.855957999999987, - "p75Ms": 0.24345799999991868, - "p99Ms": 0.38875000000007276, - "relativeMarginOfError": 0.4562268413524829, - "sampleCount": 10139 + "hz": 4253.71142141122, + "meanMs": 0.23508882031029693, + "medianMs": 0.22783299999991868, + "minMs": 0.2207499999999527, + "maxMs": 0.5972500000000309, + "p75Ms": 0.23304200000006858, + "p99Ms": 0.2858329999999114, + "relativeMarginOfError": 0.14482528319848628, + "sampleCount": 10635 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 46.983959281263004, - "meanMs": 21.285251113624927, - "medianMs": 21.152250000000038, - "minMs": 20.320999999999913, - "maxMs": 27.377415999999812, - "p75Ms": 21.35025050000013, - "p99Ms": 25.705208500000083, - "maxRelativeMarginOfError": 0.7010522064593471, + "hz": 49.59560750497275, + "meanMs": 20.174601647670062, + "medianMs": 20.17765650000007, + "minMs": 19.41800000000012, + "maxMs": 21.115291999999954, + "p75Ms": 20.2732289999999, + "p99Ms": 20.52400000000023, + "maxRelativeMarginOfError": 0.14687800385516542, "measureCalls": 5, "readCount": 4656, "roundCount": 2, - "sampleCount": 236, + "sampleCount": 249, "rounds": [ { - "hz": 46.604093633877845, - "meanMs": 21.45734252136751, - "medianMs": 21.335457999999903, - "minMs": 20.77312499999971, - "maxMs": 27.377415999999812, - "p75Ms": 21.51020900000003, - "p99Ms": 26.993625000000065, - "relativeMarginOfError": 0.7010522064593471, - "sampleCount": 117 + "hz": 50.781034157176116, + "meanMs": 19.692391393700774, + "medianMs": 19.68054200000006, + "minMs": 19.41800000000012, + "maxMs": 20.025957999999946, + "p75Ms": 19.782832999999755, + "p99Ms": 19.966333000000077, + "relativeMarginOfError": 0.11261724241543299, + "sampleCount": 127 }, { - "hz": 47.363824928648164, - "meanMs": 21.113159705882342, - "medianMs": 20.969042000000172, - "minMs": 20.320999999999913, - "maxMs": 27.115082999999686, - "p75Ms": 21.190292000000227, - "p99Ms": 24.4167920000001, - "relativeMarginOfError": 0.6728000647881687, - "sampleCount": 119 + "hz": 48.41018085276938, + "meanMs": 20.65681190163935, + "medianMs": 20.674771000000078, + "minMs": 20.128917, + "maxMs": 21.115291999999954, + "p75Ms": 20.763625000000047, + "p99Ms": 21.08166700000038, + "relativeMarginOfError": 0.14687800385516542, + "sampleCount": 122 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 475.0335665482071, - "meanMs": 2.118990061505086, - "medianMs": 1.9182394999999701, - "minMs": 1.7612920000001395, - "maxMs": 9.467207999999573, - "p75Ms": 2.148250000000189, - "p99Ms": 4.5914169999999785, - "maxRelativeMarginOfError": 2.038839880530137, + "hz": 523.4527735104862, + "meanMs": 1.9104174156756872, + "medianMs": 1.8092499999999632, + "minMs": 1.745792000000165, + "maxMs": 4.33400000000006, + "p75Ms": 1.8620204999999714, + "p99Ms": 2.839166999999975, + "maxRelativeMarginOfError": 0.7882619190407485, "measureCalls": 3, "readCount": 4656, "roundCount": 2, - "sampleCount": 2376, + "sampleCount": 2618, "rounds": [ { - "hz": 513.4738635023134, - "meanMs": 1.947518795171343, - "medianMs": 1.8444999999999254, - "minMs": 1.7612920000001395, - "maxMs": 6.827666999999906, - "p75Ms": 1.9484160000001793, - "p99Ms": 3.6449589999999716, - "relativeMarginOfError": 0.9884126051917673, - "sampleCount": 1284 + "hz": 525.3613760296818, + "meanMs": 1.9034516917808253, + "medianMs": 1.8054999999999382, + "minMs": 1.745792000000165, + "maxMs": 4.14325000000008, + "p75Ms": 1.8512909999999465, + "p99Ms": 2.811749999999847, + "relativeMarginOfError": 0.7882619190407485, + "sampleCount": 1314 }, { - "hz": 436.59326959410083, - "meanMs": 2.290461327838829, - "medianMs": 1.9919790000000148, - "minMs": 1.780958999999939, - "maxMs": 9.467207999999573, - "p75Ms": 2.348084000000199, - "p99Ms": 5.5378749999999854, - "relativeMarginOfError": 2.038839880530137, - "sampleCount": 1092 + "hz": 521.5441709912906, + "meanMs": 1.9173831395705492, + "medianMs": 1.8129999999999882, + "minMs": 1.756458000000066, + "maxMs": 4.33400000000006, + "p75Ms": 1.8727499999999964, + "p99Ms": 2.8665840000001026, + "relativeMarginOfError": 0.7853688600456576, + "sampleCount": 1304 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 37.012033221537266, - "meanMs": 27.01830218817203, - "medianMs": 26.82368749999989, - "minMs": 25.947125000000142, - "maxMs": 32.304874999999925, - "p75Ms": 27.06579150000016, - "p99Ms": 31.146791499999892, - "maxRelativeMarginOfError": 0.7740900543203504, + "hz": 37.69255509610161, + "meanMs": 26.535548953797054, + "medianMs": 26.426187500000083, + "minMs": 25.36570900000015, + "maxMs": 34.736916000000065, + "p75Ms": 26.622354499999915, + "p99Ms": 31.503270499999985, + "maxRelativeMarginOfError": 0.7596874486427884, "measureCalls": 3, "readCount": 4656, "roundCount": 2, - "sampleCount": 186, + "sampleCount": 189, "rounds": [ { - "hz": 37.06814244916942, - "meanMs": 26.977343182795686, - "medianMs": 26.75412499999993, - "minMs": 25.947125000000142, - "maxMs": 32.304874999999925, - "p75Ms": 26.94820800000025, - "p99Ms": 32.304874999999925, - "relativeMarginOfError": 0.7740900543203504, + "hz": 37.16945108233776, + "meanMs": 26.903814043010758, + "medianMs": 26.73570800000016, + "minMs": 26.058874999999716, + "maxMs": 34.736916000000065, + "p75Ms": 26.949916999999914, + "p99Ms": 34.736916000000065, + "relativeMarginOfError": 0.7596874486427884, "sampleCount": 93 }, { - "hz": 36.95592399390512, - "meanMs": 27.059261193548377, - "medianMs": 26.893249999999853, - "minMs": 26.091292000000067, - "maxMs": 29.98870799999986, - "p75Ms": 27.18337500000007, - "p99Ms": 29.98870799999986, - "relativeMarginOfError": 0.5531402273871143, - "sampleCount": 93 + "hz": 38.215659109865456, + "meanMs": 26.16728386458335, + "medianMs": 26.116667000000007, + "minMs": 25.36570900000015, + "maxMs": 28.269624999999905, + "p75Ms": 26.294791999999916, + "p99Ms": 28.269624999999905, + "relativeMarginOfError": 0.37954863246125553, + "sampleCount": 96 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 2249.1177254495765, - "meanMs": 0.44470998165478887, - "medianMs": 0.4357705000001033, - "minMs": 0.4167909999996482, - "maxMs": 5.833625000000211, - "p75Ms": 0.44212500000003274, - "p99Ms": 0.5459375000000932, - "maxRelativeMarginOfError": 0.7321138155148602, + "hz": 2282.93345547181, + "meanMs": 0.438033686195609, + "medianMs": 0.4359164999998484, + "minMs": 0.42412500000000364, + "maxMs": 1.1369579999998223, + "p75Ms": 0.43916649999994206, + "p99Ms": 0.48460449999981847, + "maxRelativeMarginOfError": 0.09212148793956974, "measureCalls": 1, "readCount": 4656, "roundCount": 2, - "sampleCount": 11247, + "sampleCount": 11415, "rounds": [ { - "hz": 2281.32493152771, - "meanMs": 0.43834176630434707, - "medianMs": 0.432166000000052, - "minMs": 0.4167909999996482, - "maxMs": 1.3375840000003336, - "p75Ms": 0.43816700000024866, - "p99Ms": 0.5135420000000295, - "relativeMarginOfError": 0.2501838642466433, - "sampleCount": 5704 + "hz": 2285.9593858167773, + "meanMs": 0.43745309133858395, + "medianMs": 0.43545799999992596, + "minMs": 0.42412500000000364, + "maxMs": 0.6984170000000631, + "p75Ms": 0.43887500000005275, + "p99Ms": 0.4822919999996884, + "relativeMarginOfError": 0.061148924285201606, + "sampleCount": 5715 }, { - "hz": 2216.910519371443, - "meanMs": 0.45107819700523066, - "medianMs": 0.4393750000001546, - "minMs": 0.42591700000002675, - "maxMs": 5.833625000000211, - "p75Ms": 0.4460829999998168, - "p99Ms": 0.578333000000157, - "relativeMarginOfError": 0.7321138155148602, - "sampleCount": 5543 + "hz": 2279.9075251268423, + "meanMs": 0.438614281052634, + "medianMs": 0.4363749999997708, + "minMs": 0.4247090000001208, + "maxMs": 1.1369579999998223, + "p75Ms": 0.4394579999998314, + "p99Ms": 0.48691699999994853, + "relativeMarginOfError": 0.09212148793956974, + "sampleCount": 5700 } ] } @@ -315,200 +315,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 259.40875753379567, - "meanMs": 3.8552165753579737, - "medianMs": 3.771197749999999, - "minMs": 3.520042000000103, - "maxMs": 10.211499999999887, - "p75Ms": 3.8587709999999333, - "p99Ms": 6.337562499999876, - "maxRelativeMarginOfError": 1.0741723773910767, + "hz": 265.20643361050406, + "meanMs": 3.7706747653465227, + "medianMs": 3.7344170000000076, + "minMs": 3.5047499999996035, + "maxMs": 7.4650420000000395, + "p75Ms": 3.795249500000068, + "p99Ms": 4.9173745000001645, + "maxRelativeMarginOfError": 0.5280485213624285, "measureCalls": 785, "readCount": 4656, "roundCount": 2, - "sampleCount": 1299, + "sampleCount": 1327, "rounds": [ { - "hz": 261.6841127336274, - "meanMs": 3.821401267175576, - "medianMs": 3.7539999999999054, - "minMs": 3.520042000000103, - "maxMs": 7.764792000000057, - "p75Ms": 3.833958000000166, - "p99Ms": 5.698041999999987, - "relativeMarginOfError": 0.7464390485198542, - "sampleCount": 655 + "hz": 264.49447555443123, + "meanMs": 3.7807973036253704, + "medianMs": 3.7421249999999873, + "minMs": 3.5369160000000193, + "maxMs": 7.4650420000000395, + "p75Ms": 3.8067909999999756, + "p99Ms": 5.082333000000062, + "relativeMarginOfError": 0.5280485213624285, + "sampleCount": 662 }, { - "hz": 257.133402333964, - "meanMs": 3.889031883540371, - "medianMs": 3.7883955000000924, - "minMs": 3.5282079999999496, - "maxMs": 10.211499999999887, - "p75Ms": 3.8835839999997006, - "p99Ms": 6.977082999999766, - "relativeMarginOfError": 1.0741723773910767, - "sampleCount": 644 + "hz": 265.91839166657695, + "meanMs": 3.7605522270676746, + "medianMs": 3.726709000000028, + "minMs": 3.5047499999996035, + "maxMs": 7.334040999999843, + "p75Ms": 3.7837080000001606, + "p99Ms": 4.752416000000267, + "relativeMarginOfError": 0.47368512015243835, + "sampleCount": 665 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 34.575115301499466, - "meanMs": 28.922899666666655, - "medianMs": 28.342999999999847, - "minMs": 26.470332999999982, - "maxMs": 40.677208000000064, - "p75Ms": 29.35066699999993, - "p99Ms": 38.67145800000003, - "maxRelativeMarginOfError": 1.6794695713058447, + "hz": 35.808145255664755, + "meanMs": 27.926767572222218, + "medianMs": 27.66667700000005, + "minMs": 25.79079200000001, + "maxMs": 31.191499999999905, + "p75Ms": 28.60387499999979, + "p99Ms": 31.053645999999958, + "maxRelativeMarginOfError": 0.7602507337270867, "measureCalls": 785, "readCount": 4656, "roundCount": 2, - "sampleCount": 174, + "sampleCount": 180, "rounds": [ { - "hz": 34.697799339178204, - "meanMs": 28.820271574712624, - "medianMs": 28.360124999999698, - "minMs": 26.739250000000084, - "maxMs": 36.665707999999995, - "p75Ms": 29.428750000000036, - "p99Ms": 36.665707999999995, - "relativeMarginOfError": 1.1219925482000375, - "sampleCount": 87 + "hz": 35.72228247325405, + "meanMs": 27.993731944444452, + "medianMs": 27.708958000000052, + "minMs": 26.14412500000026, + "maxMs": 30.91579200000001, + "p75Ms": 28.726166999999805, + "p99Ms": 30.91579200000001, + "relativeMarginOfError": 0.7453615714030695, + "sampleCount": 90 }, { - "hz": 34.452431263820735, - "meanMs": 29.025527758620687, - "medianMs": 28.325874999999996, - "minMs": 26.470332999999982, - "maxMs": 40.677208000000064, - "p75Ms": 29.272583999999824, - "p99Ms": 40.677208000000064, - "relativeMarginOfError": 1.6794695713058447, - "sampleCount": 87 + "hz": 35.89400803807546, + "meanMs": 27.859803199999984, + "medianMs": 27.624396000000047, + "minMs": 25.79079200000001, + "maxMs": 31.191499999999905, + "p75Ms": 28.481582999999773, + "p99Ms": 31.191499999999905, + "relativeMarginOfError": 0.7602507337270867, + "sampleCount": 90 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 419.96749315384136, - "meanMs": 2.3814655141971026, - "medianMs": 2.246614999999906, - "minMs": 2.0156670000001213, - "maxMs": 7.560542000000169, - "p75Ms": 2.3926869999999667, - "p99Ms": 3.809624999999869, - "maxRelativeMarginOfError": 1.0475840614415608, + "hz": 441.3241782580564, + "meanMs": 2.2659351815900868, + "medianMs": 2.157791500000002, + "minMs": 2.0546659999999974, + "maxMs": 5.985541000000012, + "p75Ms": 2.2239794999999276, + "p99Ms": 3.220271000000025, + "maxRelativeMarginOfError": 0.7950971273367284, "measureCalls": 53, "readCount": 4656, "roundCount": 2, - "sampleCount": 2101, + "sampleCount": 2208, "rounds": [ { - "hz": 424.902476827209, - "meanMs": 2.3534812210724305, - "medianMs": 2.2257919999997284, - "minMs": 2.0156670000001213, - "maxMs": 7.560542000000169, - "p75Ms": 2.3665829999999914, - "p99Ms": 3.7869580000001406, - "relativeMarginOfError": 1.0475840614415608, - "sampleCount": 1063 + "hz": 442.8518139611992, + "meanMs": 2.258091687725628, + "medianMs": 2.1497080000000324, + "minMs": 2.0546659999999974, + "maxMs": 4.451917000000321, + "p75Ms": 2.218291999999792, + "p99Ms": 3.2504169999999704, + "relativeMarginOfError": 0.7800327707768617, + "sampleCount": 1108 }, { - "hz": 415.0325094804737, - "meanMs": 2.4094498073217747, - "medianMs": 2.2674380000000838, - "minMs": 2.0884580000001733, - "maxMs": 6.5307920000000195, - "p75Ms": 2.418790999999942, - "p99Ms": 3.8322919999995975, - "relativeMarginOfError": 1.029751557579118, - "sampleCount": 1038 + "hz": 439.79654255491363, + "meanMs": 2.2737786754545453, + "medianMs": 2.1658749999999714, + "minMs": 2.071833999999967, + "maxMs": 5.985541000000012, + "p75Ms": 2.229667000000063, + "p99Ms": 3.19012500000008, + "relativeMarginOfError": 0.7950971273367284, + "sampleCount": 1100 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 35.99014312043027, - "meanMs": 27.785397807570206, - "medianMs": 27.34480199999996, - "minMs": 26.253208000000086, - "maxMs": 49.375082999999904, - "p75Ms": 27.74541649999992, - "p99Ms": 44.45181200000002, - "maxRelativeMarginOfError": 1.9724012569697618, + "hz": 36.951929807664186, + "meanMs": 27.06240165591398, + "medianMs": 26.998896500000114, + "minMs": 25.886457999999948, + "maxMs": 30.24716699999999, + "p75Ms": 27.252666500000032, + "p99Ms": 29.909958499999902, + "maxRelativeMarginOfError": 0.5281540068297804, "measureCalls": 53, "readCount": 4656, "roundCount": 2, - "sampleCount": 181, + "sampleCount": 186, "rounds": [ { - "hz": 36.01411786030711, - "meanMs": 27.766888637362626, - "medianMs": 27.21008299999994, - "minMs": 26.253208000000086, - "maxMs": 49.375082999999904, - "p75Ms": 27.602499999999964, - "p99Ms": 49.375082999999904, - "relativeMarginOfError": 1.9724012569697618, - "sampleCount": 91 + "hz": 37.05622562431269, + "meanMs": 26.986018763440853, + "medianMs": 26.901583999999957, + "minMs": 25.886457999999948, + "maxMs": 29.572749999999814, + "p75Ms": 27.201083000000153, + "p99Ms": 29.572749999999814, + "relativeMarginOfError": 0.5281540068297804, + "sampleCount": 93 }, { - "hz": 35.96616838055343, - "meanMs": 27.803906977777782, - "medianMs": 27.479520999999977, - "minMs": 26.33958399999983, - "maxMs": 39.52854100000013, - "p75Ms": 27.888332999999875, - "p99Ms": 39.52854100000013, - "relativeMarginOfError": 1.2131489060627707, - "sampleCount": 90 + "hz": 36.84763399101569, + "meanMs": 27.138784548387104, + "medianMs": 27.09620900000027, + "minMs": 26.074667000000318, + "maxMs": 30.24716699999999, + "p75Ms": 27.30424999999991, + "p99Ms": 30.24716699999999, + "relativeMarginOfError": 0.5084305005072424, + "sampleCount": 93 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1667.3937502904569, - "meanMs": 0.5997692934641536, - "medianMs": 0.5905625000000896, - "minMs": 0.5715420000000222, - "maxMs": 1.8941669999999249, - "p75Ms": 0.5990004999999883, - "p99Ms": 0.7205004999998437, - "maxRelativeMarginOfError": 0.2994556838790838, + "hz": 1691.9572255584612, + "meanMs": 0.5910358846216, + "medianMs": 0.5882082499997807, + "minMs": 0.5738750000000437, + "maxMs": 0.892667000000074, + "p75Ms": 0.5924585000000206, + "p99Ms": 0.6503120000000422, + "maxRelativeMarginOfError": 0.07870821166441021, "measureCalls": 10, "readCount": 4656, "roundCount": 2, - "sampleCount": 8338, + "sampleCount": 8461, "rounds": [ { - "hz": 1679.3675506763461, - "meanMs": 0.5954622617289833, - "medianMs": 0.5863749999999754, - "minMs": 0.5715420000000222, - "maxMs": 1.8941669999999249, - "p75Ms": 0.5946670000000722, - "p99Ms": 0.7099589999997988, - "relativeMarginOfError": 0.27128237631757884, - "sampleCount": 4199 + "hz": 1687.3435791208399, + "meanMs": 0.5926475273761566, + "medianMs": 0.5897499999996398, + "minMs": 0.5780409999999847, + "maxMs": 0.8546660000000657, + "p75Ms": 0.5934999999999491, + "p99Ms": 0.6491660000001502, + "relativeMarginOfError": 0.0666010780316323, + "sampleCount": 4219 }, { - "hz": 1655.4199499045676, - "meanMs": 0.6040763251993239, - "medianMs": 0.5947500000002037, - "minMs": 0.575666000000183, - "maxMs": 1.7018330000000788, - "p75Ms": 0.6033339999999043, - "p99Ms": 0.7310419999998885, - "relativeMarginOfError": 0.2994556838790838, - "sampleCount": 4139 + "hz": 1696.5708719960828, + "meanMs": 0.5894242418670435, + "medianMs": 0.5866664999999216, + "minMs": 0.5738750000000437, + "maxMs": 0.892667000000074, + "p75Ms": 0.5914170000000922, + "p99Ms": 0.6514579999999341, + "relativeMarginOfError": 0.07870821166441021, + "sampleCount": 4242 } ] } @@ -541,200 +541,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 205.4071733292229, - "meanMs": 4.868422369466147, - "medianMs": 4.798156250000034, - "minMs": 4.657000000000153, - "maxMs": 11.155124999999998, - "p75Ms": 4.877645999999913, - "p99Ms": 6.629437500000051, - "maxRelativeMarginOfError": 0.6874329007792808, + "hz": 209.2624873632996, + "meanMs": 4.778692760892092, + "medianMs": 4.734166250000044, + "minMs": 4.635500000000093, + "maxMs": 8.51908299999991, + "p75Ms": 4.783728999999994, + "p99Ms": 5.574499999999944, + "maxRelativeMarginOfError": 0.47335314330830697, "measureCalls": 1074, "readCount": 4656, "roundCount": 2, - "sampleCount": 1028, + "sampleCount": 1047, "rounds": [ { - "hz": 206.0191835106091, - "meanMs": 4.853916916666667, - "medianMs": 4.787395999999944, - "minMs": 4.657000000000153, - "maxMs": 11.155124999999998, - "p75Ms": 4.85737499999982, - "p99Ms": 6.2716250000000855, - "relativeMarginOfError": 0.6874329007792808, - "sampleCount": 516 + "hz": 209.48527949259727, + "meanMs": 4.773605106870231, + "medianMs": 4.739041499999985, + "minMs": 4.637499999999818, + "maxMs": 8.51908299999991, + "p75Ms": 4.78670800000009, + "p99Ms": 5.107416999999941, + "relativeMarginOfError": 0.33927465418282415, + "sampleCount": 524 }, { - "hz": 204.7951631478367, - "meanMs": 4.882927822265627, - "medianMs": 4.808916500000123, - "minMs": 4.660499999999956, - "maxMs": 8.802249999999958, - "p75Ms": 4.897917000000007, - "p99Ms": 6.987250000000017, - "relativeMarginOfError": 0.6505564889357112, - "sampleCount": 512 + "hz": 209.03969523400195, + "meanMs": 4.783780414913952, + "medianMs": 4.729291000000103, + "minMs": 4.635500000000093, + "maxMs": 8.467167000000018, + "p75Ms": 4.780749999999898, + "p99Ms": 6.041582999999946, + "relativeMarginOfError": 0.47335314330830697, + "sampleCount": 523 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 31.89268554257088, - "meanMs": 31.355152850000003, - "medianMs": 30.904541499999993, - "minMs": 29.888832999999977, - "maxMs": 41.26954100000012, - "p75Ms": 31.552791999999954, - "p99Ms": 40.64110400000004, - "maxRelativeMarginOfError": 1.1728164351962973, + "hz": 32.979891489909264, + "meanMs": 30.32193025301203, + "medianMs": 30.08795850000007, + "minMs": 29.40970900000002, + "maxMs": 33.947165999999925, + "p75Ms": 30.730958500000156, + "p99Ms": 33.092124499999954, + "maxRelativeMarginOfError": 0.5214972916514111, "measureCalls": 1074, "readCount": 4656, "roundCount": 2, - "sampleCount": 160, + "sampleCount": 166, "rounds": [ { - "hz": 31.88716301355157, - "meanMs": 31.360582299999997, - "medianMs": 30.881270500000028, - "minMs": 29.993667000000187, - "maxMs": 40.012666999999965, - "p75Ms": 31.548833999999715, - "p99Ms": 40.012666999999965, - "relativeMarginOfError": 1.1728164351962973, - "sampleCount": 80 + "hz": 32.85662734740467, + "meanMs": 30.43526012048189, + "medianMs": 30.13266699999997, + "minMs": 29.55008299999986, + "maxMs": 33.947165999999925, + "p75Ms": 30.84674999999993, + "p99Ms": 33.947165999999925, + "relativeMarginOfError": 0.5214972916514111, + "sampleCount": 83 }, { - "hz": 31.89820807159019, - "meanMs": 31.349723400000006, - "medianMs": 30.92781249999996, - "minMs": 29.888832999999977, - "maxMs": 41.26954100000012, - "p75Ms": 31.556750000000193, - "p99Ms": 41.26954100000012, - "relativeMarginOfError": 1.1598105608524398, - "sampleCount": 80 + "hz": 33.103155632413866, + "meanMs": 30.208600385542173, + "medianMs": 30.04325000000017, + "minMs": 29.40970900000002, + "maxMs": 32.237082999999984, + "p75Ms": 30.615167000000383, + "p99Ms": 32.237082999999984, + "relativeMarginOfError": 0.4277691087227657, + "sampleCount": 83 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 184.247382718557, - "meanMs": 5.427699433076717, - "medianMs": 5.236510749999866, - "minMs": 4.93754100000001, - "maxMs": 12.724624999999833, - "p75Ms": 5.435583500000121, - "p99Ms": 8.90581249999991, - "maxRelativeMarginOfError": 1.373097726030248, + "hz": 192.58449684215444, + "meanMs": 5.1925317034747795, + "medianMs": 5.03388549999994, + "minMs": 4.876375000000053, + "maxMs": 11.529625000000124, + "p75Ms": 5.175833500000067, + "p99Ms": 6.711354000000142, + "maxRelativeMarginOfError": 0.9742344947143359, "measureCalls": 739, "readCount": 4656, "roundCount": 2, - "sampleCount": 922, + "sampleCount": 963, "rounds": [ { - "hz": 185.40408617196124, - "meanMs": 5.393624383620681, - "medianMs": 5.225520999999844, - "minMs": 4.93754100000001, - "maxMs": 10.727124999999887, - "p75Ms": 5.43466699999999, - "p99Ms": 7.861290999999937, - "relativeMarginOfError": 0.9649351179491299, - "sampleCount": 464 + "hz": 192.38201282047103, + "meanMs": 5.197991149688146, + "medianMs": 5.026041999999961, + "minMs": 4.876375000000053, + "maxMs": 11.529625000000124, + "p75Ms": 5.175500000000056, + "p99Ms": 7.0826660000000174, + "relativeMarginOfError": 0.9742344947143359, + "sampleCount": 481 }, { - "hz": 183.09067926515274, - "meanMs": 5.461774482532753, - "medianMs": 5.247500499999887, - "minMs": 4.985249999999951, - "maxMs": 12.724624999999833, - "p75Ms": 5.436500000000251, - "p99Ms": 9.950333999999884, - "relativeMarginOfError": 1.373097726030248, - "sampleCount": 458 + "hz": 192.78698086383784, + "meanMs": 5.187072257261412, + "medianMs": 5.041728999999918, + "minMs": 4.9095830000001115, + "maxMs": 10.775374999999713, + "p75Ms": 5.176167000000078, + "p99Ms": 6.340042000000267, + "relativeMarginOfError": 0.8055696050628921, + "sampleCount": 482 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 26.72664898830231, - "meanMs": 37.416043462686574, - "medianMs": 36.716749999999934, - "minMs": 35.362249999999676, - "maxMs": 47.56325000000015, - "p75Ms": 38.18627099999992, - "p99Ms": 45.688729000000194, - "maxRelativeMarginOfError": 1.1694702059344533, + "hz": 27.393715559405642, + "meanMs": 36.50475513768116, + "medianMs": 36.09945849999997, + "minMs": 34.9794159999999, + "maxMs": 39.954125000000204, + "p75Ms": 37.31675000000007, + "p99Ms": 39.562021000000186, + "maxRelativeMarginOfError": 0.7124998961506465, "measureCalls": 739, "readCount": 4656, "roundCount": 2, - "sampleCount": 134, + "sampleCount": 138, "rounds": [ { - "hz": 26.66419704730822, - "meanMs": 37.5034732238806, - "medianMs": 36.771541999999954, - "minMs": 35.60220799999979, - "maxMs": 43.814208000000235, - "p75Ms": 38.18983400000002, - "p99Ms": 43.814208000000235, - "relativeMarginOfError": 1.154777968513446, - "sampleCount": 67 + "hz": 27.419395712068344, + "meanMs": 36.47053386956522, + "medianMs": 35.988374999999905, + "minMs": 34.9794159999999, + "maxMs": 39.16991700000017, + "p75Ms": 37.304792000000134, + "p99Ms": 39.16991700000017, + "relativeMarginOfError": 0.7124998961506465, + "sampleCount": 69 }, { - "hz": 26.789100929296396, - "meanMs": 37.32861370149254, - "medianMs": 36.66195799999991, - "minMs": 35.362249999999676, - "maxMs": 47.56325000000015, - "p75Ms": 38.18270799999982, - "p99Ms": 47.56325000000015, - "relativeMarginOfError": 1.1694702059344533, - "sampleCount": 67 + "hz": 27.36803540674294, + "meanMs": 36.5389764057971, + "medianMs": 36.21054200000003, + "minMs": 35.15433299999995, + "maxMs": 39.954125000000204, + "p75Ms": 37.328708000000006, + "p99Ms": 39.954125000000204, + "relativeMarginOfError": 0.633675977782874, + "sampleCount": 69 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 382.3078042083134, - "meanMs": 2.615732676337882, - "medianMs": 2.5709999999998843, - "minMs": 2.51954099999989, - "maxMs": 10.687875000000076, - "p75Ms": 2.60918700000002, - "p99Ms": 3.5477290000000608, - "maxRelativeMarginOfError": 0.8704682831700329, + "hz": 390.1209264511099, + "meanMs": 2.563343657265017, + "medianMs": 2.5524997499999813, + "minMs": 2.517333000000008, + "maxMs": 2.858458000000155, + "p75Ms": 2.569812499999898, + "p99Ms": 2.7126665000000685, + "maxRelativeMarginOfError": 0.09084429024193655, "measureCalls": 87, "readCount": 4656, "roundCount": 2, - "sampleCount": 1913, + "sampleCount": 1951, "rounds": [ { - "hz": 380.8263596813947, - "meanMs": 2.6258686526757646, - "medianMs": 2.5728329999997186, - "minMs": 2.51954099999989, - "maxMs": 10.687875000000076, - "p75Ms": 2.609958000000006, - "p99Ms": 3.866333000000168, - "relativeMarginOfError": 0.8704682831700329, - "sampleCount": 953 + "hz": 388.66111350573294, + "meanMs": 2.57293556069959, + "medianMs": 2.562291500000015, + "minMs": 2.530166999999892, + "maxMs": 2.858458000000155, + "p75Ms": 2.581124999999929, + "p99Ms": 2.7301250000000437, + "relativeMarginOfError": 0.09084429024193655, + "sampleCount": 972 }, { - "hz": 383.78924873523215, - "meanMs": 2.6055967, - "medianMs": 2.56916700000005, - "minMs": 2.5236660000000484, - "maxMs": 5.267499999999927, - "p75Ms": 2.608416000000034, - "p99Ms": 3.2291249999999536, - "relativeMarginOfError": 0.460313232332473, - "sampleCount": 960 + "hz": 391.5807393964868, + "meanMs": 2.5537517538304435, + "medianMs": 2.542707999999948, + "minMs": 2.517333000000008, + "maxMs": 2.847874999999931, + "p75Ms": 2.558499999999867, + "p99Ms": 2.6952080000000933, + "relativeMarginOfError": 0.08622329720727169, + "sampleCount": 979 } ] } @@ -767,200 +767,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 8303.247181503859, - "meanMs": 0.12043481481525536, - "medianMs": 0.11570849999998245, - "minMs": 0.10875000000010004, - "maxMs": 2.2114999999998872, - "p75Ms": 0.11858350000011342, - "p99Ms": 0.20262449999995624, - "maxRelativeMarginOfError": 0.30822030809712697, + "hz": 8463.336209063613, + "meanMs": 0.11817194154782806, + "medianMs": 0.1151664999998161, + "minMs": 0.10979100000008657, + "maxMs": 0.8556250000000318, + "p75Ms": 0.1167920000000322, + "p99Ms": 0.1822704999999587, + "maxRelativeMarginOfError": 0.20572130161690708, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 41518, + "sampleCount": 42318, "rounds": [ { - "hz": 8301.657164803668, - "meanMs": 0.12045787728258348, - "medianMs": 0.11524999999994634, - "minMs": 0.109958000000006, - "maxMs": 2.2114999999998872, - "p75Ms": 0.11816700000008495, - "p99Ms": 0.20654100000001563, - "relativeMarginOfError": 0.30822030809712697, - "sampleCount": 20755 + "hz": 8559.407262691066, + "meanMs": 0.11683051983737498, + "medianMs": 0.11424999999962893, + "minMs": 0.10979100000008657, + "maxMs": 0.31691700000010314, + "p75Ms": 0.11587499999995998, + "p99Ms": 0.17491599999993923, + "relativeMarginOfError": 0.1160920671126077, + "sampleCount": 21399 }, { - "hz": 8304.837198204048, - "meanMs": 0.12041175234792727, - "medianMs": 0.11616700000001856, - "minMs": 0.10875000000010004, - "maxMs": 0.7145829999999478, - "p75Ms": 0.11900000000014188, - "p99Ms": 0.19870799999989686, - "relativeMarginOfError": 0.2022852556216334, - "sampleCount": 20763 + "hz": 8367.26515543616, + "meanMs": 0.11951336325828114, + "medianMs": 0.11608300000000327, + "minMs": 0.11054199999989578, + "maxMs": 0.8556250000000318, + "p75Ms": 0.11770900000010442, + "p99Ms": 0.18962499999997817, + "relativeMarginOfError": 0.20572130161690708, + "sampleCount": 20919 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 448.8318349435023, - "meanMs": 2.228636922183614, - "medianMs": 2.161406249999885, - "minMs": 1.4868329999999332, - "maxMs": 10.584250000000338, - "p75Ms": 2.3455414999999675, - "p99Ms": 4.135374999999897, - "maxRelativeMarginOfError": 1.7406433859477186, + "hz": 466.36850058766163, + "meanMs": 2.1442662350433848, + "medianMs": 2.141520999999841, + "minMs": 1.4416670000000522, + "maxMs": 5.466334000000188, + "p75Ms": 2.2662085000000616, + "p99Ms": 3.2210625000000164, + "maxRelativeMarginOfError": 1.0495138892716593, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 2245, + "sampleCount": 2333, "rounds": [ { - "hz": 456.3839427699115, - "meanMs": 2.191137562664328, - "medianMs": 2.1579579999997804, - "minMs": 1.4901669999999285, - "maxMs": 6.4340000000001965, - "p75Ms": 2.3167499999999563, - "p99Ms": 3.5459999999999354, - "relativeMarginOfError": 1.1918721165810684, - "sampleCount": 1141 + "hz": 468.3596573725523, + "meanMs": 2.1351113065755776, + "medianMs": 2.1252089999998134, + "minMs": 1.4830420000000686, + "maxMs": 5.466334000000188, + "p75Ms": 2.2079170000001795, + "p99Ms": 3.259708000000046, + "relativeMarginOfError": 0.9518472859629227, + "sampleCount": 1171 }, { - "hz": 441.2797271170931, - "meanMs": 2.2661362817029005, - "medianMs": 2.16485449999999, - "minMs": 1.4868329999999332, - "maxMs": 10.584250000000338, - "p75Ms": 2.3743329999999787, - "p99Ms": 4.724749999999858, - "relativeMarginOfError": 1.7406433859477186, - "sampleCount": 1104 + "hz": 464.37734380277095, + "meanMs": 2.1534211635111924, + "medianMs": 2.1578329999998687, + "minMs": 1.4416670000000522, + "maxMs": 3.553000000000111, + "p75Ms": 2.3244999999999436, + "p99Ms": 3.1824169999999867, + "relativeMarginOfError": 1.0495138892716593, + "sampleCount": 1162 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 1477.176180527882, - "meanMs": 0.6774186488867813, - "medianMs": 0.6038959999998781, - "minMs": 0.5681660000000193, - "maxMs": 12.021792000000005, - "p75Ms": 0.6209375000001955, - "p99Ms": 2.3888955000001033, - "maxRelativeMarginOfError": 2.017403821646042, + "hz": 1534.1565597582412, + "meanMs": 0.6518854530077989, + "medianMs": 0.5878334999999879, + "minMs": 0.5670000000000073, + "maxMs": 12.567250000000058, + "p75Ms": 0.5973125000000437, + "p99Ms": 2.2335410000000024, + "maxRelativeMarginOfError": 2.105233827315786, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 7387, + "sampleCount": 7678, "rounds": [ { - "hz": 1515.3047331747928, - "meanMs": 0.6599332649775657, - "medianMs": 0.5890829999998459, - "minMs": 0.5681660000000193, - "maxMs": 12.021792000000005, - "p75Ms": 0.6067080000002534, - "p99Ms": 2.411250000000109, - "relativeMarginOfError": 2.017403821646042, - "sampleCount": 3789 + "hz": 1549.057243841388, + "meanMs": 0.6455539354505563, + "medianMs": 0.5841669999999795, + "minMs": 0.5670000000000073, + "maxMs": 11.495165999999926, + "p75Ms": 0.5943750000001273, + "p99Ms": 2.153415999999993, + "relativeMarginOfError": 1.9907188159546376, + "sampleCount": 3873 }, { - "hz": 1439.0476278809715, - "meanMs": 0.6949040327959968, - "medianMs": 0.6187089999999102, - "minMs": 0.5948330000001079, - "maxMs": 10.950332999999773, - "p75Ms": 0.6351670000001377, - "p99Ms": 2.3665410000000975, - "relativeMarginOfError": 1.9628912741752103, - "sampleCount": 3598 + "hz": 1519.2558756750943, + "meanMs": 0.6582169705650416, + "medianMs": 0.5914999999999964, + "minMs": 0.5726250000002437, + "maxMs": 12.567250000000058, + "p75Ms": 0.60024999999996, + "p99Ms": 2.313666000000012, + "relativeMarginOfError": 2.105233827315786, + "sampleCount": 3805 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 255.33155761262583, - "meanMs": 3.916476417840376, - "medianMs": 3.7845000000002074, - "minMs": 3.632041999999956, - "maxMs": 7.738040999999839, - "p75Ms": 3.9090205000000537, - "p99Ms": 5.782458500000075, - "maxRelativeMarginOfError": 0.8298757431004349, + "hz": 260.4178176558654, + "meanMs": 3.8400360709006502, + "medianMs": 3.7354897499999993, + "minMs": 3.6340000000000146, + "maxMs": 7.601042000000007, + "p75Ms": 3.8288959999998724, + "p99Ms": 4.702646000000016, + "maxRelativeMarginOfError": 0.5776658642839857, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 1278, + "sampleCount": 1303, "rounds": [ { - "hz": 255.37121242005037, - "meanMs": 3.9158681611893598, - "medianMs": 3.7800420000003214, - "minMs": 3.644749999999931, - "maxMs": 7.336958999999979, - "p75Ms": 3.8957500000001346, - "p99Ms": 6.044459000000188, - "relativeMarginOfError": 0.8298757431004349, - "sampleCount": 639 + "hz": 261.385686425409, + "meanMs": 3.825764194189599, + "medianMs": 3.724104499999953, + "minMs": 3.6340000000000146, + "maxMs": 7.408625000000029, + "p75Ms": 3.8127919999997175, + "p99Ms": 4.700959000000012, + "relativeMarginOfError": 0.5712386375907772, + "sampleCount": 654 }, { - "hz": 255.29190280520132, - "meanMs": 3.9170846744913916, - "medianMs": 3.7889580000000933, - "minMs": 3.632041999999956, - "maxMs": 7.738040999999839, - "p75Ms": 3.922290999999973, - "p99Ms": 5.520457999999962, - "relativeMarginOfError": 0.7492499658510292, - "sampleCount": 639 + "hz": 259.44994888632186, + "meanMs": 3.8543079476117015, + "medianMs": 3.7468750000000455, + "minMs": 3.6639999999999873, + "maxMs": 7.601042000000007, + "p75Ms": 3.8450000000000273, + "p99Ms": 4.70433300000002, + "relativeMarginOfError": 0.5776658642839857, + "sampleCount": 649 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 6026.508077181246, - "meanMs": 0.16593366005072385, - "medianMs": 0.1613955000001397, - "minMs": 0.15729200000032506, - "maxMs": 0.6375420000001668, - "p75Ms": 0.16437450000000808, - "p99Ms": 0.24368699999990895, - "maxRelativeMarginOfError": 0.20346152049915264, + "hz": 6080.919172064584, + "meanMs": 0.16444911240394533, + "medianMs": 0.16220849999990605, + "minMs": 0.1564170000000331, + "maxMs": 0.4554170000000113, + "p75Ms": 0.1633960000000343, + "p99Ms": 0.22112449999991668, + "maxRelativeMarginOfError": 0.10609707925049877, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 30134, + "sampleCount": 30406, "rounds": [ { - "hz": 6022.0689837297505, - "meanMs": 0.16605588589266757, - "medianMs": 0.16125000000010914, - "minMs": 0.15729200000032506, - "maxMs": 0.5458329999999023, - "p75Ms": 0.16441600000007384, - "p99Ms": 0.24808299999995143, - "relativeMarginOfError": 0.20346152049915264, - "sampleCount": 15056 + "hz": 6088.987438319791, + "meanMs": 0.164230918544306, + "medianMs": 0.16195799999991323, + "minMs": 0.1564170000000331, + "maxMs": 0.4554170000000113, + "p75Ms": 0.16316699999993034, + "p99Ms": 0.2217079999999214, + "relativeMarginOfError": 0.10609707925049877, + "sampleCount": 15223 }, { - "hz": 6030.947170632743, - "meanMs": 0.16581143420878017, - "medianMs": 0.16154100000017024, - "minMs": 0.15737499999977445, - "maxMs": 0.6375420000001668, - "p75Ms": 0.16433299999994233, - "p99Ms": 0.23929099999986647, - "relativeMarginOfError": 0.18294483730884162, - "sampleCount": 15078 + "hz": 6072.850905809377, + "meanMs": 0.16466730626358464, + "medianMs": 0.16245899999989888, + "minMs": 0.15770799999995688, + "maxMs": 0.44737499999973807, + "p75Ms": 0.16362500000013824, + "p99Ms": 0.22054099999991195, + "relativeMarginOfError": 0.10458260030918225, + "sampleCount": 15183 } ] } @@ -993,200 +993,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 798.6956678537592, - "meanMs": 1.2520618148790907, - "medianMs": 1.2315414999999916, - "minMs": 1.1852499999999964, - "maxMs": 3.7111660000000484, - "p75Ms": 1.263249999999971, - "p99Ms": 1.4987084999997933, - "maxRelativeMarginOfError": 0.4070489354718789, + "hz": 799.4211359865667, + "meanMs": 1.2509189102566811, + "medianMs": 1.2370107500001382, + "minMs": 1.20116599999983, + "maxMs": 1.892334000000119, + "p75Ms": 1.2604169999999613, + "p99Ms": 1.3937915000001908, + "maxRelativeMarginOfError": 0.14529285702715034, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 3994, + "sampleCount": 3998, "rounds": [ { - "hz": 801.9249241093783, - "meanMs": 1.2469995256857802, - "medianMs": 1.2273330000000442, - "minMs": 1.1852499999999964, - "maxMs": 3.3492080000000897, - "p75Ms": 1.258874999999989, - "p99Ms": 1.4143749999998363, - "relativeMarginOfError": 0.3603125979986096, - "sampleCount": 2005 + "hz": 796.76781121784, + "meanMs": 1.2550707821285159, + "medianMs": 1.2412085000000843, + "minMs": 1.2090840000000753, + "maxMs": 1.892334000000119, + "p75Ms": 1.2651249999998981, + "p99Ms": 1.4088330000000724, + "relativeMarginOfError": 0.14529285702715034, + "sampleCount": 1992 }, { - "hz": 795.4664115981401, - "meanMs": 1.2571241040724015, - "medianMs": 1.235749999999939, - "minMs": 1.1947079999999914, - "maxMs": 3.7111660000000484, - "p75Ms": 1.2676249999999527, - "p99Ms": 1.5830419999997503, - "relativeMarginOfError": 0.4070489354718789, - "sampleCount": 1989 + "hz": 802.0744607552933, + "meanMs": 1.2467670383848466, + "medianMs": 1.232813000000192, + "minMs": 1.20116599999983, + "maxMs": 1.7153339999999844, + "p75Ms": 1.2557090000000244, + "p99Ms": 1.3787500000003092, + "relativeMarginOfError": 0.1355850162731106, + "sampleCount": 2006 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 94.28002786982299, - "meanMs": 10.6083577376587, - "medianMs": 10.34020850000013, - "minMs": 9.982374999999934, - "maxMs": 21.79429099999993, - "p75Ms": 10.56337499999995, - "p99Ms": 16.02995850000002, - "maxRelativeMarginOfError": 1.610777866893408, + "hz": 93.6673557481025, + "meanMs": 10.676106731396619, + "medianMs": 10.509916749999888, + "minMs": 10.107417000000169, + "maxMs": 23.199125000000095, + "p75Ms": 10.673374999999965, + "p99Ms": 13.246500000000083, + "maxRelativeMarginOfError": 1.1592592521847114, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 472, + "sampleCount": 469, "rounds": [ { - "hz": 95.45848577314605, - "meanMs": 10.475758041841006, - "medianMs": 10.299875000000156, - "minMs": 9.997375000000147, - "maxMs": 15.674375000000055, - "p75Ms": 10.518208999999842, - "p99Ms": 12.749209000000064, - "relativeMarginOfError": 0.7137994661954838, - "sampleCount": 239 + "hz": 93.82090186534843, + "meanMs": 10.658605706382977, + "medianMs": 10.481624999999894, + "minMs": 10.107417000000169, + "maxMs": 23.199125000000095, + "p75Ms": 10.657374999999774, + "p99Ms": 12.770999999999958, + "relativeMarginOfError": 1.1592592521847114, + "sampleCount": 235 }, { - "hz": 93.10156996649994, - "meanMs": 10.740957433476392, - "medianMs": 10.380542000000105, - "minMs": 9.982374999999934, - "maxMs": 21.79429099999993, - "p75Ms": 10.60854100000006, - "p99Ms": 19.310707999999977, - "relativeMarginOfError": 1.610777866893408, - "sampleCount": 233 + "hz": 93.51380963085654, + "meanMs": 10.69360775641026, + "medianMs": 10.538208499999882, + "minMs": 10.17141700000002, + "maxMs": 17.24429199999986, + "p75Ms": 10.689375000000155, + "p99Ms": 13.722000000000207, + "relativeMarginOfError": 0.7851515876736926, + "sampleCount": 234 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 192.87490691270176, - "meanMs": 5.184861544211763, - "medianMs": 4.683791999999954, - "minMs": 4.424167000000125, - "maxMs": 21.764000000000124, - "p75Ms": 5.20156300000005, - "p99Ms": 12.97618749999998, - "maxRelativeMarginOfError": 2.896070351394687, + "hz": 202.1222352911629, + "meanMs": 4.947504975296443, + "medianMs": 4.475864499999943, + "minMs": 4.338500000000295, + "maxMs": 21.65633300000013, + "p75Ms": 4.6982285000000275, + "p99Ms": 6.970687500000054, + "maxRelativeMarginOfError": 2.6863242809432264, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 965, + "sampleCount": 1012, "rounds": [ { - "hz": 191.82401627388325, - "meanMs": 5.21311157708332, - "medianMs": 4.681791999999916, - "minMs": 4.424167000000125, - "maxMs": 21.764000000000124, - "p75Ms": 5.278917000000092, - "p99Ms": 17.063792000000035, - "relativeMarginOfError": 2.896070351394687, - "sampleCount": 480 + "hz": 202.29898774576048, + "meanMs": 4.94317846640316, + "medianMs": 4.469853999999941, + "minMs": 4.340041000000156, + "maxMs": 21.65633300000013, + "p75Ms": 4.676666000000068, + "p99Ms": 6.785875000000033, + "relativeMarginOfError": 2.6863242809432264, + "sampleCount": 506 }, { - "hz": 193.9257975515203, - "meanMs": 5.1566115113402065, - "medianMs": 4.685791999999992, - "minMs": 4.449582999999848, - "maxMs": 18.097999999999956, - "p75Ms": 5.124209000000008, - "p99Ms": 8.888582999999926, - "relativeMarginOfError": 2.2379193923254213, - "sampleCount": 485 + "hz": 201.9454828365653, + "meanMs": 4.951831484189726, + "medianMs": 4.481874999999945, + "minMs": 4.338500000000295, + "maxMs": 21.492959000000155, + "p75Ms": 4.7197909999999865, + "p99Ms": 7.155500000000075, + "relativeMarginOfError": 2.6078768687725735, + "sampleCount": 506 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 35.92249719967354, - "meanMs": 27.838000874542132, - "medianMs": 27.632093500000053, - "minMs": 26.225209000000177, - "maxMs": 34.86374999999998, - "p75Ms": 28.02770850000013, - "p99Ms": 33.66652049999993, - "maxRelativeMarginOfError": 1.0572983045483906, + "hz": 36.4495032346623, + "meanMs": 27.435255891304347, + "medianMs": 27.395239750000087, + "minMs": 26.335041000000274, + "maxMs": 32.36025000000018, + "p75Ms": 27.729354000000114, + "p99Ms": 32.33958350000012, + "maxRelativeMarginOfError": 0.6242473223461763, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 181, + "sampleCount": 184, "rounds": [ { - "hz": 36.038945668018975, - "meanMs": 27.74775958241758, - "medianMs": 27.602250000000026, - "minMs": 26.244333000000097, - "maxMs": 32.469290999999885, - "p75Ms": 27.941167000000178, - "p99Ms": 32.469290999999885, - "relativeMarginOfError": 0.7806196721734333, - "sampleCount": 91 + "hz": 36.40563717311392, + "meanMs": 27.46827353260869, + "medianMs": 27.441833500000143, + "minMs": 26.335041000000274, + "maxMs": 32.36025000000018, + "p75Ms": 27.791667000000075, + "p99Ms": 32.36025000000018, + "relativeMarginOfError": 0.6242473223461763, + "sampleCount": 92 }, { - "hz": 35.80604873132812, - "meanMs": 27.92824216666668, - "medianMs": 27.66193700000008, - "minMs": 26.225209000000177, - "maxMs": 34.86374999999998, - "p75Ms": 28.114250000000084, - "p99Ms": 34.86374999999998, - "relativeMarginOfError": 1.0572983045483906, - "sampleCount": 90 + "hz": 36.49336929621068, + "meanMs": 27.402238250000003, + "medianMs": 27.34864600000003, + "minMs": 26.378333999999995, + "maxMs": 32.318917000000056, + "p75Ms": 27.667041000000154, + "p99Ms": 32.318917000000056, + "relativeMarginOfError": 0.5932765881186401, + "sampleCount": 92 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 720.5291404449221, - "meanMs": 1.388144808036087, - "medianMs": 1.3595210000000293, - "minMs": 1.3122920000000704, - "maxMs": 4.955584000000044, - "p75Ms": 1.3941659999998137, - "p99Ms": 1.7436460000000125, - "maxRelativeMarginOfError": 0.6542537715568982, + "hz": 719.0929556247679, + "meanMs": 1.3906440690598996, + "medianMs": 1.3759165000000166, + "minMs": 1.3445420000000468, + "maxMs": 1.856540999999993, + "p75Ms": 1.389041500000019, + "p99Ms": 1.538499999999999, + "maxRelativeMarginOfError": 0.1451644719569857, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 3604, + "sampleCount": 3596, "rounds": [ { - "hz": 730.6869618501797, - "meanMs": 1.368575124794741, - "medianMs": 1.3484580000000506, - "minMs": 1.3122920000000704, - "maxMs": 2.731625000000122, - "p75Ms": 1.3820409999998446, - "p99Ms": 1.533292000000074, - "relativeMarginOfError": 0.24223046613085683, - "sampleCount": 1827 + "hz": 717.9897074739441, + "meanMs": 1.3927776256267435, + "medianMs": 1.3783750000000055, + "minMs": 1.349958000000015, + "maxMs": 1.856540999999993, + "p75Ms": 1.3911659999999983, + "p99Ms": 1.5273329999999987, + "relativeMarginOfError": 0.13269926682651056, + "sampleCount": 1795 }, { - "hz": 710.3713190396644, - "meanMs": 1.4077144912774326, - "medianMs": 1.370584000000008, - "minMs": 1.335458000000017, - "maxMs": 4.955584000000044, - "p75Ms": 1.4062909999997828, - "p99Ms": 1.9539999999999509, - "relativeMarginOfError": 0.6542537715568982, - "sampleCount": 1777 + "hz": 720.1962037755918, + "meanMs": 1.3885105124930555, + "medianMs": 1.3734580000000278, + "minMs": 1.3445420000000468, + "maxMs": 1.7758330000001479, + "p75Ms": 1.3869170000000395, + "p99Ms": 1.5496669999999995, + "relativeMarginOfError": 0.1451644719569857, + "sampleCount": 1801 } ] } @@ -1219,159 +1219,159 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 175.62808016748937, - "meanMs": 5.693884985835427, - "medianMs": 5.631833499999971, - "minMs": 5.393792000000076, - "maxMs": 11.312249999999949, - "p75Ms": 5.734604000000104, - "p99Ms": 7.159417000000076, - "maxRelativeMarginOfError": 0.6358205808837929, + "hz": 179.06304015362332, + "meanMs": 5.58550390962451, + "medianMs": 5.56080175000011, + "minMs": 5.3679579999999305, + "maxMs": 7.803666999999905, + "p75Ms": 5.6313125000000355, + "p99Ms": 5.934833500000025, + "maxRelativeMarginOfError": 0.29105941182768413, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 879, + "sampleCount": 897, "rounds": [ { - "hz": 176.06144827201155, - "meanMs": 5.679835136054426, - "medianMs": 5.615041999999903, - "minMs": 5.393792000000076, - "maxMs": 10.888749999999959, - "p75Ms": 5.723750000000109, - "p99Ms": 7.388084000000163, - "relativeMarginOfError": 0.6292447584300577, - "sampleCount": 441 + "hz": 176.81734329268286, + "meanMs": 5.6555538126410845, + "medianMs": 5.630333000000064, + "minMs": 5.442291000000068, + "maxMs": 7.612999999999829, + "p75Ms": 5.708750000000009, + "p99Ms": 6.019209000000046, + "relativeMarginOfError": 0.22942412877971202, + "sampleCount": 443 }, { - "hz": 175.19471206296717, - "meanMs": 5.707934835616428, - "medianMs": 5.648625000000038, - "minMs": 5.41883299999995, - "maxMs": 11.312249999999949, - "p75Ms": 5.745458000000099, - "p99Ms": 6.930749999999989, - "relativeMarginOfError": 0.6358205808837929, - "sampleCount": 438 + "hz": 181.30873701456375, + "meanMs": 5.515454006607935, + "medianMs": 5.491270500000155, + "minMs": 5.3679579999999305, + "maxMs": 7.803666999999905, + "p75Ms": 5.553875000000062, + "p99Ms": 5.850458000000003, + "relativeMarginOfError": 0.29105941182768413, + "sampleCount": 454 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 25.036421863331263, - "meanMs": 39.94383345920137, - "medianMs": 39.487739749999946, - "minMs": 38.407500000000255, - "maxMs": 53.98766700000033, - "p75Ms": 39.9372085, - "p99Ms": 51.41333350000025, - "maxRelativeMarginOfError": 1.3647205547752828, + "hz": 25.2991830988116, + "meanMs": 39.52711168749998, + "medianMs": 39.39376049999993, + "minMs": 38.414999999999964, + "maxMs": 43.28891700000008, + "p75Ms": 39.737854500000026, + "p99Ms": 42.270396000000005, + "maxRelativeMarginOfError": 0.573972616872077, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 127, + "sampleCount": 128, "rounds": [ { - "hz": 25.214625543247692, - "meanMs": 39.65952214062498, - "medianMs": 39.19022949999999, - "minMs": 38.407500000000255, - "maxMs": 48.83900000000017, - "p75Ms": 39.71083399999998, - "p99Ms": 48.83900000000017, - "relativeMarginOfError": 1.0104313284188715, + "hz": 25.250942286256933, + "meanMs": 39.602482499999994, + "medianMs": 39.382417000000146, + "minMs": 38.477792000000136, + "maxMs": 43.28891700000008, + "p75Ms": 39.78841699999998, + "p99Ms": 43.28891700000008, + "relativeMarginOfError": 0.573972616872077, "sampleCount": 64 }, { - "hz": 24.858218183414838, - "meanMs": 40.22814477777777, - "medianMs": 39.785249999999905, - "minMs": 38.700832999999875, - "maxMs": 53.98766700000033, - "p75Ms": 40.16358300000002, - "p99Ms": 53.98766700000033, - "relativeMarginOfError": 1.3647205547752828, - "sampleCount": 63 + "hz": 25.347423911366267, + "meanMs": 39.45174087499996, + "medianMs": 39.40510399999971, + "minMs": 38.414999999999964, + "maxMs": 41.25187499999993, + "p75Ms": 39.68729200000007, + "p99Ms": 41.25187499999993, + "relativeMarginOfError": 0.3242541222703579, + "sampleCount": 64 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 49.19360321160303, - "meanMs": 20.328888378016007, - "medianMs": 19.696187500000036, - "minMs": 17.503749999999854, - "maxMs": 42.36324999999988, - "p75Ms": 20.15375000000006, - "p99Ms": 37.42735400000004, - "maxRelativeMarginOfError": 3.08518823897085, + "hz": 51.157554372618165, + "meanMs": 19.548654272782755, + "medianMs": 19.170270999999957, + "minMs": 17.17945799999984, + "maxMs": 37.62083299999995, + "p75Ms": 19.564125499999932, + "p99Ms": 35.11533350000013, + "maxRelativeMarginOfError": 2.586839572349384, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 247, + "sampleCount": 256, "rounds": [ { - "hz": 49.54583069111708, - "meanMs": 20.18333300806453, - "medianMs": 19.614208000000133, - "minMs": 17.503749999999854, - "maxMs": 42.043042000000014, - "p75Ms": 20.086207999999942, - "p99Ms": 37.80558300000007, - "relativeMarginOfError": 3.0434195924143195, - "sampleCount": 124 + "hz": 51.55821996144058, + "meanMs": 19.395549356589136, + "medianMs": 19.07679199999984, + "minMs": 17.17945799999984, + "maxMs": 37.62083299999995, + "p75Ms": 19.416291999999885, + "p99Ms": 37.136417000000165, + "relativeMarginOfError": 2.586839572349384, + "sampleCount": 129 }, { - "hz": 48.84137573208898, - "meanMs": 20.474443747967484, - "medianMs": 19.77816699999994, - "minMs": 17.65887500000008, - "maxMs": 42.36324999999988, - "p75Ms": 20.221292000000176, - "p99Ms": 37.049125000000004, - "relativeMarginOfError": 3.08518823897085, - "sampleCount": 123 + "hz": 50.75688878379576, + "meanMs": 19.701759188976375, + "medianMs": 19.263750000000073, + "minMs": 17.37112500000012, + "maxMs": 36.02550000000019, + "p75Ms": 19.71195899999998, + "p99Ms": 33.0942500000001, + "relativeMarginOfError": 2.371149441965393, + "sampleCount": 127 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 9.447963532723076, - "meanMs": 105.84903000000001, - "medianMs": 104.92774999999983, - "minMs": 103.45633300000009, - "maxMs": 114.685833, - "p75Ms": 105.60837450000008, - "p99Ms": 112.73997900000018, - "maxRelativeMarginOfError": 1.0423313677867108, + "hz": 9.586397697617524, + "meanMs": 104.33925167999999, + "medianMs": 104.004729, + "minMs": 101.75829099999964, + "maxMs": 113.30429099999992, + "p75Ms": 104.34075000000007, + "p99Ms": 110.88881199999992, + "maxRelativeMarginOfError": 0.6751818308755873, "measureCalls": 0, "readCount": 18624, "roundCount": 2, "sampleCount": 50, "rounds": [ { - "hz": 9.3761515039185, - "meanMs": 106.65356671999999, - "medianMs": 105.49495799999977, - "minMs": 104.30208399999992, - "maxMs": 114.685833, - "p75Ms": 106.32770800000026, - "p99Ms": 114.685833, - "relativeMarginOfError": 1.0423313677867108, + "hz": 9.438659628601497, + "meanMs": 105.94724667999999, + "medianMs": 105.511708, + "minMs": 104.8399159999999, + "maxMs": 113.30429099999992, + "p75Ms": 105.796875, + "p99Ms": 113.30429099999992, + "relativeMarginOfError": 0.6751818308755873, "sampleCount": 25 }, { - "hz": 9.519775561527652, - "meanMs": 105.04449328000004, - "medianMs": 104.3605419999999, - "minMs": 103.45633300000009, - "maxMs": 110.79412500000035, - "p75Ms": 104.8890409999999, - "p99Ms": 110.79412500000035, - "relativeMarginOfError": 0.7904593080328032, + "hz": 9.734135766633552, + "meanMs": 102.73125668, + "medianMs": 102.49775, + "minMs": 101.75829099999964, + "maxMs": 108.47333299999991, + "p75Ms": 102.88462500000014, + "p99Ms": 108.47333299999991, + "relativeMarginOfError": 0.524945974050883, "sampleCount": 25 } ] @@ -1379,40 +1379,40 @@ { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 170.15006088056006, - "meanMs": 5.877202869739627, - "medianMs": 5.807604000000026, - "minMs": 5.622708999999986, - "maxMs": 11.30279100000007, - "p75Ms": 5.906020500000068, - "p99Ms": 7.32743749999986, - "maxRelativeMarginOfError": 0.7026195281104309, + "hz": 174.60923841670996, + "meanMs": 5.727087183978469, + "medianMs": 5.692177000000015, + "minMs": 5.5863750000003165, + "maxMs": 6.425917000000027, + "p75Ms": 5.772374999999954, + "p99Ms": 6.096916999999962, + "maxRelativeMarginOfError": 0.17298375560848467, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 852, + "sampleCount": 874, "rounds": [ { - "hz": 170.58138548919433, - "meanMs": 5.86230436065573, - "medianMs": 5.811000000000149, - "minMs": 5.64995799999997, - "maxMs": 8.545708999999988, - "p75Ms": 5.895457999999962, - "p99Ms": 7.204874999999902, - "relativeMarginOfError": 0.4560842270371684, - "sampleCount": 427 + "hz": 174.34262119335747, + "meanMs": 5.735832082568805, + "medianMs": 5.699478999999997, + "minMs": 5.608417000000145, + "maxMs": 6.322625000000016, + "p75Ms": 5.7862499999999955, + "p99Ms": 6.08787499999994, + "relativeMarginOfError": 0.16785956835849025, + "sampleCount": 436 }, { - "hz": 169.7187362719258, - "meanMs": 5.892101378823524, - "medianMs": 5.804207999999903, - "minMs": 5.622708999999986, - "maxMs": 11.30279100000007, - "p75Ms": 5.916583000000173, - "p99Ms": 7.449999999999818, - "relativeMarginOfError": 0.7026195281104309, - "sampleCount": 425 + "hz": 174.87585564006247, + "meanMs": 5.7183422853881325, + "medianMs": 5.684875000000034, + "minMs": 5.5863750000003165, + "maxMs": 6.425917000000027, + "p75Ms": 5.758499999999913, + "p99Ms": 6.105958999999984, + "relativeMarginOfError": 0.17298375560848467, + "sampleCount": 438 } ] } @@ -1445,200 +1445,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 607.6545856275748, - "meanMs": 1.6458566527246785, - "medianMs": 1.6099064999999655, - "minMs": 1.5494590000000699, - "maxMs": 6.294040999999879, - "p75Ms": 1.6457915000000867, - "p99Ms": 2.321187499999951, - "maxRelativeMarginOfError": 0.6347830546343044, + "hz": 620.8429724399741, + "meanMs": 1.6107288220302929, + "medianMs": 1.5836352499999293, + "minMs": 1.5406660000001011, + "maxMs": 6.275417000000061, + "p75Ms": 1.6085210000001098, + "p99Ms": 1.9773340000001554, + "maxRelativeMarginOfError": 0.5214162190224209, "measureCalls": 440, "readCount": 4640, "roundCount": 2, - "sampleCount": 3040, + "sampleCount": 3105, "rounds": [ { - "hz": 601.214315725776, - "meanMs": 1.6633003803191486, - "medianMs": 1.623063000000002, - "minMs": 1.566958999999997, - "maxMs": 6.294040999999879, - "p75Ms": 1.6596660000000156, - "p99Ms": 2.5826250000000073, - "relativeMarginOfError": 0.6347830546343044, - "sampleCount": 1504 + "hz": 618.9124032893099, + "meanMs": 1.6157375335917306, + "medianMs": 1.5864374999998745, + "minMs": 1.5486250000001291, + "maxMs": 6.275417000000061, + "p75Ms": 1.6102500000001783, + "p99Ms": 2.0393340000000535, + "relativeMarginOfError": 0.5214162190224209, + "sampleCount": 1548 }, { - "hz": 614.0948555293735, - "meanMs": 1.6284129251302086, - "medianMs": 1.596749999999929, - "minMs": 1.5494590000000699, - "maxMs": 6.221000000000004, - "p75Ms": 1.6319170000001577, - "p99Ms": 2.0597499999998945, - "relativeMarginOfError": 0.5049639736826443, - "sampleCount": 1536 + "hz": 622.7735415906384, + "meanMs": 1.6057201104688552, + "medianMs": 1.5808329999999842, + "minMs": 1.5406660000001011, + "maxMs": 5.98179099999993, + "p75Ms": 1.6067920000000413, + "p99Ms": 1.9153340000002572, + "relativeMarginOfError": 0.41396727730242977, + "sampleCount": 1557 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 72.3156815894663, - "meanMs": 13.828278450655695, - "medianMs": 13.578218499999991, - "minMs": 12.907375000000002, - "maxMs": 21.05874999999969, - "p75Ms": 13.895520499999975, - "p99Ms": 18.030041499999925, - "maxRelativeMarginOfError": 0.9757205872123061, + "hz": 74.35160604860549, + "meanMs": 13.450057349096689, + "medianMs": 13.364374999999882, + "minMs": 12.809625000000324, + "maxMs": 15.486167000000023, + "p75Ms": 13.550167000000101, + "p99Ms": 14.881895499999928, + "maxRelativeMarginOfError": 0.4806871024477942, "measureCalls": 440, "readCount": 4640, "roundCount": 2, - "sampleCount": 363, + "sampleCount": 372, "rounds": [ { - "hz": 72.40067532056108, - "meanMs": 13.812025862637359, - "medianMs": 13.559728999999948, - "minMs": 12.907375000000002, - "maxMs": 16.90816700000005, - "p75Ms": 13.928583000000117, - "p99Ms": 16.88433299999997, - "relativeMarginOfError": 0.7724381112017463, - "sampleCount": 182 + "hz": 73.9221379008556, + "meanMs": 13.52774728108108, + "medianMs": 13.455916999999772, + "minMs": 12.831750000000056, + "maxMs": 15.486167000000023, + "p75Ms": 13.670874999999796, + "p99Ms": 14.859082999999828, + "relativeMarginOfError": 0.4806871024477942, + "sampleCount": 185 }, { - "hz": 72.23068785837152, - "meanMs": 13.84453103867403, - "medianMs": 13.596708000000035, - "minMs": 13.113958000000025, - "maxMs": 21.05874999999969, - "p75Ms": 13.862457999999833, - "p99Ms": 19.17574999999988, - "relativeMarginOfError": 0.9757205872123061, - "sampleCount": 181 + "hz": 74.78107419635538, + "meanMs": 13.372367417112299, + "medianMs": 13.272832999999991, + "minMs": 12.809625000000324, + "maxMs": 15.470209000000068, + "p75Ms": 13.429459000000406, + "p99Ms": 14.904708000000028, + "relativeMarginOfError": 0.44463554501662594, + "sampleCount": 187 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 194.7995308054505, - "meanMs": 5.134125603315716, - "medianMs": 4.625083000000018, - "minMs": 4.372124999999869, - "maxMs": 22.801832999999988, - "p75Ms": 4.977041499999984, - "p99Ms": 11.842416999999955, - "maxRelativeMarginOfError": 3.0204831488851993, + "hz": 196.02192971745973, + "meanMs": 5.101478970196187, + "medianMs": 4.638323000000042, + "minMs": 4.473874999999907, + "maxMs": 21.03641700000003, + "p75Ms": 5.012374999999935, + "p99Ms": 7.77433300000007, + "maxRelativeMarginOfError": 2.6358939681698126, "measureCalls": 301, "readCount": 4640, "roundCount": 2, - "sampleCount": 975, + "sampleCount": 981, "rounds": [ { - "hz": 192.61949049687078, - "meanMs": 5.191582624481325, - "medianMs": 4.65137500000003, - "minMs": 4.425875000000133, - "maxMs": 21.531208999999762, - "p75Ms": 5.091750000000047, - "p99Ms": 14.808667000000014, - "relativeMarginOfError": 3.0204831488851993, - "sampleCount": 482 + "hz": 196.28140143839687, + "meanMs": 5.094726207739305, + "medianMs": 4.628625000000056, + "minMs": 4.473874999999907, + "maxMs": 20.777374999999665, + "p75Ms": 5.089207999999871, + "p99Ms": 6.908957999999984, + "relativeMarginOfError": 2.6358939681698126, + "sampleCount": 491 }, { - "hz": 196.97957111403025, - "meanMs": 5.0766685821501065, - "medianMs": 4.598791000000006, - "minMs": 4.372124999999869, - "maxMs": 22.801832999999988, - "p75Ms": 4.862332999999921, - "p99Ms": 8.876166999999896, - "relativeMarginOfError": 2.8097234792680066, - "sampleCount": 493 + "hz": 195.7624579965226, + "meanMs": 5.108231732653067, + "medianMs": 4.648021000000028, + "minMs": 4.514374999999973, + "maxMs": 21.03641700000003, + "p75Ms": 4.935541999999998, + "p99Ms": 8.639708000000155, + "relativeMarginOfError": 2.6172055883918803, + "sampleCount": 490 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 33.51047739574106, - "meanMs": 29.84587072204111, - "medianMs": 28.89333350000004, - "minMs": 27.32354200000009, - "maxMs": 60.18199999999979, - "p75Ms": 30.280021000000033, - "p99Ms": 48.12539599999991, - "maxRelativeMarginOfError": 2.8894590579107504, + "hz": 35.0554670732496, + "meanMs": 28.52675098921093, + "medianMs": 28.153062249999948, + "minMs": 26.816709000000174, + "maxMs": 32.92600000000016, + "p75Ms": 29.413749999999993, + "p99Ms": 32.61037500000009, + "maxRelativeMarginOfError": 0.8179528974284237, "measureCalls": 301, "readCount": 4640, "roundCount": 2, - "sampleCount": 168, + "sampleCount": 177, "rounds": [ { - "hz": 33.9200103607195, - "meanMs": 29.481123070588247, - "medianMs": 28.7404590000001, - "minMs": 27.743375000000015, - "maxMs": 36.06879200000003, - "p75Ms": 30.24762499999997, - "p99Ms": 36.06879200000003, - "relativeMarginOfError": 1.2581057593094884, - "sampleCount": 85 + "hz": 35.20657062901767, + "meanMs": 28.403788898876403, + "medianMs": 27.99545799999987, + "minMs": 26.816709000000174, + "maxMs": 32.29475000000002, + "p75Ms": 29.221000000000004, + "p99Ms": 32.29475000000002, + "relativeMarginOfError": 0.8179528974284237, + "sampleCount": 89 }, { - "hz": 33.10094443076262, - "meanMs": 30.210618373493972, - "medianMs": 29.04620799999998, - "minMs": 27.32354200000009, - "maxMs": 60.18199999999979, - "p75Ms": 30.312417000000096, - "p99Ms": 60.18199999999979, - "relativeMarginOfError": 2.8894590579107504, - "sampleCount": 83 + "hz": 34.90436351748153, + "meanMs": 28.649713079545464, + "medianMs": 28.310666500000025, + "minMs": 26.998000000000047, + "maxMs": 32.92600000000016, + "p75Ms": 29.606499999999983, + "p99Ms": 32.92600000000016, + "relativeMarginOfError": 0.8012171156036656, + "sampleCount": 88 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 690.5706923357195, - "meanMs": 1.4480817848946523, - "medianMs": 1.4246045000000152, - "minMs": 1.3779579999998077, - "maxMs": 3.289833999999928, - "p75Ms": 1.46012450000012, - "p99Ms": 1.6814584999999624, - "maxRelativeMarginOfError": 0.36133611244561553, + "hz": 704.2036788429548, + "meanMs": 1.4200975306797792, + "medianMs": 1.4049690000000794, + "minMs": 1.364292000000205, + "maxMs": 1.786792000000105, + "p75Ms": 1.425395999999978, + "p99Ms": 1.5711875000000077, + "maxRelativeMarginOfError": 0.14328107892007563, "measureCalls": 37, "readCount": 4640, "roundCount": 2, - "sampleCount": 3454, + "sampleCount": 3522, "rounds": [ { - "hz": 689.406769210048, - "meanMs": 1.450522455916473, - "medianMs": 1.4298749999999814, - "minMs": 1.3779579999998077, - "maxMs": 3.1512079999997695, - "p75Ms": 1.4664160000002084, - "p99Ms": 1.6552500000000236, - "relativeMarginOfError": 0.2870900512506445, - "sampleCount": 1724 + "hz": 708.539194091463, + "meanMs": 1.4113545282167035, + "medianMs": 1.3970210000002226, + "minMs": 1.364292000000205, + "maxMs": 1.786792000000105, + "p75Ms": 1.415666999999985, + "p99Ms": 1.5514590000000226, + "relativeMarginOfError": 0.13286496013031807, + "sampleCount": 1772 }, { - "hz": 691.734615461391, - "meanMs": 1.4456411138728316, - "medianMs": 1.419334000000049, - "minMs": 1.3825840000004064, - "maxMs": 3.289833999999928, - "p75Ms": 1.4538330000000315, - "p99Ms": 1.7076669999999012, - "relativeMarginOfError": 0.36133611244561553, - "sampleCount": 1730 + "hz": 699.8681635944467, + "meanMs": 1.4288405331428549, + "medianMs": 1.4129169999999363, + "minMs": 1.3737080000000788, + "maxMs": 1.7665420000000722, + "p75Ms": 1.435124999999971, + "p99Ms": 1.590915999999993, + "relativeMarginOfError": 0.14328107892007563, + "sampleCount": 1750 } ] } @@ -1670,200 +1670,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 2009.8761799328813, - "meanMs": 0.4975969148615639, - "medianMs": 0.4837084999999206, - "minMs": 0.46212500000001455, - "maxMs": 2.666500000000042, - "p75Ms": 0.4978959999999688, - "p99Ms": 0.7206255000000397, - "maxRelativeMarginOfError": 0.4558130903730494, + "hz": 2046.2305360675978, + "meanMs": 0.48871364108377946, + "medianMs": 0.47920850000008386, + "minMs": 0.4581669999997757, + "maxMs": 1.8274169999999685, + "p75Ms": 0.49006249999979445, + "p99Ms": 0.5999579999999867, + "maxRelativeMarginOfError": 0.3351599727295937, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 10050, + "sampleCount": 10232, "rounds": [ { - "hz": 1988.9720486870401, - "meanMs": 0.5027722740800303, - "medianMs": 0.48558299999990595, - "minMs": 0.4656250000000455, - "maxMs": 2.666500000000042, - "p75Ms": 0.5008330000000569, - "p99Ms": 0.836917000000085, - "relativeMarginOfError": 0.4558130903730494, - "sampleCount": 4973 + "hz": 2055.5572509869617, + "meanMs": 0.4864860852305899, + "medianMs": 0.4786250000001928, + "minMs": 0.4581669999997757, + "maxMs": 1.0673329999999623, + "p75Ms": 0.4901249999998072, + "p99Ms": 0.5847909999999956, + "relativeMarginOfError": 0.15039549562317311, + "sampleCount": 5139 }, { - "hz": 2030.7803111787223, - "meanMs": 0.4924215556430975, - "medianMs": 0.48183399999993526, - "minMs": 0.46212500000001455, - "maxMs": 1.4629580000000715, - "p75Ms": 0.4949589999998807, - "p99Ms": 0.6043339999999944, - "relativeMarginOfError": 0.23809887683208325, - "sampleCount": 5077 + "hz": 2036.903821148234, + "meanMs": 0.4909411969369691, + "medianMs": 0.4797919999999749, + "minMs": 0.4640420000000631, + "maxMs": 1.8274169999999685, + "p75Ms": 0.4899999999997817, + "p99Ms": 0.6151249999999777, + "relativeMarginOfError": 0.3351599727295937, + "sampleCount": 5093 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 140.14567805122144, - "meanMs": 7.135452201094827, - "medianMs": 7.020895750000022, - "minMs": 6.554292000000032, - "maxMs": 12.261583000000428, - "p75Ms": 7.168083499999966, - "p99Ms": 9.343374999999924, - "maxRelativeMarginOfError": 0.7485508967082604, + "hz": 144.22111041210712, + "meanMs": 6.93386112762431, + "medianMs": 6.894728999999984, + "minMs": 6.5936669999998685, + "maxMs": 8.52916700000003, + "p75Ms": 7.007146000000034, + "p99Ms": 7.857729000000006, + "maxRelativeMarginOfError": 0.3672209929033918, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 701, + "sampleCount": 722, "rounds": [ { - "hz": 140.3796381019489, - "meanMs": 7.1235402336182325, - "medianMs": 6.9974580000000515, - "minMs": 6.554292000000032, - "maxMs": 12.261583000000428, - "p75Ms": 7.1584170000000995, - "p99Ms": 9.34479199999987, - "relativeMarginOfError": 0.7485508967082604, - "sampleCount": 351 + "hz": 144.65739263407136, + "meanMs": 6.91288555524862, + "medianMs": 6.856353999999897, + "minMs": 6.5936669999998685, + "maxMs": 8.366083000000117, + "p75Ms": 6.979749999999967, + "p99Ms": 8.01870800000006, + "relativeMarginOfError": 0.3672209929033918, + "sampleCount": 362 }, { - "hz": 139.91171800049398, - "meanMs": 7.147364168571422, - "medianMs": 7.044333499999993, - "minMs": 6.676874999999882, - "maxMs": 11.373583999999937, - "p75Ms": 7.177749999999833, - "p99Ms": 9.341957999999977, - "relativeMarginOfError": 0.7029972682336404, - "sampleCount": 350 + "hz": 143.78482819014286, + "meanMs": 6.954836699999999, + "medianMs": 6.933104000000071, + "minMs": 6.6297920000001795, + "maxMs": 8.52916700000003, + "p75Ms": 7.034542000000101, + "p99Ms": 7.696749999999952, + "relativeMarginOfError": 0.28415274637506405, + "sampleCount": 360 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 382.49324898027226, - "meanMs": 2.615198305468395, - "medianMs": 2.291354500000068, - "minMs": 2.1849589999999353, - "maxMs": 20.263124999999945, - "p75Ms": 2.380916500000126, - "p99Ms": 5.6703959999999825, - "maxRelativeMarginOfError": 3.165193338591383, + "hz": 400.28720420602144, + "meanMs": 2.498222775328116, + "medianMs": 2.229030999999935, + "minMs": 2.172708000000057, + "maxMs": 18.636040999999977, + "p75Ms": 2.282978999999898, + "p99Ms": 4.8227500000001555, + "maxRelativeMarginOfError": 2.6286447188061155, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 1913, + "sampleCount": 2003, "rounds": [ { - "hz": 375.91693213183873, - "meanMs": 2.66016216489362, - "medianMs": 2.30437500000005, - "minMs": 2.1849589999999353, - "maxMs": 20.263124999999945, - "p75Ms": 2.4183750000001965, - "p99Ms": 5.973250000000007, - "relativeMarginOfError": 3.165193338591383, - "sampleCount": 940 + "hz": 401.3163531331898, + "meanMs": 2.4917997788844595, + "medianMs": 2.226520999999991, + "minMs": 2.172708000000057, + "maxMs": 17.274625000000015, + "p75Ms": 2.2827499999999645, + "p99Ms": 4.583041000000094, + "relativeMarginOfError": 2.5224194411367957, + "sampleCount": 1004 }, { - "hz": 389.0695658287057, - "meanMs": 2.5702344460431696, - "medianMs": 2.2783340000000862, - "minMs": 2.202209000000039, - "maxMs": 19.389542000000347, - "p75Ms": 2.343458000000055, - "p99Ms": 5.367541999999958, - "relativeMarginOfError": 2.7326532447877967, - "sampleCount": 973 + "hz": 399.2580552788531, + "meanMs": 2.5046457717717727, + "medianMs": 2.231540999999879, + "minMs": 2.172833999999966, + "maxMs": 18.636040999999977, + "p75Ms": 2.2832079999998314, + "p99Ms": 5.062459000000217, + "relativeMarginOfError": 2.6286447188061155, + "sampleCount": 999 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 62.7175665599544, - "meanMs": 15.957792668482206, - "medianMs": 15.39159399999997, - "minMs": 14.538000000000011, - "maxMs": 37.47758299999987, - "p75Ms": 16.036645999999905, - "p99Ms": 24.960562999999865, - "maxRelativeMarginOfError": 2.7996434570092945, + "hz": 66.14274304956564, + "meanMs": 15.119072993322455, + "medianMs": 14.857083000000046, + "minMs": 14.402499999999918, + "maxMs": 26.343500000000063, + "p75Ms": 15.425499499999887, + "p99Ms": 18.823896000000104, + "maxRelativeMarginOfError": 1.11942936620702, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 315, + "sampleCount": 332, "rounds": [ { - "hz": 60.90717971923718, - "meanMs": 16.41842562091503, - "medianMs": 15.627958999999919, - "minMs": 14.540707999999995, - "maxMs": 37.47758299999987, - "p75Ms": 16.383041999999932, - "p99Ms": 28.00370900000007, - "relativeMarginOfError": 2.7996434570092945, - "sampleCount": 153 + "hz": 65.8703517078285, + "meanMs": 15.181336884848495, + "medianMs": 14.875540999999998, + "minMs": 14.434332999999697, + "maxMs": 26.343500000000063, + "p75Ms": 15.452707999999802, + "p99Ms": 19.449542000000065, + "relativeMarginOfError": 1.11942936620702, + "sampleCount": 165 }, { - "hz": 64.52795340067162, - "meanMs": 15.497159716049383, - "medianMs": 15.15522900000002, - "minMs": 14.538000000000011, - "maxMs": 26.414207999999917, - "p75Ms": 15.690249999999878, - "p99Ms": 21.91741699999966, - "relativeMarginOfError": 1.298404944157346, - "sampleCount": 162 + "hz": 66.41513439130279, + "meanMs": 15.056809101796416, + "medianMs": 14.838625000000093, + "minMs": 14.402499999999918, + "maxMs": 19.23154199999999, + "p75Ms": 15.398290999999972, + "p99Ms": 18.198250000000144, + "relativeMarginOfError": 0.6598600638459845, + "sampleCount": 167 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1154.671109822823, - "meanMs": 0.8661919744229238, - "medianMs": 0.8175102500000548, - "minMs": 0.7803749999998217, - "maxMs": 21.502040999999736, - "p75Ms": 0.8481664999999339, - "p99Ms": 1.7929994999999508, - "maxRelativeMarginOfError": 1.6964838634159736, + "hz": 1239.2105431224882, + "meanMs": 0.8070277132558876, + "medianMs": 0.7990004999999201, + "minMs": 0.7772089999999707, + "maxMs": 1.111165999999912, + "p75Ms": 0.807333500000027, + "p99Ms": 0.9028959999999415, + "maxRelativeMarginOfError": 0.10922082334415971, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 5774, + "sampleCount": 6197, "rounds": [ { - "hz": 1169.584731773078, - "meanMs": 0.8550043214774279, - "medianMs": 0.8199580000000424, - "minMs": 0.7825840000000426, - "maxMs": 21.502040999999736, - "p75Ms": 0.8476660000001175, - "p99Ms": 1.3819579999999405, - "relativeMarginOfError": 1.6964838634159736, - "sampleCount": 2924 + "hz": 1250.101849708763, + "meanMs": 0.7999348214971209, + "medianMs": 0.7919170000000122, + "minMs": 0.7772089999999707, + "maxMs": 1.0760420000000295, + "p75Ms": 0.799750000000131, + "p99Ms": 0.8962500000000091, + "relativeMarginOfError": 0.10922082334415971, + "sampleCount": 3126 }, { - "hz": 1139.7574878725682, - "meanMs": 0.8773796273684198, - "medianMs": 0.8150625000000673, - "minMs": 0.7803749999998217, - "maxMs": 3.9448340000000144, - "p75Ms": 0.8486669999997503, - "p99Ms": 2.204040999999961, - "relativeMarginOfError": 1.0387901902685677, - "sampleCount": 2850 + "hz": 1228.319236536213, + "meanMs": 0.8141206050146542, + "medianMs": 0.8060839999998279, + "minMs": 0.7829169999999976, + "maxMs": 1.111165999999912, + "p75Ms": 0.8149169999999231, + "p99Ms": 0.909541999999874, + "relativeMarginOfError": 0.10784774513198578, + "sampleCount": 3071 } ] } @@ -1895,200 +1895,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 1815.9535480200066, - "meanMs": 0.5506870640926788, - "medianMs": 0.5393129999998223, - "minMs": 0.5103750000002947, - "maxMs": 1.4152919999999085, - "p75Ms": 0.5539170000000695, - "p99Ms": 0.6720209999999724, - "maxRelativeMarginOfError": 0.24446447459737117, + "hz": 1865.9967312666852, + "meanMs": 0.5359167363869073, + "medianMs": 0.5278954999999996, + "minMs": 0.5110829999998714, + "maxMs": 1.6521249999998417, + "p75Ms": 0.5371454999999514, + "p99Ms": 0.6281874999999957, + "maxRelativeMarginOfError": 0.2264105526822406, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 9081, + "sampleCount": 9331, "rounds": [ { - "hz": 1824.4957514672647, - "meanMs": 0.5480966448925941, - "medianMs": 0.5372089999996206, - "minMs": 0.5103750000002947, - "maxMs": 1.402958000000126, - "p75Ms": 0.5512499999999818, - "p99Ms": 0.6625829999999837, - "relativeMarginOfError": 0.24446447459737117, - "sampleCount": 4562 + "hz": 1874.104261100099, + "meanMs": 0.5335882430644494, + "medianMs": 0.5267080000000988, + "minMs": 0.5110829999998714, + "maxMs": 0.809291999999914, + "p75Ms": 0.5356249999999818, + "p99Ms": 0.6162919999999872, + "relativeMarginOfError": 0.11716214552797032, + "sampleCount": 4686 }, { - "hz": 1807.4113445727487, - "meanMs": 0.5532774832927634, - "medianMs": 0.541417000000024, - "minMs": 0.5201660000002448, - "maxMs": 1.4152919999999085, - "p75Ms": 0.5565840000001572, - "p99Ms": 0.6814589999999612, - "relativeMarginOfError": 0.24161981195044777, - "sampleCount": 4519 + "hz": 1857.8892014332714, + "meanMs": 0.5382452297093651, + "medianMs": 0.5290829999999005, + "minMs": 0.5116659999998774, + "maxMs": 1.6521249999998417, + "p75Ms": 0.538665999999921, + "p99Ms": 0.6400830000000042, + "relativeMarginOfError": 0.2264105526822406, + "sampleCount": 4645 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 139.98936272058293, - "meanMs": 7.143902596142263, - "medianMs": 7.030395749999798, - "minMs": 6.668875000000071, - "maxMs": 12.617375000000266, - "p75Ms": 7.185208500000101, - "p99Ms": 9.64572899999996, - "maxRelativeMarginOfError": 0.9039463757517826, + "hz": 145.90750568745557, + "meanMs": 6.853659120469354, + "medianMs": 6.81629174999992, + "minMs": 6.5614590000000135, + "maxMs": 9.490000000000236, + "p75Ms": 6.910249999999905, + "p99Ms": 7.51231249999995, + "maxRelativeMarginOfError": 0.3334358644832937, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 701, + "sampleCount": 731, "rounds": [ { - "hz": 141.163662553433, - "meanMs": 7.083976016997164, - "medianMs": 7.002749999999651, - "minMs": 6.668875000000071, - "maxMs": 11.183165999999801, - "p75Ms": 7.146417000000042, - "p99Ms": 8.502040999999963, - "relativeMarginOfError": 0.5351995549552249, - "sampleCount": 353 + "hz": 145.82664874629467, + "meanMs": 6.857457183561651, + "medianMs": 6.829541999999947, + "minMs": 6.5614590000000135, + "maxMs": 8.050791000000117, + "p75Ms": 6.935124999999971, + "p99Ms": 7.382375000000025, + "relativeMarginOfError": 0.26442336588977533, + "sampleCount": 365 }, { - "hz": 138.81506288773286, - "meanMs": 7.203829175287362, - "medianMs": 7.058041499999945, - "minMs": 6.733375000000024, - "maxMs": 12.617375000000266, - "p75Ms": 7.22400000000016, - "p99Ms": 10.789416999999958, - "relativeMarginOfError": 0.9039463757517826, - "sampleCount": 348 + "hz": 145.9883626286165, + "meanMs": 6.849861057377056, + "medianMs": 6.8030414999998925, + "minMs": 6.575000000000273, + "maxMs": 9.490000000000236, + "p75Ms": 6.88537499999984, + "p99Ms": 7.642249999999876, + "relativeMarginOfError": 0.3334358644832937, + "sampleCount": 366 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 415.54438060668735, - "meanMs": 2.4065246287606223, - "medianMs": 2.1130207499999756, - "minMs": 2.0273339999998825, - "maxMs": 18.849791000000096, - "p75Ms": 2.1824580000000537, - "p99Ms": 5.1886460000000625, - "maxRelativeMarginOfError": 3.1278490750716474, + "hz": 426.1865731157951, + "meanMs": 2.346390434333958, + "medianMs": 2.0893437500000687, + "minMs": 2.0235000000000127, + "maxMs": 17.402082999999948, + "p75Ms": 2.1359374999999545, + "p99Ms": 4.523375499999929, + "maxRelativeMarginOfError": 2.639831882962312, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 2079, + "sampleCount": 2132, "rounds": [ { - "hz": 417.29687254724445, - "meanMs": 2.396375496168581, - "medianMs": 2.111291499999993, - "minMs": 2.032791999999972, - "maxMs": 18.273167000000058, - "p75Ms": 2.1827910000001793, - "p99Ms": 5.034834000000046, - "relativeMarginOfError": 2.87460150357885, - "sampleCount": 1044 + "hz": 426.0528832977603, + "meanMs": 2.347126469981237, + "medianMs": 2.096875000000182, + "minMs": 2.031209000000217, + "maxMs": 17.402082999999948, + "p75Ms": 2.1443749999998545, + "p99Ms": 4.432166999999936, + "relativeMarginOfError": 2.602044695296639, + "sampleCount": 1066 }, { - "hz": 413.7918886661303, - "meanMs": 2.4166737613526643, - "medianMs": 2.114749999999958, - "minMs": 2.0273339999998825, - "maxMs": 18.849791000000096, - "p75Ms": 2.182124999999928, - "p99Ms": 5.342458000000079, - "relativeMarginOfError": 3.1278490750716474, - "sampleCount": 1035 + "hz": 426.32026293383, + "meanMs": 2.3456543986866794, + "medianMs": 2.0818124999999554, + "minMs": 2.0235000000000127, + "maxMs": 15.904583000000002, + "p75Ms": 2.1275000000000546, + "p99Ms": 4.6145839999999225, + "relativeMarginOfError": 2.639831882962312, + "sampleCount": 1066 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 70.15794002317028, - "meanMs": 14.25366880644481, - "medianMs": 13.846666500000026, - "minMs": 13.296708999999964, - "maxMs": 21.68037500000014, - "p75Ms": 14.495104499999911, - "p99Ms": 19.66962449999994, - "maxRelativeMarginOfError": 1.178502391897951, + "hz": 72.71501209107983, + "meanMs": 13.752379223848564, + "medianMs": 13.520135250000067, + "minMs": 13.139625000000251, + "maxMs": 17.84345899999994, + "p75Ms": 14.1314789999999, + "p99Ms": 15.64960400000001, + "maxRelativeMarginOfError": 0.6039144028236213, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 351, + "sampleCount": 365, "rounds": [ { - "hz": 69.9589934800045, - "meanMs": 14.294087868571431, - "medianMs": 13.91604099999995, - "minMs": 13.314583000000312, - "maxMs": 21.68037500000014, - "p75Ms": 14.525249999999687, - "p99Ms": 18.752958000000035, - "relativeMarginOfError": 1.0938599837175293, - "sampleCount": 175 + "hz": 72.86791299748616, + "meanMs": 13.72346151912569, + "medianMs": 13.482708000000002, + "minMs": 13.139625000000251, + "maxMs": 17.84345899999994, + "p75Ms": 14.114124999999603, + "p99Ms": 15.472041999999988, + "relativeMarginOfError": 0.6002902172969221, + "sampleCount": 183 }, { - "hz": 70.35688656633607, - "meanMs": 14.213249744318189, - "medianMs": 13.777292000000102, - "minMs": 13.296708999999964, - "maxMs": 21.162459000000013, - "p75Ms": 14.464959000000135, - "p99Ms": 20.586290999999846, - "relativeMarginOfError": 1.178502391897951, - "sampleCount": 176 + "hz": 72.5621111846735, + "meanMs": 13.781296928571438, + "medianMs": 13.557562500000131, + "minMs": 13.16458300000022, + "maxMs": 17.555875000000015, + "p75Ms": 14.148833000000195, + "p99Ms": 15.827166000000034, + "relativeMarginOfError": 0.6039144028236213, + "sampleCount": 182 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1313.1538799615344, - "meanMs": 0.7615461762245512, - "medianMs": 0.7415205000000924, - "minMs": 0.7146249999999554, - "maxMs": 3.8470829999996567, - "p75Ms": 0.758104000000003, - "p99Ms": 1.0905005000000756, - "maxRelativeMarginOfError": 0.5078068300769949, + "hz": 1342.1736198019778, + "meanMs": 0.7450999335786832, + "medianMs": 0.7373124999999163, + "minMs": 0.7203750000003311, + "maxMs": 1.0352080000000115, + "p75Ms": 0.7446875000000546, + "p99Ms": 0.8392705000001115, + "maxRelativeMarginOfError": 0.1060235569394988, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 6567, + "sampleCount": 6711, "rounds": [ { - "hz": 1320.0169569514271, - "meanMs": 0.7575660257497716, - "medianMs": 0.741083000000117, - "minMs": 0.7212919999997212, - "maxMs": 2.1225830000003043, - "p75Ms": 0.7557500000002619, - "p99Ms": 0.9541670000000977, - "relativeMarginOfError": 0.3341230775691424, - "sampleCount": 3301 + "hz": 1351.9882139075476, + "meanMs": 0.7396514183431947, + "medianMs": 0.7318749999999454, + "minMs": 0.7203750000003311, + "maxMs": 1.0352080000000115, + "p75Ms": 0.7391250000000582, + "p99Ms": 0.8338750000002619, + "relativeMarginOfError": 0.10583033037522098, + "sampleCount": 3380 }, { - "hz": 1306.2908029716416, - "meanMs": 0.7655263266993307, - "medianMs": 0.7419580000000678, - "minMs": 0.7146249999999554, - "maxMs": 3.8470829999996567, - "p75Ms": 0.7604579999997441, - "p99Ms": 1.2268340000000535, - "relativeMarginOfError": 0.5078068300769949, - "sampleCount": 3266 + "hz": 1332.359025696408, + "meanMs": 0.7505484488141716, + "medianMs": 0.7427499999998872, + "minMs": 0.7295829999998205, + "maxMs": 1.0345409999999902, + "p75Ms": 0.7502500000000509, + "p99Ms": 0.8446659999999611, + "relativeMarginOfError": 0.1060235569394988, + "sampleCount": 3331 } ] } @@ -2120,200 +2120,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 1624.8568588574599, - "meanMs": 0.6184458388306379, - "medianMs": 0.5751460000000748, - "minMs": 0.5330410000000256, - "maxMs": 17.019708000000037, - "p75Ms": 0.616145500000016, - "p99Ms": 1.210916999999995, - "maxRelativeMarginOfError": 1.6307360439884022, + "hz": 1806.6598476371987, + "meanMs": 0.5535091737304458, + "medianMs": 0.5438542500000665, + "minMs": 0.5265420000000631, + "maxMs": 1.7367499999998017, + "p75Ms": 0.5542084999997314, + "p99Ms": 0.6548329999999964, + "maxRelativeMarginOfError": 0.2607540705661054, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 8125, + "sampleCount": 9035, "rounds": [ { - "hz": 1738.1573539286462, - "meanMs": 0.5753219049700902, - "medianMs": 0.5595000000001846, - "minMs": 0.5330410000000256, - "maxMs": 1.9635000000000673, - "p75Ms": 0.5772910000000593, - "p99Ms": 0.8099589999999353, - "relativeMarginOfError": 0.3713930360981118, - "sampleCount": 4346 + "hz": 1809.6826815521363, + "meanMs": 0.5525830634254154, + "medianMs": 0.5438750000000709, + "minMs": 0.5302500000000236, + "maxMs": 1.383375000000342, + "p75Ms": 0.5537089999997988, + "p99Ms": 0.6503749999999968, + "relativeMarginOfError": 0.1564570684553339, + "sampleCount": 4525 }, { - "hz": 1511.5563637862736, - "meanMs": 0.6615697726911856, - "medianMs": 0.5907919999999649, - "minMs": 0.5377079999999523, - "maxMs": 17.019708000000037, - "p75Ms": 0.6549999999999727, - "p99Ms": 1.6118750000000546, - "relativeMarginOfError": 1.6307360439884022, - "sampleCount": 3779 + "hz": 1803.6370137222611, + "meanMs": 0.5544352840354763, + "medianMs": 0.543833500000062, + "minMs": 0.5265420000000631, + "maxMs": 1.7367499999998017, + "p75Ms": 0.554707999999664, + "p99Ms": 0.6592909999999961, + "relativeMarginOfError": 0.2607540705661054, + "sampleCount": 4510 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 129.81152132522817, - "meanMs": 7.705594084659098, - "medianMs": 7.251228999999853, - "minMs": 6.639791999999943, - "maxMs": 26.28545800000029, - "p75Ms": 7.77908350000007, - "p99Ms": 16.09820850000017, - "maxRelativeMarginOfError": 2.838838701479655, + "hz": 147.57028000102557, + "meanMs": 6.776597450720741, + "medianMs": 6.737562499999854, + "minMs": 6.504666999999927, + "maxMs": 9.000082999999904, + "p75Ms": 6.820896000000005, + "p99Ms": 7.6536040000001435, + "maxRelativeMarginOfError": 0.33027847999128623, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 650, + "sampleCount": 739, "rounds": [ { - "hz": 131.96347884330297, - "meanMs": 7.577854181818193, - "medianMs": 7.213332999999807, - "minMs": 6.668249999999944, - "maxMs": 16.948750000000018, - "p75Ms": 7.567500000000109, - "p99Ms": 12.714208999999983, - "relativeMarginOfError": 1.6595398018214877, - "sampleCount": 330 + "hz": 148.29896439011756, + "meanMs": 6.7431354231805996, + "medianMs": 6.7066249999998035, + "minMs": 6.504666999999927, + "maxMs": 8.29104099999995, + "p75Ms": 6.794167000000016, + "p99Ms": 7.477916000000278, + "relativeMarginOfError": 0.2744391848799433, + "sampleCount": 371 }, { - "hz": 127.65956380715339, - "meanMs": 7.833333987500003, - "medianMs": 7.289124999999899, - "minMs": 6.639791999999943, - "maxMs": 26.28545800000029, - "p75Ms": 7.99066700000003, - "p99Ms": 19.482208000000355, - "relativeMarginOfError": 2.838838701479655, - "sampleCount": 320 + "hz": 146.84159561193357, + "meanMs": 6.810059478260883, + "medianMs": 6.768499999999904, + "minMs": 6.58987500000012, + "maxMs": 9.000082999999904, + "p75Ms": 6.847624999999994, + "p99Ms": 7.8292920000000095, + "relativeMarginOfError": 0.33027847999128623, + "sampleCount": 368 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 410.178524741346, - "meanMs": 2.440299265025882, - "medianMs": 2.114052000000015, - "minMs": 1.952458000000206, - "maxMs": 18.686874999999873, - "p75Ms": 2.2199790000000235, - "p99Ms": 5.808729500000027, - "maxRelativeMarginOfError": 3.0437737215935856, + "hz": 445.01927980268545, + "meanMs": 2.2470959166376283, + "medianMs": 1.996906249999995, + "minMs": 1.93950000000018, + "maxMs": 17.209959000000254, + "p75Ms": 2.0368539999999484, + "p99Ms": 4.498958000000016, + "maxRelativeMarginOfError": 2.8705735580761718, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 2052, + "sampleCount": 2227, "rounds": [ { - "hz": 397.4865983454489, - "meanMs": 2.515808090543261, - "medianMs": 2.1522079999999733, - "minMs": 1.9915420000002086, - "maxMs": 17.580666000000292, - "p75Ms": 2.2727500000000873, - "p99Ms": 6.118167000000085, - "relativeMarginOfError": 3.0437737215935856, - "sampleCount": 994 + "hz": 445.4657360925844, + "meanMs": 2.244841564631949, + "medianMs": 1.9934375000000273, + "minMs": 1.93950000000018, + "maxMs": 16.91879099999983, + "p75Ms": 2.0349169999999503, + "p99Ms": 4.484290999999985, + "relativeMarginOfError": 2.8137010825407924, + "sampleCount": 1114 }, { - "hz": 422.87045113724304, - "meanMs": 2.364790439508503, - "medianMs": 2.075896000000057, - "minMs": 1.952458000000206, - "maxMs": 18.686874999999873, - "p75Ms": 2.1672079999999596, - "p99Ms": 5.4992919999999685, - "relativeMarginOfError": 2.857234053788716, - "sampleCount": 1058 + "hz": 444.57282351278644, + "meanMs": 2.249350268643308, + "medianMs": 2.0003749999999627, + "minMs": 1.9455000000000382, + "maxMs": 17.209959000000254, + "p75Ms": 2.0387909999999465, + "p99Ms": 4.513625000000047, + "relativeMarginOfError": 2.8705735580761718, + "sampleCount": 1113 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 72.07391719653211, - "meanMs": 13.874965438003661, - "medianMs": 13.42391674999999, - "minMs": 12.775540999999976, - "maxMs": 22.954624999999965, - "p75Ms": 14.117646000000036, - "p99Ms": 22.253875000000107, - "maxRelativeMarginOfError": 1.4775328109734698, + "hz": 75.50134493217055, + "meanMs": 13.246640000056003, + "medianMs": 12.952416999999855, + "minMs": 12.516000000000076, + "maxMs": 19.35200000000009, + "p75Ms": 13.642271000000164, + "p99Ms": 16.033333499999912, + "maxRelativeMarginOfError": 0.7926356944035383, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 362, + "sampleCount": 378, "rounds": [ { - "hz": 71.72744063175624, - "meanMs": 13.941665716666673, - "medianMs": 13.468563000000017, - "minMs": 12.775540999999976, - "maxMs": 22.954624999999965, - "p75Ms": 14.170417000000043, - "p99Ms": 22.77479100000005, - "relativeMarginOfError": 1.4775328109734698, - "sampleCount": 180 + "hz": 76.39186554970227, + "meanMs": 13.090398994764403, + "medianMs": 12.795416999999816, + "minMs": 12.516000000000076, + "maxMs": 19.35200000000009, + "p75Ms": 13.537166999999954, + "p99Ms": 14.492833000000019, + "relativeMarginOfError": 0.7217980646410289, + "sampleCount": 191 }, { - "hz": 72.42039376130799, - "meanMs": 13.80826515934065, - "medianMs": 13.379270499999961, - "minMs": 12.791083999999955, - "maxMs": 22.215708999999947, - "p75Ms": 14.064875000000029, - "p99Ms": 21.732959000000164, - "relativeMarginOfError": 1.418305036721897, - "sampleCount": 182 + "hz": 74.61082431463885, + "meanMs": 13.402881005347602, + "medianMs": 13.109416999999894, + "minMs": 12.722249999999804, + "maxMs": 18.21629199999984, + "p75Ms": 13.747375000000375, + "p99Ms": 17.573833999999806, + "relativeMarginOfError": 0.7926356944035383, + "sampleCount": 187 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1268.0412373517552, - "meanMs": 0.7889089068997516, - "medianMs": 0.752010749999954, - "minMs": 0.719208999999978, - "maxMs": 11.233499999999822, - "p75Ms": 0.7812294999998812, - "p99Ms": 1.360875000000192, - "maxRelativeMarginOfError": 1.340815032222883, + "hz": 1336.2073845459527, + "meanMs": 0.7484080241003435, + "medianMs": 0.7405005000000529, + "minMs": 0.7200830000001588, + "maxMs": 1.0481250000000273, + "p75Ms": 0.7476249999998004, + "p99Ms": 0.8443955000000187, + "maxRelativeMarginOfError": 0.1082894016278661, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 6342, + "sampleCount": 6682, "rounds": [ { - "hz": 1243.6865805347404, - "meanMs": 0.8040610999999984, - "medianMs": 0.7542090000000599, - "minMs": 0.7249170000000049, - "maxMs": 11.233499999999822, - "p75Ms": 0.7909999999997126, - "p99Ms": 1.5557910000002266, - "relativeMarginOfError": 1.340815032222883, - "sampleCount": 3110 + "hz": 1329.0955905035153, + "meanMs": 0.7523913307252487, + "medianMs": 0.7445419999999103, + "minMs": 0.7331249999999727, + "maxMs": 1.0481250000000273, + "p75Ms": 0.7513749999999391, + "p99Ms": 0.8460829999999078, + "relativeMarginOfError": 0.10607124013890026, + "sampleCount": 3323 }, { - "hz": 1292.3958941687702, - "meanMs": 0.7737567137995047, - "medianMs": 0.7498124999998481, - "minMs": 0.719208999999978, - "maxMs": 2.11337500000036, - "p75Ms": 0.7714590000000499, - "p99Ms": 1.1659590000001572, - "relativeMarginOfError": 0.3744675993019663, - "sampleCount": 3232 + "hz": 1343.31917858839, + "meanMs": 0.7444247174754383, + "medianMs": 0.7364590000001954, + "minMs": 0.7200830000001588, + "maxMs": 1.0237919999999576, + "p75Ms": 0.7438749999996617, + "p99Ms": 0.8427080000001297, + "relativeMarginOfError": 0.1082894016278661, + "sampleCount": 3359 } ] } @@ -2342,80 +2342,80 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 2040.3492775174393, - "meanMs": 0.49182604744242187, - "medianMs": 0.4404375000000016, - "minMs": 0.403208000000177, - "maxMs": 3.29037500000004, - "p75Ms": 0.48110399999984566, - "p99Ms": 1.1809164999999666, - "maxRelativeMarginOfError": 1.1210823459833044, + "hz": 2382.848215168901, + "meanMs": 0.41966832488672834, + "medianMs": 0.41224999999991496, + "minMs": 0.39837499999998727, + "maxMs": 0.8215410000000247, + "p75Ms": 0.421208500000148, + "p99Ms": 0.5032290000000899, + "maxRelativeMarginOfError": 0.12918016239914962, "measureCalls": 0, "readCount": 772, "roundCount": 2, - "sampleCount": 10202, + "sampleCount": 11915, "rounds": [ { - "hz": 1919.904110005241, - "meanMs": 0.5208593464583344, - "medianMs": 0.446666999999934, - "minMs": 0.4107909999997901, - "maxMs": 3.29037500000004, - "p75Ms": 0.4988749999999982, - "p99Ms": 1.3550419999999122, - "relativeMarginOfError": 1.1210823459833044, - "sampleCount": 4800 + "hz": 2377.051041621056, + "meanMs": 0.4206893257614019, + "medianMs": 0.4133750000000873, + "minMs": 0.40037500000016735, + "maxMs": 0.6902500000001055, + "p75Ms": 0.42200000000002547, + "p99Ms": 0.5030000000000427, + "relativeMarginOfError": 0.12546698953911653, + "sampleCount": 5943 }, { - "hz": 2160.7944450296377, - "meanMs": 0.46279274842650936, - "medianMs": 0.4342080000000692, - "minMs": 0.403208000000177, - "maxMs": 2.044667000000004, - "p75Ms": 0.46333299999969313, - "p99Ms": 1.006791000000021, - "relativeMarginOfError": 0.5854753964625095, - "sampleCount": 5402 + "hz": 2388.645388716746, + "meanMs": 0.4186473240120548, + "medianMs": 0.4111249999997426, + "minMs": 0.39837499999998727, + "maxMs": 0.8215410000000247, + "p75Ms": 0.4204170000002705, + "p99Ms": 0.503458000000137, + "relativeMarginOfError": 0.12918016239914962, + "sampleCount": 5972 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 135.09047315577934, - "meanMs": 7.412660367368433, - "medianMs": 7.083125249999966, - "minMs": 6.411666999999966, - "maxMs": 31.81579099999999, - "p75Ms": 7.489104500000167, - "p99Ms": 13.457770999999866, - "maxRelativeMarginOfError": 2.869814571158091, + "hz": 153.01204757323498, + "meanMs": 6.535666297399194, + "medianMs": 6.496479499999964, + "minMs": 6.168209000000161, + "maxMs": 7.967083000000002, + "p75Ms": 6.602271000000087, + "p99Ms": 7.310458500000095, + "maxRelativeMarginOfError": 0.31124601042357053, "measureCalls": 0, "readCount": 772, "roundCount": 2, - "sampleCount": 677, + "sampleCount": 766, "rounds": [ { - "hz": 140.10503289526258, - "meanMs": 7.137502339031343, - "medianMs": 6.961874999999964, - "minMs": 6.439959000000272, - "maxMs": 11.63429199999996, - "p75Ms": 7.228625000000193, - "p99Ms": 10.74795899999981, - "relativeMarginOfError": 1.019651338069962, - "sampleCount": 351 + "hz": 152.09805002311722, + "meanMs": 6.574706249343834, + "medianMs": 6.532541999999921, + "minMs": 6.2905000000000655, + "maxMs": 7.952915999999959, + "p75Ms": 6.641125000000102, + "p99Ms": 7.367999999999938, + "relativeMarginOfError": 0.31124601042357053, + "sampleCount": 381 }, { - "hz": 130.0759134162961, - "meanMs": 7.6878183957055235, - "medianMs": 7.204375499999969, - "minMs": 6.411666999999966, - "maxMs": 31.81579099999999, - "p75Ms": 7.749584000000141, - "p99Ms": 16.167582999999922, - "relativeMarginOfError": 2.869814571158091, - "sampleCount": 326 + "hz": 153.92604512335274, + "meanMs": 6.496626345454555, + "medianMs": 6.460417000000007, + "minMs": 6.168209000000161, + "maxMs": 7.967083000000002, + "p75Ms": 6.563417000000072, + "p99Ms": 7.252917000000252, + "relativeMarginOfError": 0.2884670158001412, + "sampleCount": 385 } ] } @@ -2446,200 +2446,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 1774.5214750526916, - "meanMs": 0.5635332628019317, - "medianMs": 0.5260414999999625, - "minMs": 0.493916999999783, - "maxMs": 4.584375000000136, - "p75Ms": 0.5582920000000513, - "p99Ms": 1.262562500000115, - "maxRelativeMarginOfError": 0.7530990086818221, + "hz": 1961.3722285175652, + "meanMs": 0.5098476022891596, + "medianMs": 0.5025415000000066, + "minMs": 0.4872089999998934, + "maxMs": 0.7777499999997417, + "p75Ms": 0.51206250000007, + "p99Ms": 0.5918120000002034, + "maxRelativeMarginOfError": 0.12243129798327869, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 8874, + "sampleCount": 9808, "rounds": [ { - "hz": 1772.0904810058937, - "meanMs": 0.5643052714962776, - "medianMs": 0.5271659999999656, - "minMs": 0.493916999999783, - "maxMs": 4.584375000000136, - "p75Ms": 0.5604169999999158, - "p99Ms": 1.2248749999999973, - "relativeMarginOfError": 0.7530990086818221, - "sampleCount": 4431 + "hz": 1959.4828809244127, + "meanMs": 0.5103387274954075, + "medianMs": 0.5034160000000156, + "minMs": 0.4872089999998934, + "maxMs": 0.767334000000119, + "p75Ms": 0.5125000000000455, + "p99Ms": 0.5934579999999983, + "relativeMarginOfError": 0.12243129798327869, + "sampleCount": 4899 }, { - "hz": 1776.9524690994897, - "meanMs": 0.5627612541075858, - "medianMs": 0.5249169999999594, - "minMs": 0.49575000000004366, - "maxMs": 3.068500000000313, - "p75Ms": 0.5561670000001868, - "p99Ms": 1.3002500000002328, - "relativeMarginOfError": 0.7215629544528992, - "sampleCount": 4443 + "hz": 1963.2615761107177, + "meanMs": 0.5093564770829118, + "medianMs": 0.5016669999999976, + "minMs": 0.4872920000000249, + "maxMs": 0.7777499999997417, + "p75Ms": 0.5116250000000946, + "p99Ms": 0.5901660000004085, + "relativeMarginOfError": 0.11898891037641758, + "sampleCount": 4909 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 134.55588050227027, - "meanMs": 7.43478811586505, - "medianMs": 7.247958500000038, - "minMs": 6.706957999999986, - "maxMs": 14.728208999999879, - "p75Ms": 7.5243754999999055, - "p99Ms": 10.707188000000087, - "maxRelativeMarginOfError": 1.1721312715764387, + "hz": 144.39730652799807, + "meanMs": 6.925552161154306, + "medianMs": 6.871375250000085, + "minMs": 6.585749999999734, + "maxMs": 9.214750000000095, + "p75Ms": 6.977645999999936, + "p99Ms": 7.915958999999987, + "maxRelativeMarginOfError": 0.46410979210950903, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 674, + "sampleCount": 723, "rounds": [ { - "hz": 131.88398645769027, - "meanMs": 7.582421693939395, - "medianMs": 7.375792000000047, - "minMs": 6.706957999999986, - "maxMs": 14.728208999999879, - "p75Ms": 7.72320899999977, - "p99Ms": 11.036959000000024, - "relativeMarginOfError": 1.1721312715764387, - "sampleCount": 330 + "hz": 145.20227876148095, + "meanMs": 6.886944258241756, + "medianMs": 6.845916500000044, + "minMs": 6.585749999999734, + "maxMs": 8.25304099999994, + "p75Ms": 6.935457999999926, + "p99Ms": 7.602209000000016, + "relativeMarginOfError": 0.2620177058209325, + "sampleCount": 364 }, { - "hz": 137.2277745468503, - "meanMs": 7.287154537790705, - "medianMs": 7.12012500000003, - "minMs": 6.707249999999931, - "maxMs": 11.977166000000011, - "p75Ms": 7.325542000000041, - "p99Ms": 10.37741700000015, - "relativeMarginOfError": 0.9002375028899133, - "sampleCount": 344 + "hz": 143.59233429451515, + "meanMs": 6.9641600640668555, + "medianMs": 6.896834000000126, + "minMs": 6.593416000000161, + "maxMs": 9.214750000000095, + "p75Ms": 7.019833999999946, + "p99Ms": 8.229708999999957, + "relativeMarginOfError": 0.46410979210950903, + "sampleCount": 359 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 256.78538247783393, - "meanMs": 3.8969713214232136, - "medianMs": 3.5090832500000033, - "minMs": 3.2438750000001164, - "maxMs": 36.06054200000017, - "p75Ms": 3.8228955000001292, - "p99Ms": 6.806896000000279, - "maxRelativeMarginOfError": 3.1876038143275185, + "hz": 278.6763938283676, + "meanMs": 3.591783900010086, + "medianMs": 3.282333250000022, + "minMs": 3.1140000000000327, + "maxMs": 18.829124999999976, + "p75Ms": 3.4004999999999654, + "p99Ms": 6.654771000000096, + "maxRelativeMarginOfError": 2.13922661342555, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 1285, + "sampleCount": 1395, "rounds": [ { - "hz": 263.50512771921746, - "meanMs": 3.7949925629742114, - "medianMs": 3.4423329999999623, - "minMs": 3.2438750000001164, - "maxMs": 20.619333000000097, - "p75Ms": 3.708625000000211, - "p99Ms": 6.284875000000284, - "relativeMarginOfError": 2.380874310908372, - "sampleCount": 659 + "hz": 270.11194797275624, + "meanMs": 3.7021687026627235, + "medianMs": 3.3699585000000525, + "minMs": 3.295916000000034, + "maxMs": 17.232333000000153, + "p75Ms": 3.506582999999864, + "p99Ms": 8.370916999999963, + "relativeMarginOfError": 2.13922661342555, + "sampleCount": 676 }, { - "hz": 250.06563723645044, - "meanMs": 3.9989500798722157, - "medianMs": 3.5758335000000443, - "minMs": 3.3555420000002414, - "maxMs": 36.06054200000017, - "p75Ms": 3.9371660000000475, - "p99Ms": 7.328917000000274, - "relativeMarginOfError": 3.1876038143275185, - "sampleCount": 626 + "hz": 287.240839683979, + "meanMs": 3.4813990973574485, + "medianMs": 3.1947079999999914, + "minMs": 3.1140000000000327, + "maxMs": 18.829124999999976, + "p75Ms": 3.2944170000000668, + "p99Ms": 4.938625000000229, + "relativeMarginOfError": 2.0319248412901936, + "sampleCount": 719 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 43.795870303291295, - "meanMs": 22.85198795070714, - "medianMs": 22.26389599999999, - "minMs": 20.72979200000009, - "maxMs": 35.267791999999986, - "p75Ms": 23.454395999999917, - "p99Ms": 30.859041499999933, - "maxRelativeMarginOfError": 2.148027558768745, + "hz": 46.65808526890027, + "meanMs": 21.432829334600882, + "medianMs": 21.396760499999914, + "minMs": 20.528917000000092, + "maxMs": 25.524790999999823, + "p75Ms": 21.652541999999926, + "p99Ms": 23.685874500000068, + "maxRelativeMarginOfError": 0.5944992312163926, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 220, + "sampleCount": 235, "rounds": [ { - "hz": 45.051540128063586, - "meanMs": 22.19679942477878, - "medianMs": 22.00929199999996, - "minMs": 20.72979200000009, - "maxMs": 27.23229100000026, - "p75Ms": 22.653041999999914, - "p99Ms": 26.908582999999908, - "relativeMarginOfError": 0.8829402489672388, - "sampleCount": 113 + "hz": 46.83745165168831, + "meanMs": 21.350435703389806, + "medianMs": 21.319479, + "minMs": 20.528917000000092, + "maxMs": 25.524790999999823, + "p75Ms": 21.611833999999817, + "p99Ms": 23.313666000000012, + "relativeMarginOfError": 0.5725794066550084, + "sampleCount": 118 }, { - "hz": 42.540200478519004, - "meanMs": 23.507176476635497, - "medianMs": 22.518500000000017, - "minMs": 20.954041999999845, - "maxMs": 35.267791999999986, - "p75Ms": 24.25574999999992, - "p99Ms": 34.80949999999996, - "relativeMarginOfError": 2.148027558768745, - "sampleCount": 107 + "hz": 46.47871888611223, + "meanMs": 21.51522296581196, + "medianMs": 21.474041999999827, + "minMs": 20.65800000000013, + "maxMs": 25.523417000000336, + "p75Ms": 21.693250000000035, + "p99Ms": 24.058083000000124, + "relativeMarginOfError": 0.5944992312163926, + "sampleCount": 117 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1522.8583470619524, - "meanMs": 0.656685926231807, - "medianMs": 0.6251040000000216, - "minMs": 0.5961250000000291, - "maxMs": 5.864458000000013, - "p75Ms": 0.6562499999998863, - "p99Ms": 1.1742295000001377, - "maxRelativeMarginOfError": 0.7482539640021741, + "hz": 1627.5516779212048, + "meanMs": 0.6144198770268919, + "medianMs": 0.6055834999997955, + "minMs": 0.5928750000000491, + "maxMs": 1.1582089999997152, + "p75Ms": 0.6130624999999554, + "p99Ms": 0.7038959999998724, + "maxRelativeMarginOfError": 0.1269127315242872, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 7616, + "sampleCount": 8139, "rounds": [ { - "hz": 1513.2700714112698, - "meanMs": 0.6608205758456611, - "medianMs": 0.6264165000000048, - "minMs": 0.5987920000000031, - "maxMs": 5.864458000000013, - "p75Ms": 0.6572919999998703, - "p99Ms": 1.218000000000302, - "relativeMarginOfError": 0.7482539640021741, - "sampleCount": 3784 + "hz": 1628.070974670753, + "meanMs": 0.6142238364038345, + "medianMs": 0.6054589999999962, + "minMs": 0.5928750000000491, + "maxMs": 1.1394159999999829, + "p75Ms": 0.6131249999998545, + "p99Ms": 0.7022919999999431, + "relativeMarginOfError": 0.12613336940644884, + "sampleCount": 4071 }, { - "hz": 1532.4466227126347, - "meanMs": 0.6525512766179528, - "medianMs": 0.6237915000000385, - "minMs": 0.5961250000000291, - "maxMs": 4.755083000000013, - "p75Ms": 0.6552079999999023, - "p99Ms": 1.1304589999999735, - "relativeMarginOfError": 0.5741796910392448, - "sampleCount": 3832 + "hz": 1627.0323811716567, + "meanMs": 0.6146159176499494, + "medianMs": 0.6057079999995949, + "minMs": 0.5951250000002801, + "maxMs": 1.1582089999997152, + "p75Ms": 0.6130000000000564, + "p99Ms": 0.7054999999998017, + "relativeMarginOfError": 0.1269127315242872, + "sampleCount": 4068 } ] } @@ -2669,28 +2669,28 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 164.722160629157, - "meanMs": 6.070828576923079, - "medianMs": 5.908812500000003, - "minMs": 5.170833000000002, - "maxMs": 8.856542000000005, - "p75Ms": 6.315958000000002, - "p99Ms": 8.856542000000005, - "maxRelativeMarginOfError": 4.727675327988059, + "hz": 187.09461229905432, + "meanMs": 5.344889346153847, + "medianMs": 5.3083124999999995, + "minMs": 5.084000000000003, + "maxMs": 5.850375, + "p75Ms": 5.407457999999998, + "p99Ms": 5.850375, + "maxRelativeMarginOfError": 1.3619988525322457, "measureCalls": 59, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 164.722160629157, - "meanMs": 6.070828576923079, - "medianMs": 5.908812500000003, - "minMs": 5.170833000000002, - "maxMs": 8.856542000000005, - "p75Ms": 6.315958000000002, - "p99Ms": 8.856542000000005, - "relativeMarginOfError": 4.727675327988059, + "hz": 187.09461229905432, + "meanMs": 5.344889346153847, + "medianMs": 5.3083124999999995, + "minMs": 5.084000000000003, + "maxMs": 5.850375, + "p75Ms": 5.407457999999998, + "p99Ms": 5.850375, + "relativeMarginOfError": 1.3619988525322457, "sampleCount": 26 } ] @@ -2698,28 +2698,28 @@ { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 22.625358008545298, - "meanMs": 44.19819565384615, - "medianMs": 40.3871875, - "minMs": 36.522833999999996, - "maxMs": 59.57066699999999, - "p75Ms": 49.677583, - "p99Ms": 59.57066699999999, - "maxRelativeMarginOfError": 6.352188090903529, + "hz": 27.57255951813227, + "meanMs": 36.267942384615395, + "medianMs": 36.2553545, + "minMs": 34.78295800000001, + "maxMs": 37.504834, + "p75Ms": 36.716, + "p99Ms": 37.504834, + "maxRelativeMarginOfError": 0.6911613631407599, "measureCalls": 59, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 22.625358008545298, - "meanMs": 44.19819565384615, - "medianMs": 40.3871875, - "minMs": 36.522833999999996, - "maxMs": 59.57066699999999, - "p75Ms": 49.677583, - "p99Ms": 59.57066699999999, - "relativeMarginOfError": 6.352188090903529, + "hz": 27.57255951813227, + "meanMs": 36.267942384615395, + "medianMs": 36.2553545, + "minMs": 34.78295800000001, + "maxMs": 37.504834, + "p75Ms": 36.716, + "p99Ms": 37.504834, + "relativeMarginOfError": 0.6911613631407599, "sampleCount": 26 } ] @@ -2727,28 +2727,28 @@ { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 74.44174972309244, - "meanMs": 13.433322076923076, - "medianMs": 13.095624999999998, - "minMs": 12.199582999999997, - "maxMs": 17.8495, - "p75Ms": 13.474291999999998, - "p99Ms": 17.8495, - "maxRelativeMarginOfError": 3.959577225634866, + "hz": 84.12122785207781, + "meanMs": 11.887605846153848, + "medianMs": 11.857750499999998, + "minMs": 11.527957999999998, + "maxMs": 12.515374999999999, + "p75Ms": 11.986374999999995, + "p99Ms": 12.515374999999999, + "maxRelativeMarginOfError": 0.7412557134438761, "measureCalls": 39, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 74.44174972309244, - "meanMs": 13.433322076923076, - "medianMs": 13.095624999999998, - "minMs": 12.199582999999997, - "maxMs": 17.8495, - "p75Ms": 13.474291999999998, - "p99Ms": 17.8495, - "relativeMarginOfError": 3.959577225634866, + "hz": 84.12122785207781, + "meanMs": 11.887605846153848, + "medianMs": 11.857750499999998, + "minMs": 11.527957999999998, + "maxMs": 12.515374999999999, + "p75Ms": 11.986374999999995, + "p99Ms": 12.515374999999999, + "relativeMarginOfError": 0.7412557134438761, "sampleCount": 26 } ] @@ -2756,28 +2756,28 @@ { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 16.832556386985722, - "meanMs": 59.40868261538461, - "medianMs": 56.18897849999999, - "minMs": 47.546625000000006, - "maxMs": 92.80325, - "p75Ms": 65.33012500000001, - "p99Ms": 92.80325, - "maxRelativeMarginOfError": 6.739126157412318, + "hz": 21.275501762558708, + "meanMs": 47.00241673076925, + "medianMs": 46.6752915, + "minMs": 45.434417, + "maxMs": 54.090624999999996, + "p75Ms": 47.108000000000004, + "p99Ms": 54.090624999999996, + "maxRelativeMarginOfError": 1.3142414024985105, "measureCalls": 39, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 16.832556386985722, - "meanMs": 59.40868261538461, - "medianMs": 56.18897849999999, - "minMs": 47.546625000000006, - "maxMs": 92.80325, - "p75Ms": 65.33012500000001, - "p99Ms": 92.80325, - "relativeMarginOfError": 6.739126157412318, + "hz": 21.275501762558708, + "meanMs": 47.00241673076925, + "medianMs": 46.6752915, + "minMs": 45.434417, + "maxMs": 54.090624999999996, + "p75Ms": 47.108000000000004, + "p99Ms": 54.090624999999996, + "relativeMarginOfError": 1.3142414024985105, "sampleCount": 26 } ] @@ -2785,28 +2785,28 @@ { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 40.35471521503637, - "meanMs": 24.78025169230769, - "medianMs": 24.4025005, - "minMs": 21.513583000000004, - "maxMs": 31.552042, - "p75Ms": 25.353041000000005, - "p99Ms": 31.552042, - "maxRelativeMarginOfError": 3.3560811028558595, + "hz": 45.91361117073356, + "meanMs": 21.780033730769233, + "medianMs": 22.0005835, + "minMs": 20.394583999999995, + "maxMs": 22.929040999999998, + "p75Ms": 22.279374999999995, + "p99Ms": 22.929040999999998, + "maxRelativeMarginOfError": 1.12901207609163, "measureCalls": 5, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 40.35471521503637, - "meanMs": 24.78025169230769, - "medianMs": 24.4025005, - "minMs": 21.513583000000004, - "maxMs": 31.552042, - "p75Ms": 25.353041000000005, - "p99Ms": 31.552042, - "relativeMarginOfError": 3.3560811028558595, + "hz": 45.91361117073356, + "meanMs": 21.780033730769233, + "medianMs": 22.0005835, + "minMs": 20.394583999999995, + "maxMs": 22.929040999999998, + "p75Ms": 22.279374999999995, + "p99Ms": 22.929040999999998, + "relativeMarginOfError": 1.12901207609163, "sampleCount": 26 } ] diff --git a/crates/taffyjs_binding/src/detailed.rs b/crates/taffyjs_binding/src/detailed.rs index 9ce2efd..da5faa5 100644 --- a/crates/taffyjs_binding/src/detailed.rs +++ b/crates/taffyjs_binding/src/detailed.rs @@ -3,12 +3,13 @@ use taffy::{DetailedGridInfo, DetailedGridItemsInfo, DetailedGridTracksInfo, Det use crate::numeric::DetailedLayoutInfoKindCode; -#[napi(object, object_from_js = false)] +#[napi(object, use_nullable = true, object_from_js = false)] pub struct DetailedGridTracksOutput { pub negative_implicit_tracks: u16, pub explicit_tracks: u16, pub positive_implicit_tracks: u16, pub positions: Vec, + pub empty_axis_line: Option, pub line_names: Vec>, } @@ -52,6 +53,7 @@ fn tracks_output(value: &DetailedGridTracksInfo) -> DetailedGridTracksOutput { end: f64::from(position.end), }) .collect(), + empty_axis_line: value.empty_axis_line.map(f64::from), line_names: value .iter_line_names() .map(|names| names.to_vec()) diff --git a/packages/taffyjs-node/README.md b/packages/taffyjs-node/README.md index eb44757..51ece86 100644 --- a/packages/taffyjs-node/README.md +++ b/packages/taffyjs-node/README.md @@ -1,6 +1,6 @@ # `@taffyjs/node` -`@taffyjs/node` is the ESM-only Node-API binding for Taffy 0.14.0. It exposes an explicit in-memory layout tree, readable JavaScript inputs and outputs, and a private platform-specific native implementation. +`@taffyjs/node` is the ESM-only Node-API binding for Taffy at upstream main revision [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d). It exposes an explicit in-memory layout tree, readable JavaScript inputs and outputs, and a private platform-specific native implementation. Install it with npm: diff --git a/packages/taffyjs-node/binding.d.ts b/packages/taffyjs-node/binding.d.ts index f375ce9..a01cf30 100644 --- a/packages/taffyjs-node/binding.d.ts +++ b/packages/taffyjs-node/binding.d.ts @@ -79,6 +79,7 @@ export interface DetailedGridTracksOutput { explicitTracks: number; positiveImplicitTracks: number; positions: Array; + emptyAxisLine: number | null; lineNames: Array>; } diff --git a/packages/taffyjs-node/index.d.ts b/packages/taffyjs-node/index.d.ts index 623a7db..ba6712c 100644 --- a/packages/taffyjs-node/index.d.ts +++ b/packages/taffyjs-node/index.d.ts @@ -709,6 +709,7 @@ interface DetailedGridTracksInfo { /** Reports the explicit tracks value stored in DetailedGridTracksInfo. */ readonly explicitTracks: number; /** Reports the positive implicit tracks value stored in DetailedGridTracksInfo. */ readonly positiveImplicitTracks: number; /** Reports each track's start and end position relative to the Grid container's border box. */ readonly positions: readonly Line[]; + /** Reports the single Grid line position when this axis has no tracks; otherwise null. */ readonly emptyAxisLine: number | null; /** Reports the names attached to each Grid line; empty when the axis has no named lines. */ readonly lineNames: readonly (readonly string[])[]; } /** Reports detached readonly detailed grid item info from a completed Grid layout. */ diff --git a/packages/taffyjs-node/src/public-types.ts b/packages/taffyjs-node/src/public-types.ts index f6b88de..247a9f6 100644 --- a/packages/taffyjs-node/src/public-types.ts +++ b/packages/taffyjs-node/src/public-types.ts @@ -395,6 +395,9 @@ export interface DetailedGridTracksInfo { /** Reports the explicit tracks value stored in DetailedGridTracksInfo. */ readonly explicitTracks: number; /** Reports the positive implicit tracks value stored in DetailedGridTracksInfo. */ readonly positiveImplicitTracks: number; /** Reports each track's start and end position relative to the Grid container's border box. */ readonly positions: readonly Line[]; + /** Reports the single Grid line position when this axis has no tracks; otherwise null. */ readonly emptyAxisLine: + | number + | null; /** Reports the names attached to each Grid line; empty when the axis has no named lines. */ readonly lineNames: readonly (readonly string[])[]; } diff --git a/packages/taffyjs-wasm/README.md b/packages/taffyjs-wasm/README.md index 98acc7c..67d7d76 100644 --- a/packages/taffyjs-wasm/README.md +++ b/packages/taffyjs-wasm/README.md @@ -1,6 +1,6 @@ # `@taffyjs/wasm` -`@taffyjs/wasm` runs the Taffy 0.14.0 layout engine as threadless WebAssembly in Node.js, Bun 1.2+ within major 1, Deno 2.2+ within major 2, and bundled browsers. It exposes the same public TaffyJS API as `@taffyjs/node`; choosing this package guarantees that the implementation is Wasm rather than a native addon. +`@taffyjs/wasm` runs Taffy at upstream main revision [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d) as threadless WebAssembly in Node.js, Bun 1.2+ within major 1, Deno 2.2+ within major 2, and bundled browsers. It exposes the same public TaffyJS API as `@taffyjs/node`; choosing this package guarantees that the implementation is Wasm rather than a native addon. The [Design](../../apps/website/wasm/design.md) explains how the package keeps one direct API across native and WebAssembly runtimes. diff --git a/packages/taffyjs-yoga-wasm/README.md b/packages/taffyjs-yoga-wasm/README.md index 0efb2e0..c41b9ba 100644 --- a/packages/taffyjs-yoga-wasm/README.md +++ b/packages/taffyjs-yoga-wasm/README.md @@ -1,6 +1,6 @@ # @taffyjs/yoga-wasm -`@taffyjs/yoga-wasm` is an ESM Yoga 3.2.1 compatibility facade backed by `@taffyjs/wasm`. It uses the same TypeScript facade, public entries, declarations, and compatibility classifications as `@taffyjs/yoga`; only the TaffyJS runtime backend changes. The layout engine is Taffy 0.14.0. +`@taffyjs/yoga-wasm` is an ESM Yoga 3.2.1 compatibility facade backed by `@taffyjs/wasm`. It uses the same TypeScript facade, public entries, declarations, and compatibility classifications as `@taffyjs/yoga`; only the TaffyJS runtime backend changes. The layout engine is Taffy at upstream main revision [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d). The [Design](../../apps/website/yoga-wasm/design.md) explains why the Yoga-facing model and runtime transport remain separate choices. diff --git a/packages/taffyjs-yoga/COMPATIBILITY.md b/packages/taffyjs-yoga/COMPATIBILITY.md index b08cadd..cc64ddf 100644 --- a/packages/taffyjs-yoga/COMPATIBILITY.md +++ b/packages/taffyjs-yoga/COMPATIBILITY.md @@ -61,7 +61,7 @@ When an upstream enum type also contains values that are Unsupported for one pro ## Upstream work in progress -The compatibility tables describe what the current package can do with its pinned Taffy 0.14.0 dependency. Upstream work is tracked separately so that a possible compatibility improvement is visible without presenting unshipped code as available behavior. +The compatibility tables describe what the current package can do with its pinned Taffy upstream main revision [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d). Upstream work is tracked separately so that a possible compatibility improvement is visible without presenting unshipped code as available behavior. | Capability | Upstream status | | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/packages/taffyjs-yoga/README.md b/packages/taffyjs-yoga/README.md index c4a1b77..a9a7a8f 100644 --- a/packages/taffyjs-yoga/README.md +++ b/packages/taffyjs-yoga/README.md @@ -1,6 +1,6 @@ # @taffyjs/yoga -`@taffyjs/yoga` is a Node.js compatibility facade for `yoga-layout@3.2.1`, implemented in TypeScript over `@taffyjs/node`. It keeps Yoga's package entries and public API shape while Taffy 0.14.0 remains the only layout engine. +`@taffyjs/yoga` is a Node.js compatibility facade for `yoga-layout@3.2.1`, implemented in TypeScript over `@taffyjs/node`. It keeps Yoga's package entries and public API shape while Taffy at upstream main revision [`b3b38713`](https://github.com/DioxusLabs/taffy/commit/b3b387132be1dda0e9d08d5044692236532c166d) remains the only layout engine. The [Design](../../apps/website/yoga/design.md) explains which parts of Yoga the facade preserves, which parts stay owned by Taffy, and how unsupported behavior is reported. diff --git a/tests/taffyjs-node/tests/layouts/algorithms.test.mts b/tests/taffyjs-node/tests/layouts/algorithms.test.mts index 72d5ec0..330d29e 100644 --- a/tests/taffyjs-node/tests/layouts/algorithms.test.mts +++ b/tests/taffyjs-node/tests/layouts/algorithms.test.mts @@ -3,10 +3,12 @@ import { AlignItems, AvailableSpace, AvailableSpaceKind, + AlignContent, Clear, Dimension, DetailedLayoutInfoKind, Display, + FlexDirection, FlexWrap, Float, GridPlacement, @@ -44,14 +46,14 @@ function computeChildren(rootStyle: StyleInput, childStyles: readonly StyleInput }; } -// Every fixed layout value below is pinned to the exact Taffy sources at revision 77f38568: -// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/block.rs -// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/float.rs -// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/flexbox.rs -// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/grid/mod.rs -// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/grid/placement.rs -// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/grid/track_sizing.rs -// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/mod.rs +// Every fixed layout value below is pinned to the exact Taffy sources at revision b3b38713: +// https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/block.rs +// https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/float.rs +// https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/flexbox.rs +// https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/grid/mod.rs +// https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/grid/placement.rs +// https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/grid/track_sizing.rs +// https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/mod.rs test("block-float", () => { const block = computeChildren({ display: Display.Block, size: { width: 100 } }, [ @@ -110,6 +112,44 @@ test("block-float", () => { assert.deepEqual(positioned.children[1].location, { x: 0, y: 0 }); }); +test("percentage floats that fill a row stay on one line", () => { + const tree = new TaffyTree(); + const children = [ + tree.newLeaf({ + display: Display.Block, + float: Float.Left, + size: { width: Dimension.Percent(30), height: 50 }, + }), + tree.newLeaf({ + display: Display.Block, + float: Float.Left, + margin: { left: Dimension.Percent(5) }, + size: { width: Dimension.Percent(30), height: 50 }, + }), + tree.newLeaf({ + display: Display.Block, + float: Float.Left, + margin: { left: Dimension.Percent(5) }, + size: { width: Dimension.Percent(30), height: 50 }, + }), + ]; + const root = tree.newWithChildren(children, { + display: Display.Block, + size: { width: 1628 }, + }); + + tree.computeLayout({ root, availableSpace: maxContentSpace() }); + + assert.deepEqual( + children.map((child) => tree.getLayout(child).location), + [ + { x: 0, y: 0 }, + { x: 570, y: 0 }, + { x: 1140, y: 0 }, + ], + ); +}); + test("flex", () => { const tree = new TaffyTree(); const first = tree.newLeaf({ @@ -154,6 +194,26 @@ test("flex", () => { assert.deepEqual(tree.getUnroundedLayout(second).location, { x: 50.5, y: 0 }); }); +test("intrinsic flex columns include negative main-axis margins", () => { + const tree = new TaffyTree(); + const child = tree.newLeaf({ + flexGrow: 1, + flexShrink: 0, + margin: { top: -24 }, + size: { width: 100, height: 100 }, + }); + const root = tree.newWithChildren([child], { + display: Display.Flex, + flexDirection: FlexDirection.Column, + size: { width: 300 }, + }); + + tree.computeLayout({ root, availableSpace: maxContentSpace() }); + + assert.equal(tree.getLayout(root).size.height, 76); + assert.deepEqual(tree.getLayout(child).location, { x: 0, y: -24 }); +}); + test("flex descendants can overflow an ancestor max width", () => { const tree = new TaffyTree(); const leaf = tree.newLeaf({ @@ -341,6 +401,7 @@ test("grid", () => { { start: 0, end: 20 }, { start: 20, end: 50 }, ], + emptyAxisLine: null, lineNames: [], }); assert.deepEqual(detail.value.columns, { @@ -351,6 +412,7 @@ test("grid", () => { { start: 0, end: 40 }, { start: 40, end: 100 }, ], + emptyAxisLine: null, lineNames: [], }); assert.deepEqual(detail.value.items, [ @@ -384,6 +446,123 @@ test("grid-repetition-line-names", () => { ); }); +test("absolute grid placements resolve unknown named lines before falling back", () => { + const tree = new TaffyTree(); + const absolute = { + position: Position.Absolute, + inset: { left: 0, right: 0, top: 0, bottom: 0 }, + }; + const children = [ + tree.newLeaf({ + ...absolute, + gridRow: { start: GridPlacement.NamedLine("foo", 1), end: GridPlacement.NamedLine("bar", 1) }, + gridColumn: { + start: GridPlacement.NamedLine("foo", 1), + end: GridPlacement.NamedLine("bar", 1), + }, + }), + tree.newLeaf({ + ...absolute, + gridRow: { start: GridPlacement.Line(1), end: GridPlacement.NamedLine("bar", 1) }, + gridColumn: { start: GridPlacement.Line(1), end: GridPlacement.NamedLine("foo", 1) }, + }), + tree.newLeaf({ + ...absolute, + gridRow: { start: GridPlacement.NamedLine("bar", 1), end: GridPlacement.Line(3) }, + gridColumn: { start: GridPlacement.NamedLine("foo", 1), end: GridPlacement.Line(3) }, + }), + tree.newLeaf({ + ...absolute, + gridRow: { start: GridPlacement.NamedLine("bar", 1), end: GridPlacement.Line(1) }, + gridColumn: { start: GridPlacement.NamedLine("foo", 1), end: GridPlacement.Line(1) }, + }), + ]; + const root = tree.newWithChildren(children, { + display: Display.Grid, + padding: 10, + size: { width: 200, height: 150 }, + gridTemplateRows: [singleTrack(20), singleTrack(50)], + gridTemplateColumns: [singleTrack(40), singleTrack(60)], + }); + + tree.computeLayout({ root, availableSpace: maxContentSpace() }); + + assert.deepEqual( + children.map((child) => { + const { location, size } = tree.getLayout(child); + return { location, size }; + }), + [ + { location: { x: 0, y: 0 }, size: { width: 200, height: 150 } }, + { location: { x: 10, y: 10 }, size: { width: 190, height: 140 } }, + { location: { x: 110, y: 80 }, size: { width: 90, height: 70 } }, + { location: { x: 10, y: 10 }, size: { width: 190, height: 140 } }, + ], + ); +}); + +test("absolute grid placement on an empty grid uses its single resolved line", () => { + const tree = new TaffyTree(); + const first = tree.newLeaf({ + position: Position.Absolute, + inset: { left: 0, right: 0, top: 0, bottom: 0 }, + gridRow: { start: GridPlacement.Line(1) }, + gridColumn: { start: GridPlacement.Line(1) }, + }); + const second = tree.newLeaf({ + position: Position.Absolute, + inset: { left: 0, right: 0, top: 0, bottom: 0 }, + gridRow: { end: GridPlacement.Line(1) }, + gridColumn: { end: GridPlacement.Line(1) }, + }); + const root = tree.newWithChildren([first, second], { + display: Display.Grid, + alignContent: AlignContent.Center, + justifyContent: AlignContent.Center, + padding: 5, + size: { width: 100, height: 100 }, + }); + + tree.computeLayout({ root, availableSpace: maxContentSpace() }); + + assert.deepEqual( + [first, second].map((child) => { + const { location, size } = tree.getLayout(child); + return { location, size }; + }), + [ + { location: { x: 50, y: 50 }, size: { width: 50, height: 50 } }, + { location: { x: 0, y: 0 }, size: { width: 50, height: 50 } }, + ], + ); +}); + +test("auto grid starts do not add a positive implicit track", () => { + const tree = new TaffyTree(); + const child = tree.newLeaf({ + gridColumn: { end: GridPlacement.Line(1) }, + size: { width: 10, height: 10 }, + }); + const root = tree.newWithChildren([child], { + display: Display.Grid, + size: { width: 10, height: 10 }, + }); + + tree.computeLayout({ root, availableSpace: maxContentSpace() }); + + const detail = tree.getDetailedLayoutInfo(root); + assert.equal(detail.kind, DetailedLayoutInfoKind.Grid); + assert.ok("value" in detail); + assert.deepEqual(detail.value.columns, { + negativeImplicitTracks: 1, + explicitTracks: 0, + positiveImplicitTracks: 0, + positions: [{ start: 0, end: 10 }], + emptyAxisLine: null, + lineNames: [], + }); +}); + test("measure-context", () => { const context = { width: 20, height: 10 }; const tree = new TaffyTree(); diff --git a/tests/taffyjs-node/tests/tree/compute-layout.test.mts b/tests/taffyjs-node/tests/tree/compute-layout.test.mts index b5eb406..35c7171 100644 --- a/tests/taffyjs-node/tests/tree/compute-layout.test.mts +++ b/tests/taffyjs-node/tests/tree/compute-layout.test.mts @@ -40,8 +40,8 @@ function wrapperState(tree: TaffyTree, nodes: readonly NodeId[]) { test("algorithms", () => { // Pinned upstream routing, cache, and hidden-layout sources for these values: - // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs#L284-L329 - // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/mod.rs#L278-L290 + // https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/tree/taffy_tree.rs#L284-L329 + // https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/mod.rs#L278-L290 const cases = [ ["Flex", Display.Flex, {}], ["Grid", Display.Grid, {}], @@ -94,7 +94,7 @@ test("algorithms", () => { test("percentage-content", () => { // Pinned upstream block percentage and scrollable-overflow source for these values: - // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/block.rs#L566-L746 + // https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/block.rs#L566-L746 const tree = new TaffyTree(); const child = tree.newLeaf({ size: { width: Dimension.Percent(50), height: 80 }, @@ -116,8 +116,8 @@ test("percentage-content", () => { test("scrollable-overflow", () => { // Pinned upstream scrollable-overflow sources for these values: - // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/common/scrollable_overflow.rs - // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/block.rs + // https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/common/scrollable_overflow.rs + // https://github.com/DioxusLabs/taffy/blob/b3b387132be1dda0e9d08d5044692236532c166d/src/compute/block.rs const padded = new TaffyTree(); padded.disableRounding(); const paddedChild = padded.newLeaf({ size: { width: 30, height: 20 } }); diff --git a/tests/taffyjs-node/tests/tree/get-detailed-layout-info.test.mts b/tests/taffyjs-node/tests/tree/get-detailed-layout-info.test.mts index 2cf06f1..84306c1 100644 --- a/tests/taffyjs-node/tests/tree/get-detailed-layout-info.test.mts +++ b/tests/taffyjs-node/tests/tree/get-detailed-layout-info.test.mts @@ -1,5 +1,6 @@ import assert from "node:assert/strict"; import { + AlignContent, AvailableSpace, DetailedLayoutInfoKind, Direction, @@ -17,6 +18,7 @@ type Tracks = { explicitTracks: number; positiveImplicitTracks: number; positions: Array<{ start: number; end: number }>; + emptyAxisLine: number | null; lineNames: string[][]; }; type GridInfo = { @@ -79,13 +81,20 @@ test("new-none", () => { test("empty-grid", () => { const tree = new TaffyTree(); const hidden = tree.newLeaf({ display: Display.None }); - const grid = tree.newWithChildren([hidden], { display: Display.Grid }); + const grid = tree.newWithChildren([hidden], { + display: Display.Grid, + alignContent: AlignContent.Center, + justifyContent: AlignContent.Center, + size: { width: 100, height: 100 }, + }); compute(tree, grid); const value = gridValue(tree.getDetailedLayoutInfo(grid)); assert.deepEqual(value.items, []); assert.equal(value.rows.explicitTracks, 0); assert.equal(value.columns.explicitTracks, 0); + assert.equal(value.rows.emptyAxisLine, 50); + assert.equal(value.columns.emptyAxisLine, 50); }); test("grid-payload", () => { @@ -107,6 +116,7 @@ test("grid-payload", () => { { start: 0, end: Math.fround(12.25) }, { start: Math.fround(12.25), end: Math.fround(20.75) }, ], + emptyAxisLine: null, lineNames: [["row-start"], [], ["row-end"]], }); assert.deepEqual(grid.columns, { @@ -117,6 +127,7 @@ test("grid-payload", () => { { start: 0, end: Math.fround(7.75) }, { start: Math.fround(7.75), end: 11 }, ], + emptyAxisLine: null, lineNames: [["column-start"], ["middle"], ["column-end"]], }); assert.deepEqual(grid.items, [ @@ -153,6 +164,7 @@ test("rtl-logical-order-and-implicit-line-names", () => { { start: 63, end: 70 }, { start: 56, end: 63 }, ], + emptyAxisLine: null, lineNames: [["inline-start"], ["middle"], ["inline-end"], [], []], }); }); diff --git a/tests/taffyjs-node/tests/types/values.test-d.ts b/tests/taffyjs-node/tests/types/values.test-d.ts index e97a057..c8f9088 100644 --- a/tests/taffyjs-node/tests/types/values.test-d.ts +++ b/tests/taffyjs-node/tests/types/values.test-d.ts @@ -87,9 +87,11 @@ if (typeof dimension !== "number") { declare const detail: DetailedLayoutInfo; if (detail.kind === DetailedLayoutInfoKind.Grid) { const rows: number = detail.value.rows.explicitTracks; + const emptyAxisLine: number | null = detail.value.rows.emptyAxisLine; // @ts-expect-error Detailed output arrays are readonly. detail.value.rows.positions.push({ start: 0, end: 1 }); void rows; + void emptyAxisLine; } else { // @ts-expect-error None has no Grid payload. void detail.value;