diff --git a/README.md b/README.md index d7f28083..8fce000f 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ Neither is a general untrusted-bytecode loader or Feature Parity claim. - [Engine module responsibilities](docs/architecture.md) - [Current implementation status](docs/status.md) - [Profiling and external benchmarks](docs/profiling.md) +- [Data structure improvement plan](docs/data-structure-plan.md) - [Pinned Test262 baseline and metric definitions](docs/test262.md) - [Parity acceptance contract](docs/parity.md) - [Playground build and trust boundary](docs/playground.md) diff --git a/docs/data-structure-plan.md b/docs/data-structure-plan.md new file mode 100644 index 00000000..5b9592b5 --- /dev/null +++ b/docs/data-structure-plan.md @@ -0,0 +1,254 @@ +# 数据结构与复杂度改进计划 + +状态:计划内实现与验证已完成,集中在 stacked PR #17(base 为 #15 的 `perf/batch-builtin-initialization` 分支),待 PR 评审。S08、S17、S18 按新证据细化了表示/优化范围,具体边界见下文及报告。 + +当前进展(2026-09-11): + +- S01:22 类固定工作量生成器、独立输出校验、失败样本保留和 12 项工具测试已完成。 +- S02–S04:Map/Set 共用 SameValueZero 键索引;存活记录即时回收,暂停游标不保留历史墓碑。见[键查找](reports/indexed-collections.md)和[记录回收](reports/collection-records.md)。键定位平均 O(1),顺序维护仍为 O(log n),不宣称所有操作 O(1)。 +- S05/S06:同 flags 写入只替换单槽;dictionary 采用紧凑槽与独立插入顺序,避免逐次复制布局。见[槽更新](reports/property-slot-update.md)和[dictionary](reports/dictionary-objects.md)。 +- S07/S08:整数键直达、稀疏截断批处理、慢/带洞 Array 复用 dictionary,保留 QuickJS 的表示敏感语义。见[截断](reports/sparse-array-truncation.md)和[带洞数组](reports/holey-array-dictionary.md)。 +- S09–S11:模块名称/绑定槽、作用域名称和字符串常量建立专用索引,并共享只读模块槽。源码坐标索引作为实测后的补充步骤完成。见[模块](reports/module-indexes.md)、[作用域](reports/compiler-scope-index.md)、[常量](reports/compiler-constant-index.md)及[源码坐标](reports/source-coordinate-index.md)。 +- S12:平坦字符串操作避免反复构造表示;长键使用有界弱身份 hash memo,短键不分配缓存。见[平坦字符串](reports/flat-strings.md)和[哈希缓存](reports/string-hash-memo.md)。 +- S13–S16:TypedArray 数字索引、Arguments/RegExp 批量发布、0/1/2 条引用边事务完成。见[累计测量](reports/integer-keys-builtin-batches.md),不把该累计收益归给单个提交。 +- S17:依据新 profile 实现 Number 栈原位更新,保留 locals/TDZ/字节码验证检查;局部 A/B 改善约 7%–9%。 +- S18:普通 Call/CallMethod 借用 caller 参数窗口,callee 仍拥有帧;未引入帧池。局部调用实测基本持平,只确认减少临时分配。S17/S18 的范围细化与证据见 [VM 报告](reports/vm-stack-and-call.md)。 +- S19:正确性、构建和架构门禁已完成;[396 个规模样本](reports/data-structure-scaling-final.md)及[522 个固定 microbench/V8 样本](reports/data-structure-fixed-final.md)全部通过。[原始自校准 harness](reports/data-structure-adaptive-final.md)、[36 个硬件计数样本和 6 份最终 profile](reports/data-structure-hardware-final.md)已保留。原始合并 V8 的两版 Oxide 均触及 90 秒上限,不产生可比较分数;固定八项均通过。 + +最终源码验证覆盖上述所有引擎改动。各步骤报告保留当时的提交、局部验证和中间退化记录;其中的历史“待验证”状态不表示当前仍缺少对应兼容性验收。 + +最终源码兼容性验证(引擎改动截至 `95013e9`;后续提交仅调整测试门禁/报告): +引擎 fingerprint `b61a54ac6ff4469d1223fba670782e8a49ac9a3b612a810037748ff70c46e568`。 +6844 个 focused 变体全部通过。完整 102037 变体中,80032 可运行、79982 通过、 +50 个已知失败;完整 TSV/JSONL 均仅 fingerprint 与冻结基线不同,规范化后 SHA-256 +逐字节一致。没有新增结果差异,也没有修改或推广冻结 receipts。 +工作区测试、profiling/test262-host 组合、CI 固定 Rust 1.88 的全部 lint、原生 release +及 Node/WASM 验收通过。完整架构反例门禁通过(694 个错误变体全部拒绝);综合性能复测完成。 +详见[验证证据](reports/data-structure-validation.json)。 + +最终处置:没有留下计划内未完成的实现项。没有加入帧池、没有移除 locals/TDZ/发布验证, +也没有新增另一套带洞数组存储;这些是实测后的范围细化,不是已实现功能。 +空间结论来自存活记录、capacity、游标及 GC 回收验证,不宣称整应用 RSS 下降。 +各步骤的中间退化和无明显收益结果继续保留,未通过筛选工作负载或改写基线消除。 + +读者:参与 quickjs-oxide 维护的人和 agent。读完后应能选择一个依赖已满足的步骤,找到职责所属模块,理解不变量,完成实现、验证和交接,无需查阅之前的聊天记录。 + +## 1. 目标、范围与证据 + +目标是让常见操作具有合理的复杂度,并通过清晰的模块职责、单一事实来源和可重复验证,让后续维护者能够安全修改这些实现。 + +本计划基于 `cdc35ec2b656d50b835a5775b7d57f4bf3f27c17` 的源码检查,以及 [Issue #16](https://github.com/pocket-stack/quickjs-oxide/issues/16) 的 benchmark/profile。实施前须核对当前分支,已经落地的改动应以新证据标记,不重复实现。 + +ECMAScript 要求 Map/Set 平均访问时间低于集合元素数的线性增长;规范里的列表只描述可观察行为,不是实际存储模型。哈希表是本计划的实现方向,并不声称所有操作最坏情况 O(1)。见 [Map/Set 规范](https://tc39.es/ecma262/multipage/keyed-collections.html#sec-map-objects)。语言兼容验收仍以项目固定的 QuickJS、Test262 和已记录差异为准,不能借优化顺便切换到新的规范语义。 + +| 工作项 | 已确认的现状 | 证据强度 | 目标 | +| --- | --- | --- | --- | +| Map 查找 | 全表快照、逐项 SameValueZero 比较 | 源码、CPU profile、容量曲线 | 平均常数级键定位,无全表临时快照 | +| Set 查找及集合运算 | 同类快照与扫描;集合运算反复调用查找 | 源码,待补规模实验 | 复用正确索引,移除可证明冗余的重复查重 | +| Map/Set 历史记录 | 删除保留墓碑,重插追加,存活期间不压缩 | 源码,待补 churn 实验 | 查询不依赖历史插入数;明确并验证回收策略 | +| 已有对象属性写入 | 同 flags 单槽替换之前复制整个布局 | 源码、profile、对象宽度曲线 | 单槽更新不复制 shape entries 或全部 slots | +| 属性删除 | 复制布局、移动槽位、重新发布 | 源码,待补规模实验 | 动态对象反复删除不累计平方级布局工作 | +| Array 索引与截断 | 数字键转字符串/intern;稀疏截断逐项重建布局 | 键处理有 profile;截断为源码推导 | 整数键直接处理;批量截断,控制带洞退化 | +| 模块导出/导入定位 | 按名称或 closure index 扫列表 | 源码,待补加载/链接实验 | 保留顺序记录,增加相应点查索引 | +| 编译器绑定与字符串常量去重 | 作用域绑定、特定常量插入路径线性查重 | 源码,待补编译实验 | 在稳定编号之外维护名称索引 | +| 字符串哈希 | 相同字符串每次 hash 重新遍历内容 | 源码,待补长键实验 | 选择一致、可缓存的内容哈希策略 | + +Issue #16 中 TypedArray、平坦字符串、Arguments/RegExp 批量构建、VM、调用帧与小引用事务也纳入后续步骤,避免基础结构变更后仍按旧热点安排工作。 + +已检查到的合理结构不进行无目的重写:WeakMap/WeakSet、Atom 表、shape 属性查找、已加载模块名称缓存已有哈希索引;连续数组、TypedArray、普通 VM locals 已有下标访问;任务队列使用 VecDeque。GC 遍历全部存活边和数组删除元素的必要清理,不应被误列为缺少索引。 + +## 2. 必须遵守的维护原则 + +沿用 [职责边界](responsibility-boundaries.md) 和 [工作区架构](architecture.md)。不新建独立容器 crate,不建立第二套 Value、Runtime 或 GC 生命周期。保持 `unsafe_code = "forbid"`。 + +1. **按语义职责组织模块。** 比较规则、存储修改、JS 回调和测量工具各有明确拥有者。不能把实现堆入通用 utils,也不让运行时巨型方法继续膨胀。 +2. **抽象必须有真实使用者。** Map/Set 共享键规则和必要存储机制;作用域、模块、shape 分别拥有自己的索引。名字相似不意味着应共用一个泛型容器。 +3. **先采用具体类型。** 泛型只用于真实的数据差异,例如 Map 的 value 与 Set 的空载荷。避免布尔模式组合、动态策略注册、宏生成核心算法和只有一个实现的 trait。 +4. **每项数据只有一个权威来源。** 有序记录拥有内容与 GC 边;查找索引是派生元数据。明确索引如何建立、更新、清空和验证,调用方不能手工同步多个字段。 +5. **命名表达契约。** 区分键、记录 ID、槽下标和哈希值;使用有意义的新类型。方法名区分查找、准备、提交与清理,不用含混的 process/update 操作掩盖所有权变化。 +6. **注释解释原因。** 模块入口写职责和不变量;危险边界解释为何需要重新查找、保留墓碑或先 retain。不要逐行复述代码,不规定机械的函数行数上限。 +7. **快路径与通用路径共享语义核心。** 快路径条件集中、可审计;回退后不能再次执行已经发生的用户回调或转换。每个特殊路径都必须有对应行为测试。 +8. **复杂度属于内部契约。** 对关键操作写明元素数、键长度、墓碑数和作用域深度分别如何影响成本。平均、摊销与最坏情况不能混用。 +9. **变更可以独立评审。** 重命名和目录整理尽量与算法修改分开;不保留永久的旧/新双实现开关。兼容适配必须有明确移除步骤。 + +## 3. 推荐抽象及边界 + +### 3.1 Map/Set:键规则与有序记录 + +数据关系为“键的哈希 → 候选稳定记录 ID → 原始键与载荷”。哈希冲突必须使用真实键相等性确认。 + +| 责任 | 所属层 | 约束 | +| --- | --- | --- | +| SameValueZero 比较及对应哈希 | value 的纯值算法,由集合存储调用 | 不执行 JS、不做隐式字符串转换;统一 NaN、±0、Int/Float 同值规则 | +| 有序记录、查找索引、记录 ID | heap 的集合存储 | 不决定 realm、品牌、构造器和回调顺序 | +| retain、release、索引同步与失败处理 | heap 存储事务边界 | 索引不额外拥有对象或 Symbol 引用;失败不发布半成品 | +| Map/Set 方法、迭代、集合协议、回调 | builtins | 两个品牌保持独立;跨用户代码边界后重新验证状态 | + +原始键比较可接受已经验证且属于同一 Runtime 的 raw value。调用方先完成域和哨兵检查;借用期间不执行用户代码、GC 清理或修改同一存储。需要把返回值带出该区间时,再按现有所有权契约取得受保护的结果。不得把“无 JS 回调”误当成“任意 Runtime API 都可在借用期间调用”。 + +相等键必须同 hash:NaN、±0、同值 Int/Float、Latin1/UTF-16/rope 字符串、BigInt 都有专门测试;对象/Symbol 使用完整身份,包含现有代际信息。不能直接复用 Value 的 strict equality。 + +优先选择标准库可支持、结构直观的安全实现;若索引只存预计算 hash 和记录 ID,必须明确冲突链及扩容策略。现有 32 位字符串内容 hash 不能未经分析便成为集合唯一的分桶依据。索引的种子、碰撞处理和缓存所属域要一起确定:随机化外层 hash 不会消除已经相同的内层指纹。禁止以“哈希碰撞概率低”跳过相等性确认。 + +第一阶段可保留现有稳定数组和 live_indices,以降低语言语义改动范围。但此时只承诺键定位平均 O(1),BTreeSet 的插入/删除仍为 O(log n),墓碑空间问题也尚未完成。 + +后续以稳定记录 ID 和存活记录前后链接承担有序遍历,替代仅为诊断遍历维护的树。空闲槽复用必须防止旧迭代器或诊断 current-record 误认新记录。用户迭代器、forEach 活动记录以及打印器保留的当前记录都要纳入设计,不只统计一个 iterator 数量。 + +回收首先保证无活动观察者时历史槽可以回收或压缩;采用阈值和摊销策略,不在每次删除时扫描或搬移全表。有长期活动观察者时,允许保留的记录、释放触发点和空间上界必须被记录和实测。若仍依赖历史操作数,不得把该阶段标记为“空间与 size 成正比”;需要进一步推进可回收记录/游标设计或明确留下未完成项。 + +### 3.2 对象:布局与值槽分离 + +shape 负责属性元数据、顺序和查找;对象槽负责当前值。相同 flags 的已有属性写入应通过已有单槽替换事务完成,不触发布局复制。禁止调用方绕开 retain/release 直接赋值。 + +动态对象的反复增删由 object/heap 拥有的 dictionary 模式处理:紧凑物理槽加属性索引,独立链接保留可观察插入顺序;删除 swap-remove,只修复移动项的索引和邻接链接,容量按几何阈值收缩。物理槽编号不对外暴露,不跨对象修改缓存;无需保留墓碑。shared shape 仍用于稳定对象。转换入口集中,不能让每个 builtin 自己判断或迁移表示。PropertySlot 的 VarRef、AutoInit、accessor 等语义继续由原有层拥有。 + +dictionary 和 Map/Set 不共享 JS 键语义:对象键是 Atom,集合键是任意 Value;两者的顺序、描述符与 GC 契约不同。最多复用已经证明相同的低层工具,不强行合成万能 OrderedStore。 + +### 3.3 数组:整数索引、洞和批量变更 + +立即整数键和固定 length Atom 由统一键分类入口处理。连续元素、洞和稀疏属性拥有明确的表示与转换条件;洞不是 Undefined,读取洞仍需遵循原型链语义。 + +Array length 缩短由 array/object 层准备删除范围和最终长度,再由 heap 提交清理。必须保留降序删除、不可配置索引阻断、已删除高索引不恢复以及 writable:false 的结果。批量处理仅在无用户代码的内部区间使用,不能泛化到任意 Proxy 或普通 array-like。 + +### 3.4 编译和模块:顺序表旁的专用索引 + +- 作用域保留稳定 BindingId 和声明顺序,另维护名称到当前有效绑定的索引。作用域遮蔽、重复声明、参数环境及 Annex B 规则不由 HashMap 覆盖行为决定。 +- 字符串常量索引只做去重,常量池仍是编号与序列化的权威来源。所有相关插入入口必须同步索引;稳定编号不因优化改变。 +- 模块导出增加名称索引,导入增加 closure index 到记录的索引;适合密集整数时优先直接下标结构。 +- 索引在记录发布/修改所属模块维护;回滚、失败与重新构建有明确入口。循环导出、star 歧义和 live binding 继续由 resolver 处理,不缓存未经生命周期证明的最终解析结果。 + +## 4. 实施步骤与依赖 + +这些是待实施工作包,不是完成记录。每一步同时包含必要代码、行为测试、复杂度证据和文档更新,不安排“先搭全部框架、以后再接业务”的横向阶段。 + +| ID | 交付结果 | 依赖 | 风险 | +| --- | --- | --- | --- | +| S01 | 可重复的固定工作量和规模回归工具,保存当前基线 | 无 | 中 | +| S02 | Map 全部键类型与变更入口使用哈希查找 | S01 | 高 | +| S03 | Set 复用集合键规则与索引,覆盖集合运算 | S02 | 高 | +| S04 | Map/Set 有序遍历和历史槽回收 | S03 | 高 | +| S05 | 已有同 flags 属性原位更新 | S01 | 中 | +| S06 | 动态对象 dictionary 表示,控制增删与空间成本 | S05 | 高 | +| S07 | Array 整数/固定键路径及稀疏截断批量提交 | S05 | 高 | +| S08 | 带洞数组表示与集中转换策略 | S06、S07 | 高 | +| S09 | 模块导出和导入点查索引 | S01 | 中 | +| S10 | 编译器作用域绑定索引 | S01 | 中 | +| S11 | 编译器字符串常量去重索引 | S10 | 中 | +| S10a | 调试位置共享源码检查点索引,保持原始字节行列规则 | S10、新 profile | 中 | +| S12 | 字符串哈希复用及平坦字符串路径 | S03 | 中 | +| S13 | TypedArray canonical integer index 快路径 | S07 | 中 | +| S14 | Arguments 对象批量构建 | S05 | 高 | +| S15 | RegExp 结果对象批量构建 | S14 | 高 | +| S16 | 小规模引用事务的无 HashMap 路径 | S04、S06、S15 | 中 | +| S17 | 依据新 profile 改进 VM locals/值栈/dispatch | S04、S08、S13、S16 | 高 | +| S18 | 同步非逃逸调用的帧/参数存储复用 | S17 | 高 | +| S19 | 全部步骤集成回归、性能复测与维护文档收口 | S01–S18 | 高 | + +S01 是实际可运行的回归工具交付,不是只有研究报告。S02 同时交付键规则和 Map 消费者;S03 根据第二个真实消费者再收敛共享存储边界。 + +S12 的哈希正确性不是可以推迟到该步的问题:S02 必须已有正确哈希。S12 优化重复计算和字符遍历,不能改变键相等性。S15 只复用 S14 中经验证可通用的对象发布机制,RegExp 与 Arguments 的特殊语义继续分开。 + +S17/S18 在开始时重采样并缩小到仍有证据的热点。若原假设不再成立,记录“无收益或已消失”的复测证据和具体范围变更,不能为完成清单制造无意义重构,也不能把未实施写成已实现。 + +### 每步的完成条件 + +- **S01:** 覆盖容量、对象宽度、历史删除重插、稀疏截断、导出数、作用域绑定数和键长度;两引擎固定同一工作量,保留失败和 timeout。Issue #16 未公开的本地原始工具不可视为现有仓库能力,需寻找并验证或重新实现。 +- **S02:** get/has/set/delete/clear、构造器、groupBy/upsert 路径一致;命中和未命中无全表快照;所有键类别、冲突、GC 和回调修改行为通过。容量增长不再带来线性键比较次数。 +- **S03:** add/has/delete 与 union/intersection/difference 等原生 Set 路径得到索引收益;任意 set-like 对象的可观察 has/keys 调用、迭代顺序与异常时机不变。 +- **S04:** live_indices 树成本移除或以证据记录保留理由与复杂度;稳定小 size 的持续增删具有明确空间回收;活迭代器、暂停迭代、clear 后追加、删除重插、forEach 与打印器行为不变。 +- **S05:** 宽对象同属性反复赋值不再复制全部布局;冻结属性、accessor、不同 receiver、VarRef/AutoInit、错误回滚覆盖完整。 +- **S06:** 反复增删普通自有属性不累计平方级布局复制;索引、顺序、槽生命周期一致;动态模式自身也没有永久墓碑积累。记录小对象空间和速度代价。 +- **S07:** 数组写入/slice 避免不必要的整数转字符串;稀疏 length 截断只做必要的元素/布局处理,不对每个元素重复重建整表;不可配置索引的部分成功行为与 oracle 一致。 +- **S08:** 删除中间元素后,常见后续读写不必永久退化为逐项普通属性流程;洞、原型 setter、只读 length、索引上界和稀疏回退保持语义。 +- **S09:** 大平坦导出表 namespace 构建不再出现逐名全表扫描;循环/star/歧义、导入别名、live binding 和加载失败清理保持结果。 +- **S10:** 大作用域声明与引用的名称比较不再随绑定数逐项扫描;遮蔽、重复声明、eval/capture 及 Annex B 不回归。 +- **S11:** 经字符串去重入口插入大量不同名称不再平方扫描;常量编号、相同字符串跨表示去重、编译失败清理不变。 +- **S12:** 重复长字符串键的哈希和比较工作减少;缓存不随不同 seed 错用,rope/平坦表示 hash/Eq 一致;记录额外内存开销。 +- **S13:** 数字整数索引避免 spelling/ToNumber/NumberToString 往返;数值 -0 与字符串 "-0"、非规范字符串、越界、detached/resizable buffer 和值转换后重验完整覆盖。 +- **S14:** 新 arguments 一次准备和发布,减少逐属性布局变更;mapped 别名/解除映射、strict callee、实际参数数量不变。 +- **S15:** RegExp 结果批量发布;lastIndex 转换、compile 重入、groups/indices、属性顺序与异常保持一致。 +- **S16:** 0/1/2 条引用边避免通用 HashMap,重复边计数、溢出预检、失败不发布仍成立;大输入保留清晰通用路径。 +- **S17:** 每项减少的检查有 publication/verification 不变量证明;TDZ、eval/capture、回溯 PC、suspension 和外部字节码拒绝行为不变。 +- **S18:** 先只覆盖同步非逃逸调用,明确 async/generator、arguments/eval、递归和闭包逃逸的回退边界;回退不能丢参数、重复执行或延长对象生命周期。 +- **S19:** 当前源版本上的全量验证和性能证据齐备;汇总改善、退化、无收益和未完成项,检查没有遗留临时双实现。 + +## 5. 验证策略 + +### 正确性 + +每个步骤先复用已有 heap 单元测试、Map/Set oracle、对象/数组/模块用例,再补充能区分旧缺陷与新行为的测试。复杂度可通过仅测试启用的比较/复制计数验证,避免给普通 release 引入永久逐操作计数开销。 + +测试覆盖公开行为与内部关键不变量,避免断言辅助函数调用顺序、私有字段排布等无关实现细节。允许对索引与记录一致性、代际 ID、引用回滚等存储契约做直接单元测试。加入随机操作序列与可复现 seed;与简单语义模型或固定 QuickJS 对照,失败时保留最小复现序列。 + +每步执行相关 Rust/CLI oracle 和 focused Test262;共享 heap、object、VM 变更须扩展到受影响的全部子系统。集成阶段按 [Test262 指南](test262.md) 运行完整固定向量,并运行仓库现有格式、lint、职责/源码布局检查以及原生/Web 构建检查。不假定基线零失败,不修改 frozen 结果来掩盖新回归。 + +### 性能与空间 + +按 [性能工具说明](../scripts/benchmark/README.md) 构建并保留 source/binary/toolchain/workload 身份。正式测量串行、普通构建关闭 profiling,前后版本交错重复;CPU 采样单独进行。先用 pilot 选择足够长的固定工作量,再冻结正式 N,记录分布与指令数。 + +分别报告容器规模、键长度、对象宽度和历史记录数的影响。哈希查找平均 O(1) 指相对于元素数;首次字符串/BigInt 哈希仍依赖键大小,扩容是摊销成本。排序模块导出名的必要 O(E log E) 不要求消除。 + +内存验收包含空容器、小容器、大容器、稳定存活数的 churn、活迭代器保留与最终释放。报告预留 capacity 与真正不可回收记录,不能只用 RSS 判断泄漏,也不能用低覆盖的 arena 事件推断临时分配很少。 + +保留原始 V8 harness 状态,同时覆盖全部固定子套件;全进程时间与阶段时间分开标注。若暂无可信 compile-only/link-only 测量入口,先使用明确标注的整进程规模曲线,不把两次墙钟相减称作独立阶段测量。 + +不预先承诺加速倍数,不用 profile 的包含子调用比例推算收益。每个步骤在实施前声明验收指标,出现退化时记录范围和原因,不能通过缩小测试集合消除坏结果。 + +## 6. 人与 agent 的协作和交接 + +### 开始一个步骤 + +1. 核对本文状态、当前提交、已合入工作和依赖步骤的证据。 +2. 阅读目标模块 README、相关测试和本文对应不变量;以符号名定位当前实现,避免依赖历史行号。 +3. 写清该步骤的具体行为、所选表示、复杂度、所有权、回调/重入边界,以及考虑后未选方案的原因。 +4. 指定负责维护的模块与共享文件;依赖独立不等于可以同时修改同一 heap/collections 或 object 模块。 + +S02–S04、S06、S08、S17–S18 的设计评审重点是所有权、游标/回收、表示转换与验证边界;人和 agent 都可提供评审,但实施者不能仅凭自己读过代码便声称已经获得独立审查。是否由人执行合并遵循项目当前流程,本计划不额外设立逐操作许可门槛。 + +S01 之后可分别推进集合、属性、模块和编译器工作线。共享核心变更由一个步骤统一落地,其他工作基于稳定契约跟进。基准测量不与并行构建或测试竞争同一机器。 + +### 每步提交与交接记录 + +每步在对应变更说明中维护以下字段,并在阶段收口时更新本文状态;不要建立另一份与本文冲突的任务清单: + +```text +步骤与状态:未开始 / 进行中 / 已验证 / 阻塞 / 根据新证据调整 +基线与结果提交: +行为变化、模块拥有者与接口: +关键不变量、复杂度和所有权: +已选设计及未选方案的理由: +已运行验证:命令、环境、退出结果、证据位置 +性能/空间:工作量、重复次数、分布、收益和退化 +剩余事项与下一步: +``` + +如果步骤必须跨会话,记录最小可复现命令、当前失败、正在运行的任务与可安全继续的位置,不能只写“继续优化”。报告中的“测试存在”“测试已运行”“测试通过”必须严格区分。 + +新共享模块的 README 说明:拥有/不拥有的状态、主要调用者、允许的依赖、所有权和错误契约、哪些函数可能执行用户代码、复杂度和验证入口。通过模块私有字段与类型尽量强制不变量,不把可靠性只寄托在 agent 每次都阅读长文档上。 + +## 7. 计划收口标准 + +- 每项已确认缺陷都有完成证据或明确的未完成记录;缺少实测的候选有实测后的处置结论。 +- Map/Set 的哈希查找、顺序语义、引用管理和空间回收都有可执行验证。 +- 关键单点操作不再无意复制或扫描整个容器;必要的批处理、键内容遍历和摊销成本被准确说明。 +- 模块职责与共享抽象经过真实调用者验证,现有 API、语言差异与安全约束没有被暗中放宽。 +- 新维护者能根据步骤说明和模块文档重现证据、修改一个操作并找到相应测试。 +- 没有把计划、静态推导或历史测试报告写成当前实现的验证结果。 + +## 8. 实现后的维护入口 + +| 修改目标 | 首先阅读的拥有者 | 修改时必须保留的契约 | +| --- | --- | --- | +| Map/Set 键定位 | [collection_key.rs](../src/engine/value/collection_key.rs)、[collection_index.rs](../src/engine/heap/collection_index.rs) | SameValueZero 与哈希一致;索引不拥有额外 GC 边;完整字符串比较仍处理碰撞 | +| 集合增删和迭代 | [collection_records.rs](../src/engine/heap/collection_records.rs)、[collections.rs](../src/engine/heap/collections.rs) | ID 不复用,clear 保留时钟;暂停游标不要求保留墓碑;引用事务先验证后发布 | +| 对象/慢 Array 布局 | [dictionary.rs](../src/engine/object/dictionary.rs)、[dictionary_order.rs](../src/engine/object/dictionary_order.rs)、[dictionary_storage.rs](../src/engine/heap/dictionary_storage.rs) | 物理槽与语义顺序不同;共享 shape 首次分离;跨用户代码调用不能缓存槽号 | +| 新对象批量发布 | [layout.rs](../src/engine/heap/runtime/layout.rs) | 调用者保留输入 roots;共享入口只负责 shape/slot 所有权与回滚,不接管 Arguments/RegExp 语义 | +| 数字属性键 | [atom/runtime.rs](../src/engine/atom/runtime.rs) | 精确整数索引与一般 JS Number 转字符串分开;字符串 "-0" 不能当数字 -0 | +| 调用参数窗口 | [frame_execution.rs](../src/engine/vm/frame_execution.rs)、[host_bridge.rs](../src/engine/vm/host_bridge.rs) | caller 借出参数,callee 仍拥有帧;所有完成/错误路径清理后缀并保留下层操作数 | + +常用定位命令:`cargo test --lib collection`、`cargo test --lib dictionary`、 +`cargo test --lib sparse_truncation`、`cargo test --lib borrowed_call_window`。 +这些是修改时的快速反馈入口,不替代上文的完整兼容性验收。 +行为测试放在当前拥有者模块;被冻结的历史测试文件保持原样。 +调用协议的语义测试和 `scripts/checks/binary_object` 的反例模板需要一起维护: +更新实现指纹时,必须确认错误变体仍能命中实际执行入口并被拒绝。 diff --git a/docs/reports/collection-records-history.json b/docs/reports/collection-records-history.json new file mode 100644 index 00000000..8a56dac3 --- /dev/null +++ b/docs/reports/collection-records-history.json @@ -0,0 +1,233 @@ +{ + "before_commit": "e5c49a1", + "after_commit": "cf54916", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "0a9a2a8d56fcbff20f3966419d65f72451ba29fca55aaaa7d668ad02c89f6cd9", + "after": "71871ac007dd0dadd3981efec15853fd34dabb5b4833d17d9ee84d90575146d7" + }, + "summary": [ + { + "case": "map-iterate-churn", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 49626890, + 50007842, + 49864163 + ], + "failures": [], + "median_wall_ns": 49864163 + }, + { + "case": "map-iterate-churn", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 27174563, + 31898499, + 27260994 + ], + "failures": [], + "median_wall_ns": 27260994 + }, + { + "case": "map-iterate-churn", + "size": 8192, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 221851985, + 221362333, + 222695222 + ], + "failures": [], + "median_wall_ns": 221851985 + }, + { + "case": "map-iterate-churn", + "size": 8192, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 41483460, + 39263988, + 41487068 + ], + "failures": [], + "median_wall_ns": 41483460 + }, + { + "case": "map-iterate-churn", + "size": 65536, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1589407140, + 1602775291, + 1590186580 + ], + "failures": [], + "median_wall_ns": 1590186580 + }, + { + "case": "map-iterate-churn", + "size": 65536, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 141326556, + 141108720, + 138963991 + ], + "failures": [], + "median_wall_ns": 141108720 + }, + { + "case": "set-iterate-churn", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 50214960, + 44936398, + 45342196 + ], + "failures": [], + "median_wall_ns": 45342196 + }, + { + "case": "set-iterate-churn", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 27753295, + 27062003, + 26997845 + ], + "failures": [], + "median_wall_ns": 27062003 + }, + { + "case": "set-iterate-churn", + "size": 8192, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 208014451, + 198134600, + 181752811 + ], + "failures": [], + "median_wall_ns": 198134600 + }, + { + "case": "set-iterate-churn", + "size": 8192, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 40030962, + 39845095, + 39680488 + ], + "failures": [], + "median_wall_ns": 39845095 + }, + { + "case": "set-iterate-churn", + "size": 65536, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1264207309, + 1263684745, + 1271485500 + ], + "failures": [], + "median_wall_ns": 1264207309 + }, + { + "case": "set-iterate-churn", + "size": 65536, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 143795111, + 137148815, + 163623266 + ], + "failures": [], + "median_wall_ns": 143795111 + } + ], + "workloads": [ + { + "case": "map-iterate-churn", + "size": 1024, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-history/workloads/map-iterate-churn-1024/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "602e5bdb1663d7e56bab39960d57c1ecc445251905a26f40c1149a6ad8259fba" + } + }, + { + "case": "map-iterate-churn", + "size": 8192, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-history/workloads/map-iterate-churn-8192/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "ef7a12420099a5716c9cc257b7adb4ce84fbca95f6999fae2ed56bc9ef093352" + } + }, + { + "case": "map-iterate-churn", + "size": 65536, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-history/workloads/map-iterate-churn-65536/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "0fb237f722775b078f2ef8202510fc41a9c19ee1b7d316322b57541600a335d0" + } + }, + { + "case": "set-iterate-churn", + "size": 1024, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-history/workloads/set-iterate-churn-1024/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "93d9c61c9e38c1148813644f2ea8af529974d13dc05e4d4d90b996d2bb609e48" + } + }, + { + "case": "set-iterate-churn", + "size": 8192, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-history/workloads/set-iterate-churn-8192/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "ece4cea5683f9169c8adc27d06912877129f54ab50d271a9a0e054d58a424af9" + } + }, + { + "case": "set-iterate-churn", + "size": 65536, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-history/workloads/set-iterate-churn-65536/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "4f610d568074833825e9651d15351c062cd52f46ac675640e608b02d869f8e16" + } + } + ] +} diff --git a/docs/reports/collection-records-iteration.json b/docs/reports/collection-records-iteration.json new file mode 100644 index 00000000..c3148218 --- /dev/null +++ b/docs/reports/collection-records-iteration.json @@ -0,0 +1,305 @@ +{ + "before_commit": "e5c49a1", + "after_commit": "cf54916", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "0a9a2a8d56fcbff20f3966419d65f72451ba29fca55aaaa7d668ad02c89f6cd9", + "after": "71871ac007dd0dadd3981efec15853fd34dabb5b4833d17d9ee84d90575146d7" + }, + "summary": [ + { + "case": "map-iterate-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 25842748, + 26807607, + 25933367 + ], + "failures": [], + "median_wall_ns": 25933367 + }, + { + "case": "map-iterate-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 26914587, + 26405857, + 26472944 + ], + "failures": [], + "median_wall_ns": 26472944 + }, + { + "case": "map-iterate-churn", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 28855805, + 28546510, + 30508266 + ], + "failures": [], + "median_wall_ns": 28855805 + }, + { + "case": "map-iterate-churn", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 25642274, + 25390886, + 26071785 + ], + "failures": [], + "median_wall_ns": 25642274 + }, + { + "case": "map-iterate-churn", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 39120372, + 37562297, + 37429018 + ], + "failures": [], + "median_wall_ns": 37562297 + }, + { + "case": "map-iterate-churn", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 28487669, + 26504242, + 26536903 + ], + "failures": [], + "median_wall_ns": 26536903 + }, + { + "case": "map-iterate-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 75503381, + 80961456, + 77673346 + ], + "failures": [], + "median_wall_ns": 77673346 + }, + { + "case": "map-iterate-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 29247196, + 30352106, + 29508794 + ], + "failures": [], + "median_wall_ns": 29508794 + }, + { + "case": "set-iterate-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 25489140, + 26673888, + 26047421 + ], + "failures": [], + "median_wall_ns": 26047421 + }, + { + "case": "set-iterate-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 26118704, + 26429222, + 26485286 + ], + "failures": [], + "median_wall_ns": 26429222 + }, + { + "case": "set-iterate-churn", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 28396390, + 28047069, + 27648055 + ], + "failures": [], + "median_wall_ns": 28047069 + }, + { + "case": "set-iterate-churn", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 26570766, + 26275976, + 25846917 + ], + "failures": [], + "median_wall_ns": 26275976 + }, + { + "case": "set-iterate-churn", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 35348531, + 37170207, + 35656855 + ], + "failures": [], + "median_wall_ns": 35656855 + }, + { + "case": "set-iterate-churn", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 26714494, + 26338273, + 27016597 + ], + "failures": [], + "median_wall_ns": 26714494 + }, + { + "case": "set-iterate-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 64822640, + 65538684, + 64872783 + ], + "failures": [], + "median_wall_ns": 64872783 + }, + { + "case": "set-iterate-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 28937399, + 28631708, + 29556373 + ], + "failures": [], + "median_wall_ns": 28937399 + } + ], + "workloads": [ + { + "case": "map-iterate-churn", + "size": 32, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/map-iterate-churn-32/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "5d8f6baf2dc3dc271184cdfcd2ff4e55799c8af567abcef96f91e95e843a25d3" + } + }, + { + "case": "map-iterate-churn", + "size": 128, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/map-iterate-churn-128/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "466b8684d58284b912742795a5fd50d69b9f65902408ae76e3eccd09f0465f6d" + } + }, + { + "case": "map-iterate-churn", + "size": 512, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/map-iterate-churn-512/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "a53400c5d8248770a02871d242b998141f5f2ff67fac602dd21cd48c38d4d3d3" + } + }, + { + "case": "map-iterate-churn", + "size": 2048, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/map-iterate-churn-2048/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "c16cf1a3d177ce2039db4efa7076eec9a8b764184d66915321431a86a6103d4d" + } + }, + { + "case": "set-iterate-churn", + "size": 32, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/set-iterate-churn-32/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "a8140f9179d9dbbb65b822f5cdd51a79e8479cfd95bedf8df46a94d0add9995f" + } + }, + { + "case": "set-iterate-churn", + "size": 128, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/set-iterate-churn-128/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "e5d65b0d81e63782c20f7d161cffb2c2807e0ee8e016cf5499a82a7942654cb2" + } + }, + { + "case": "set-iterate-churn", + "size": 512, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/set-iterate-churn-512/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "e4fc16842ede285c8fd993d9d03104161c9620b4279ec05779fd008f4d54327e" + } + }, + { + "case": "set-iterate-churn", + "size": 2048, + "operations": 4096, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-collection-iteration/workloads/set-iterate-churn-2048/workload.mjs", + "expected": "4097\n", + "files": { + "workload.mjs": "23242e82ad395ba24ff018e77e5221db68b30de71e5dca32482e3d26bf0a452d" + } + } + ] +} diff --git a/docs/reports/collection-records-throughput.json b/docs/reports/collection-records-throughput.json new file mode 100644 index 00000000..b908d8ab --- /dev/null +++ b/docs/reports/collection-records-throughput.json @@ -0,0 +1,881 @@ +{ + "before_commit": "e5c49a1", + "after_commit": "cf54916", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "0a9a2a8d56fcbff20f3966419d65f72451ba29fca55aaaa7d668ad02c89f6cd9", + "after": "71871ac007dd0dadd3981efec15853fd34dabb5b4833d17d9ee84d90575146d7" + }, + "summary": [ + { + "case": "map-int", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 72960733, + 72616791, + 72373869 + ], + "failures": [], + "median_wall_ns": 72616791 + }, + { + "case": "map-int", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 75371294, + 75359844, + 77467651 + ], + "failures": [], + "median_wall_ns": 75371294 + }, + { + "case": "map-int", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 71204992, + 71568349, + 71327329 + ], + "failures": [], + "median_wall_ns": 71327329 + }, + { + "case": "map-int", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 76196813, + 75536372, + 74604336 + ], + "failures": [], + "median_wall_ns": 75536372 + }, + { + "case": "map-int", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 72522135, + 71847520, + 72083580 + ], + "failures": [], + "median_wall_ns": 72083580 + }, + { + "case": "map-int", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 75265458, + 72398125, + 76449955 + ], + "failures": [], + "median_wall_ns": 75265458 + }, + { + "case": "map-int", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 71904085, + 73540805, + 72425917 + ], + "failures": [], + "median_wall_ns": 72425917 + }, + { + "case": "map-int", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 77202479, + 75837924, + 79368203 + ], + "failures": [], + "median_wall_ns": 77202479 + }, + { + "case": "map-string", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 86969996, + 85219676, + 85634190 + ], + "failures": [], + "median_wall_ns": 85634190 + }, + { + "case": "map-string", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 90327574, + 86544374, + 87948281 + ], + "failures": [], + "median_wall_ns": 87948281 + }, + { + "case": "map-string", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 84374552, + 82904113, + 85707145 + ], + "failures": [], + "median_wall_ns": 84374552 + }, + { + "case": "map-string", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 88134147, + 85973100, + 91283595 + ], + "failures": [], + "median_wall_ns": 88134147 + }, + { + "case": "map-string", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 86365443, + 83671204, + 84991283 + ], + "failures": [], + "median_wall_ns": 84991283 + }, + { + "case": "map-string", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 90072959, + 87772735, + 86499102 + ], + "failures": [], + "median_wall_ns": 87772735 + }, + { + "case": "map-string", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 86985628, + 83105279, + 83443968 + ], + "failures": [], + "median_wall_ns": 83443968 + }, + { + "case": "map-string", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 87790458, + 88943708, + 87565499 + ], + "failures": [], + "median_wall_ns": 87790458 + }, + { + "case": "set", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 72360208, + 71331663, + 70812614 + ], + "failures": [], + "median_wall_ns": 71331663 + }, + { + "case": "set", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74423091, + 73511945, + 72131943 + ], + "failures": [], + "median_wall_ns": 73511945 + }, + { + "case": "set", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 70155501, + 68817488, + 69457020 + ], + "failures": [], + "median_wall_ns": 69457020 + }, + { + "case": "set", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 72392870, + 70528054, + 76355944 + ], + "failures": [], + "median_wall_ns": 72392870 + }, + { + "case": "set", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 70220692, + 69027449, + 68476012 + ], + "failures": [], + "median_wall_ns": 69027449 + }, + { + "case": "set", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 72974252, + 72180163, + 72820839 + ], + "failures": [], + "median_wall_ns": 72820839 + }, + { + "case": "set", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 71195328, + 72215942, + 70086893 + ], + "failures": [], + "median_wall_ns": 71195328 + }, + { + "case": "set", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74643404, + 74221739, + 71550802 + ], + "failures": [], + "median_wall_ns": 74221739 + }, + { + "case": "map-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 38600454, + 37441506, + 37859474 + ], + "failures": [], + "median_wall_ns": 37859474 + }, + { + "case": "map-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 37986621, + 38028930, + 44902987 + ], + "failures": [], + "median_wall_ns": 38028930 + }, + { + "case": "map-churn", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 45354330, + 38925632, + 38810187 + ], + "failures": [], + "median_wall_ns": 38925632 + }, + { + "case": "map-churn", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 39195563, + 40343352, + 38341061 + ], + "failures": [], + "median_wall_ns": 39195563 + }, + { + "case": "map-churn", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 38560681, + 38232600, + 39031098 + ], + "failures": [], + "median_wall_ns": 38560681 + }, + { + "case": "map-churn", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38742650, + 39023144, + 40362960 + ], + "failures": [], + "median_wall_ns": 39023144 + }, + { + "case": "map-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 40839567, + 42172641, + 40762985 + ], + "failures": [], + "median_wall_ns": 40839567 + }, + { + "case": "map-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 43131238, + 44240846, + 41058887 + ], + "failures": [], + "median_wall_ns": 43131238 + }, + { + "case": "set-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 37065385, + 37020141, + 37114106 + ], + "failures": [], + "median_wall_ns": 37065385 + }, + { + "case": "set-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 36504570, + 37364562, + 37099809 + ], + "failures": [], + "median_wall_ns": 37099809 + }, + { + "case": "set-churn", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 37214362, + 40068320, + 37572460 + ], + "failures": [], + "median_wall_ns": 37572460 + }, + { + "case": "set-churn", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 37232998, + 38212834, + 36800132 + ], + "failures": [], + "median_wall_ns": 37232998 + }, + { + "case": "set-churn", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 38791432, + 39035647, + 38459413 + ], + "failures": [], + "median_wall_ns": 38791432 + }, + { + "case": "set-churn", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38465744, + 37606754, + 37719616 + ], + "failures": [], + "median_wall_ns": 37719616 + }, + { + "case": "set-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 40620329, + 43950745, + 41923357 + ], + "failures": [], + "median_wall_ns": 41923357 + }, + { + "case": "set-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 40047342, + 39506926, + 40895663 + ], + "failures": [], + "median_wall_ns": 40047342 + }, + { + "case": "set-intersection", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 84708282, + 85723442, + 86501583 + ], + "failures": [], + "median_wall_ns": 85723442 + }, + { + "case": "set-intersection", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 91124416, + 89370249, + 92155829 + ], + "failures": [], + "median_wall_ns": 91124416 + }, + { + "case": "set-intersection", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 80715442, + 80800111, + 82026104 + ], + "failures": [], + "median_wall_ns": 80800111 + }, + { + "case": "set-intersection", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 86991437, + 87347449, + 86648668 + ], + "failures": [], + "median_wall_ns": 86991437 + }, + { + "case": "set-intersection", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 79320722, + 79017880, + 86492988 + ], + "failures": [], + "median_wall_ns": 79320722 + }, + { + "case": "set-intersection", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 91539843, + 91179160, + 95080360 + ], + "failures": [], + "median_wall_ns": 91539843 + }, + { + "case": "set-intersection", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 82583845, + 82635621, + 79595886 + ], + "failures": [], + "median_wall_ns": 82583845 + }, + { + "case": "set-intersection", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 91761437, + 93535473, + 93164762 + ], + "failures": [], + "median_wall_ns": 93164762 + } + ], + "workloads": [ + { + "case": "map-int", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-int-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "16a7e7cbe5c6dff26459d438ab106e8e83d6f7f31d327e3d0fd50a24c0954a55" + } + }, + { + "case": "map-int", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-int-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "ec23c21ea28f982f0f7d599503edeac93eeff0b3154e76a05d1442b599cb11e0" + } + }, + { + "case": "map-int", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-int-512/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "f4a64bb953cced88d56f2956456c9a032bb6bbab535014460cc3e8ac92e60fe6" + } + }, + { + "case": "map-int", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-int-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "53b392bc070b88e06af00ba832f24ebd5b8aca5547a3bbeca54fa5fc082b9f19" + } + }, + { + "case": "map-string", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-string-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "d5cfee72bac4ed6b0f218a4282c19eaeba03bfcc50be157d3ef43f964f8a91ac" + } + }, + { + "case": "map-string", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-string-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "665d918e9f8733460787778076ee5e4ca9e36bac93b7a6365d55931f66ae185b" + } + }, + { + "case": "map-string", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-string-512/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "87b11f4f9100952d7b57202bda422d047accb407c7ca9ceaad9a6a3129935716" + } + }, + { + "case": "map-string", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-string-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "af4b9d0ab970a406d363f62351a4db1e6a9b915166c5e6fc33f9f32de86fcf7d" + } + }, + { + "case": "set", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "db996cef9d98fb3b9d21f9784bb64d5c620f539cea15d4fdc706dda378ec4c2a" + } + }, + { + "case": "set", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "f2b264a9ab76f8515c41c76735b02ad16d0eacd2b42a56d3ed009a1a018ecf89" + } + }, + { + "case": "set", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-512/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "ef002d32c2c6885a3a686458d867fa8ee44d34e12ba2d24968ea3d1423436e50" + } + }, + { + "case": "set", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "e72296d63954eedbc46b4004a5f538d95da74e43478d4f11de39cf9e98cdb6be" + } + }, + { + "case": "map-churn", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-churn-32/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "0d4a5fdd2df5c0357f17bfbe4ff8fe89b217dd4b3aa188c892cddff9d66694de" + } + }, + { + "case": "map-churn", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-churn-128/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "2216fa55089ae7645cf017670c390a9d0af7838eda257349104751342fcfddc3" + } + }, + { + "case": "map-churn", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-churn-512/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "dbf04ccad98a2c923dd99c37f4afdc4f2925ced95859038b440643af4ad228bb" + } + }, + { + "case": "map-churn", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/map-churn-2048/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "5fa5d99d78a3b81e47067738156a3257bcd84d85dd7f7e82fe0fee280d8f377c" + } + }, + { + "case": "set-churn", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-churn-32/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "7c30782124c953aeb554f7127cc1bf7958af292741c928c6c32b0ba8900ed219" + } + }, + { + "case": "set-churn", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-churn-128/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "44058f1375959e051614b817dd0f8182be5dd7af05858c0ba5655daf831292ef" + } + }, + { + "case": "set-churn", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-churn-512/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "90631d6546b11c8fa89f1507f25643702ec1968ae6ef71b0eca2de216d2c31ac" + } + }, + { + "case": "set-churn", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-churn-2048/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "039e4801df2d0b483a561085ea79f9d470bcb7eac5a306e828a5cc108c2cf1a6" + } + }, + { + "case": "set-intersection", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-intersection-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "b3156264d64b7e1edd408527f169ea094a9ea6c9c7c1adde67c150f3493d3c1e" + } + }, + { + "case": "set-intersection", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-intersection-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "857eed2e8f4c3d28dcb253f84160fe5850cece285fea8110c662e8f6a8d2fbdf" + } + }, + { + "case": "set-intersection", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-intersection-512/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "daeb369f356d076b5f3d818a8fac12601dacd78c2b07c5b4e718a1e1a313f233" + } + }, + { + "case": "set-intersection", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-reclaimed-collections/workloads/set-intersection-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "92476ac81288942217acf9298b08b805adefeb91641a810d7a745386c0488572" + } + } + ] +} diff --git a/docs/reports/collection-records.md b/docs/reports/collection-records.md new file mode 100644 index 00000000..ab4a997c --- /dev/null +++ b/docs/reports/collection-records.md @@ -0,0 +1,62 @@ +# Reclaiming collection records with stable iterator IDs + +`CollectionRecords` now owns live records, the key index, the ordered live IDs and +an insertion-ID clock. Deletion removes the record immediately. Clear releases +the tables without resetting IDs. A paused iterator or callback retains only its +cursor/current ID; the printer synthesizes a deleted current item as empty. +Keys are immutable after insertion; value replacement has a separate operation. + +Before `e5c49a1`; after `cf54916`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, three interleaved repetitions, no overlapping builds/tests. Frequency was +not locked. These whole-process times include setup, execution and teardown. + +| Workload, size 2048 | Before ms | After ms | +| --- | ---: | ---: | +| Integer Map, 32768 operations | 72.43 | 77.20 | +| String Map, 32768 operations | 83.44 | 87.79 | +| Set, 32768 operations | 71.20 | 74.22 | +| Map membership after churn | 40.84 | 43.13 | +| Set membership after churn | 41.92 | 40.05 | +| Set intersection | 82.58 | 93.16 | + +This representation costs roughly 4–13% on the ordinary non-improving cases +above. Key lookup capacity curves remain approximately flat. The tradeoff buys +immediate history reclamation, including with paused iterators. It is not a claim +that this storage change accelerates every operation. + +| History, 4096 fresh iterator reads | Before ms | After ms | +| --- | ---: | ---: | +| Map, 2048 deletions | 77.67 | 29.51 | +| Set, 2048 deletions | 64.87 | 28.94 | +| Map, 65536 deletions | 1590.19 | 141.11 | +| Set, 65536 deletions | 1264.21 | 143.80 | + +The larger-history workload also validates an iterator paused before the churn. +Setup grows with history in both versions, so the after times should not be +interpreted as history-dependent query complexity. All 228 samples passed their +independent expected-output checks: [144 throughput samples](collection-records-throughput.json), +[48 iteration samples](collection-records-iteration.json), and +[36 larger-history samples](collection-records-history.json). + +Storage tests independently verify reclamation. After peaks of 64, 1024 and 16384 +live records, deleting down to one leaves record-table capacity 56, key-table +capacity 56, four reserved candidate IDs and one ordered live ID in each case. +Clear reduces both hash-table capacities to zero. A heap test retains a paused +iterator through 4096 insert/delete pairs and observes zero physical records. +These are actual storage lengths/capacities, not RSS or allocator-overhead totals. + +The ordered index deliberately remains a standard-library BTreeSet. Key and +record lookup are average O(1); insertion, deletion and finding the next live ID +are O(log live size). Ordered traversal and clear are O(live size). This avoids a +custom cursor registry or linked reclamation protocol. IDs never wrap: exhaustion +is preflighted before retaining heap edges and reports a structured error. + +1921 library tests passed, including reference-model mutation sequences, capacity +reclamation and ID exhaustion. The complete CLI/oracle suite passed before the +final value-only accessor extraction (943 passed, 1 ignored); library tests cover +the extracted accessor. Fresh focused/full Test262 remains pending for this step. + +Reproduce with scaling.py and the above binaries: throughput cases use +`--sizes 32 128 512 2048 --operations 32768 --repeat 3`; iterator cases use +`--operations 4096`, sizes `32 128 512 2048` and `1024 8192 65536`, under +`taskset -c 2`. diff --git a/docs/reports/compiler-constant-index.json b/docs/reports/compiler-constant-index.json new file mode 100644 index 00000000..720df2fe --- /dev/null +++ b/docs/reports/compiler-constant-index.json @@ -0,0 +1,453 @@ +{ + "before_commit": "6762177", + "after_commit": "6b8fb82", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "50eaeb5a71c54f69438f39bc878387d1046045196d489cfef09f7725ccd33c91", + "after": "0dffe4eece69579e4fdfd77244b7ad564e7b55c7e9dd1af7aedf04ffc0e43c39" + }, + "summary": [ + { + "case": "scope", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4511538, + 4388626, + 4052496 + ], + "failures": [], + "median_wall_ns": 4388626 + }, + { + "case": "scope", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4055511, + 3780714, + 3892725 + ], + "failures": [], + "median_wall_ns": 3892725 + }, + { + "case": "scope", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 6528378, + 6713576, + 6460881 + ], + "failures": [], + "median_wall_ns": 6528378 + }, + { + "case": "scope", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 5980829, + 5769281, + 5870482 + ], + "failures": [], + "median_wall_ns": 5870482 + }, + { + "case": "scope", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 39214901, + 39695254, + 39465352 + ], + "failures": [], + "median_wall_ns": 39465352 + }, + { + "case": "scope", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 32986307, + 31185914, + 30928260 + ], + "failures": [], + "median_wall_ns": 31185914 + }, + { + "case": "scope", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 570058524, + 571340369, + 562839816 + ], + "failures": [], + "median_wall_ns": 570058524 + }, + { + "case": "scope", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 424341035, + 422072304, + 422631079 + ], + "failures": [], + "median_wall_ns": 422631079 + }, + { + "case": "constants", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5518951, + 5062745, + 5035372 + ], + "failures": [], + "median_wall_ns": 5062745 + }, + { + "case": "constants", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4547365, + 4403745, + 4463980 + ], + "failures": [], + "median_wall_ns": 4463980 + }, + { + "case": "constants", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 15177912, + 15784713, + 15046385 + ], + "failures": [], + "median_wall_ns": 15177912 + }, + { + "case": "constants", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 9742168, + 9628393, + 9759820 + ], + "failures": [], + "median_wall_ns": 9742168 + }, + { + "case": "constants", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 186756242, + 182375490, + 181477183 + ], + "failures": [], + "median_wall_ns": 182375490 + }, + { + "case": "constants", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 63813849, + 65640022, + 63481876 + ], + "failures": [], + "median_wall_ns": 63813849 + }, + { + "case": "constants", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2575028433, + 2470144852, + 2472216642 + ], + "failures": [], + "median_wall_ns": 2472216642 + }, + { + "case": "constants", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 821780967, + 821832429, + 820797140 + ], + "failures": [], + "median_wall_ns": 821780967 + }, + { + "case": "module", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5388728, + 4855165, + 4820068 + ], + "failures": [], + "median_wall_ns": 4855165 + }, + { + "case": "module", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4689292, + 4573245, + 4503212 + ], + "failures": [], + "median_wall_ns": 4573245 + }, + { + "case": "module", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 14021551, + 11605480, + 11865889 + ], + "failures": [], + "median_wall_ns": 11865889 + }, + { + "case": "module", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 10982599, + 9679220, + 10230206 + ], + "failures": [], + "median_wall_ns": 10230206 + }, + { + "case": "module", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 140523605, + 143352741, + 142936399 + ], + "failures": [], + "median_wall_ns": 142936399 + }, + { + "case": "module", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 100455464, + 98881328, + 101197018 + ], + "failures": [], + "median_wall_ns": 100455464 + }, + { + "case": "module", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1781395804, + 1746511962, + 1744938691 + ], + "failures": [], + "median_wall_ns": 1746511962 + }, + { + "case": "module", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 1238776575, + 1220270157, + 1158940569 + ], + "failures": [], + "median_wall_ns": 1220270157 + } + ], + "workloads": [ + { + "case": "scope", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/scope-64/workload.mjs", + "expected": "2016\n", + "files": { + "workload.mjs": "1bcbde34b092ec4307f4d9c1f734b574580a10a1e5eea1be28054201b6191068" + } + }, + { + "case": "scope", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/scope-256/workload.mjs", + "expected": "32640\n", + "files": { + "workload.mjs": "79e9e9df3069b021a53eecf8e48a3538f4bf2926360906654f43af571789558c" + } + }, + { + "case": "scope", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/scope-1024/workload.mjs", + "expected": "523776\n", + "files": { + "workload.mjs": "5ccc9e0dbe5692d6c723cff77e5398241dfe8b8d72c85918b5ee72ce2b4a4944" + } + }, + { + "case": "scope", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/scope-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "workload.mjs": "64bea7f8ad100176bbe40b605722289551999a58c9a2cea89da2479b736c0d93" + } + }, + { + "case": "constants", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/constants-64/workload.mjs", + "expected": "64\n", + "files": { + "workload.mjs": "f21bcf394ba06927c35ed906c4c632695ae6a6622e97ee395e1bf6f1d0c46c99" + } + }, + { + "case": "constants", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/constants-256/workload.mjs", + "expected": "256\n", + "files": { + "workload.mjs": "4ad0fc41b014de34dd71f8d0ee7e54f59f2ec01ed37e0a7ba4c23879939191e9" + } + }, + { + "case": "constants", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/constants-1024/workload.mjs", + "expected": "1024\n", + "files": { + "workload.mjs": "4b3e75bf7926e322a3a4fde48700aeafdadbb0e33ae10dc63d577f221227d94c" + } + }, + { + "case": "constants", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/constants-4096/workload.mjs", + "expected": "4096\n", + "files": { + "workload.mjs": "37146a010bc2dd4876086774269dd376ac5a627546dc308a844a16f37c1a9cd4" + } + }, + { + "case": "module", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/module-64/workload.mjs", + "expected": "2016\n", + "files": { + "exports.mjs": "234b0f8dbdcfdc94825dfb10c180776d9620f1fb109b9d42a2cd84dd2036e8fd", + "workload.mjs": "5b260880633b66de3dc94402c2bab21803d7461093a6aa5ec7e0787c8465dec2" + } + }, + { + "case": "module", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/module-256/workload.mjs", + "expected": "32640\n", + "files": { + "exports.mjs": "63bf527d3c29444088a42fed10ae16980c766269133b81d7e0e4ba02534c1f1a", + "workload.mjs": "c07caaf9de6e6cd74d041e07af9ac3221b4bdf063d07e0e491f43ae36d97106f" + } + }, + { + "case": "module", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/module-1024/workload.mjs", + "expected": "523776\n", + "files": { + "exports.mjs": "b23ee15ff23a5f4015b58ddc86ae40f26e13cd7b5821d6c521ad8a9e9337c587", + "workload.mjs": "93e77a65ed16d04575b4fe7f19f00d131c0698159fe2f770a666010042984a2f" + } + }, + { + "case": "module", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-constant-indexes/workloads/module-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "exports.mjs": "7b2b8df4fbf521c033a4a9865d1e30be288c0e1940e4dd658f4a615548c39e0f", + "workload.mjs": "0f9a66ae3fb428bc5ead6159f9b5a710ba93de9bd7c2e3c5f6bb7a75e45f9315" + } + } + ] +} diff --git a/docs/reports/compiler-constant-index.md b/docs/reports/compiler-constant-index.md new file mode 100644 index 00000000..ea2d6044 --- /dev/null +++ b/docs/reports/compiler-constant-index.md @@ -0,0 +1,34 @@ +# Compiler string constant index + +Before `6762177`; after `6b8fb82`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, three interleaved repetitions, no overlapping builds/tests. Host frequency +was not locked. These source-size workloads execute once and measure the entire +process, including startup, compilation, execution and teardown. + +| Workload | Names | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| scope | 64 | 4.39 | 3.89 | 1.13× | +| scope | 256 | 6.53 | 5.87 | 1.11× | +| scope | 1024 | 39.47 | 31.19 | 1.27× | +| scope | 4096 | 570.06 | 422.63 | 1.35× | +| constants | 64 | 5.06 | 4.46 | 1.13× | +| constants | 256 | 15.18 | 9.74 | 1.56× | +| constants | 1024 | 182.38 | 63.81 | 2.86× | +| constants | 4096 | 2472.22 | 821.78 | 3.01× | +| module | 64 | 4.86 | 4.57 | 1.06× | +| module | 256 | 11.87 | 10.23 | 1.16× | +| module | 1024 | 142.94 | 100.46 | 1.42× | +| module | 4096 | 1746.51 | 1220.27 | 1.43× | + +All 72 samples passed output validation. The large constant case improves about +3×. The module result also improves beyond the earlier module-index-only result, +but neither this nor the scope workload is now proven linear. The isolated scope +index regression remains recorded in its own report. + +1914 library tests and 943 CLI tests passed (1 ignored), with the pinned oracle +enabled. Fresh focused/full Test262 is pending. See +[raw wall samples and binary identities](compiler-constant-index.json). + +Reproduce with scaling.py, the above before/after binaries, +`--case scope --case constants --case module --sizes 64 256 1024 4096`, +`--operations 32768 --repeat 3`, under `taskset -c 2`. diff --git a/docs/reports/compiler-scope-index.json b/docs/reports/compiler-scope-index.json new file mode 100644 index 00000000..af22b25b --- /dev/null +++ b/docs/reports/compiler-scope-index.json @@ -0,0 +1,453 @@ +{ + "before_commit": "2629e3e", + "after_commit": "6762177", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "c2544d0b2bf41a93b437646439670a342906f9a8970baaa54aa101eb03cbd51c", + "after": "50eaeb5a71c54f69438f39bc878387d1046045196d489cfef09f7725ccd33c91" + }, + "summary": [ + { + "case": "scope", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4584593, + 3969670, + 3900781 + ], + "failures": [], + "median_wall_ns": 3969670 + }, + { + "case": "scope", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 3960123, + 3805812, + 3722447 + ], + "failures": [], + "median_wall_ns": 3805812 + }, + { + "case": "scope", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 6977595, + 7007172, + 7056483 + ], + "failures": [], + "median_wall_ns": 7007172 + }, + { + "case": "scope", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 6361890, + 6201510, + 6428917 + ], + "failures": [], + "median_wall_ns": 6361890 + }, + { + "case": "scope", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 49558925, + 49846122, + 49032756 + ], + "failures": [], + "median_wall_ns": 49558925 + }, + { + "case": "scope", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 39552894, + 39236872, + 38860835 + ], + "failures": [], + "median_wall_ns": 39236872 + }, + { + "case": "scope", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 742661553, + 744316065, + 743555646 + ], + "failures": [], + "median_wall_ns": 743555646 + }, + { + "case": "scope", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 569054346, + 565219173, + 502820593 + ], + "failures": [], + "median_wall_ns": 565219173 + }, + { + "case": "constants", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5510211, + 5068373, + 4916087 + ], + "failures": [], + "median_wall_ns": 5068373 + }, + { + "case": "constants", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4919493, + 4844041, + 4932759 + ], + "failures": [], + "median_wall_ns": 4919493 + }, + { + "case": "constants", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 15622441, + 16023584, + 15730043 + ], + "failures": [], + "median_wall_ns": 15730043 + }, + { + "case": "constants", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 15275831, + 15065166, + 14977521 + ], + "failures": [], + "median_wall_ns": 15065166 + }, + { + "case": "constants", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 186013315, + 191085307, + 189203625 + ], + "failures": [], + "median_wall_ns": 189203625 + }, + { + "case": "constants", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 189254299, + 182100831, + 181721553 + ], + "failures": [], + "median_wall_ns": 182100831 + }, + { + "case": "constants", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2606648906, + 2589659238, + 2623671644 + ], + "failures": [], + "median_wall_ns": 2606648906 + }, + { + "case": "constants", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 2553347194, + 2499560888, + 2529112028 + ], + "failures": [], + "median_wall_ns": 2529112028 + }, + { + "case": "module", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5178280, + 4694212, + 4673172 + ], + "failures": [], + "median_wall_ns": 4694212 + }, + { + "case": "module", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4808295, + 4600795, + 4622066 + ], + "failures": [], + "median_wall_ns": 4622066 + }, + { + "case": "module", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 10486956, + 10662654, + 10497004 + ], + "failures": [], + "median_wall_ns": 10497004 + }, + { + "case": "module", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 11211626, + 11431568, + 13625517 + ], + "failures": [], + "median_wall_ns": 11431568 + }, + { + "case": "module", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 111866443, + 119499952, + 114330508 + ], + "failures": [], + "median_wall_ns": 114330508 + }, + { + "case": "module", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 140245633, + 143393361, + 137402356 + ], + "failures": [], + "median_wall_ns": 140245633 + }, + { + "case": "module", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1470418233, + 1484789685, + 1458863273 + ], + "failures": [], + "median_wall_ns": 1470418233 + }, + { + "case": "module", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 1748448516, + 1737629703, + 1727376071 + ], + "failures": [], + "median_wall_ns": 1737629703 + } + ], + "workloads": [ + { + "case": "scope", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/scope-64/workload.mjs", + "expected": "2016\n", + "files": { + "workload.mjs": "1bcbde34b092ec4307f4d9c1f734b574580a10a1e5eea1be28054201b6191068" + } + }, + { + "case": "scope", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/scope-256/workload.mjs", + "expected": "32640\n", + "files": { + "workload.mjs": "79e9e9df3069b021a53eecf8e48a3538f4bf2926360906654f43af571789558c" + } + }, + { + "case": "scope", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/scope-1024/workload.mjs", + "expected": "523776\n", + "files": { + "workload.mjs": "5ccc9e0dbe5692d6c723cff77e5398241dfe8b8d72c85918b5ee72ce2b4a4944" + } + }, + { + "case": "scope", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/scope-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "workload.mjs": "64bea7f8ad100176bbe40b605722289551999a58c9a2cea89da2479b736c0d93" + } + }, + { + "case": "constants", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/constants-64/workload.mjs", + "expected": "64\n", + "files": { + "workload.mjs": "f21bcf394ba06927c35ed906c4c632695ae6a6622e97ee395e1bf6f1d0c46c99" + } + }, + { + "case": "constants", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/constants-256/workload.mjs", + "expected": "256\n", + "files": { + "workload.mjs": "4ad0fc41b014de34dd71f8d0ee7e54f59f2ec01ed37e0a7ba4c23879939191e9" + } + }, + { + "case": "constants", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/constants-1024/workload.mjs", + "expected": "1024\n", + "files": { + "workload.mjs": "4b3e75bf7926e322a3a4fde48700aeafdadbb0e33ae10dc63d577f221227d94c" + } + }, + { + "case": "constants", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/constants-4096/workload.mjs", + "expected": "4096\n", + "files": { + "workload.mjs": "37146a010bc2dd4876086774269dd376ac5a627546dc308a844a16f37c1a9cd4" + } + }, + { + "case": "module", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/module-64/workload.mjs", + "expected": "2016\n", + "files": { + "exports.mjs": "234b0f8dbdcfdc94825dfb10c180776d9620f1fb109b9d42a2cd84dd2036e8fd", + "workload.mjs": "5b260880633b66de3dc94402c2bab21803d7461093a6aa5ec7e0787c8465dec2" + } + }, + { + "case": "module", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/module-256/workload.mjs", + "expected": "32640\n", + "files": { + "exports.mjs": "63bf527d3c29444088a42fed10ae16980c766269133b81d7e0e4ba02534c1f1a", + "workload.mjs": "c07caaf9de6e6cd74d041e07af9ac3221b4bdf063d07e0e491f43ae36d97106f" + } + }, + { + "case": "module", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/module-1024/workload.mjs", + "expected": "523776\n", + "files": { + "exports.mjs": "b23ee15ff23a5f4015b58ddc86ae40f26e13cd7b5821d6c521ad8a9e9337c587", + "workload.mjs": "93e77a65ed16d04575b4fe7f19f00d131c0698159fe2f770a666010042984a2f" + } + }, + { + "case": "module", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-scope-indexes/workloads/module-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "exports.mjs": "7b2b8df4fbf521c033a4a9865d1e30be288c0e1940e4dd658f4a615548c39e0f", + "workload.mjs": "0f9a66ae3fb428bc5ead6159f9b5a710ba93de9bd7c2e3c5f6bb7a75e45f9315" + } + } + ] +} diff --git a/docs/reports/compiler-scope-index.md b/docs/reports/compiler-scope-index.md new file mode 100644 index 00000000..8ad1ab4b --- /dev/null +++ b/docs/reports/compiler-scope-index.md @@ -0,0 +1,35 @@ +# Scope name index: intermediate measurement + +Before `2629e3e`; after `6762177`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, three interleaved repetitions. No overlapping builds or tests; no locked +frequency or isolated host. Source size varies; each program executes once. +Times include the complete process and are not compile-only measurements. + +| Workload | Names | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| scope | 64 | 3.97 | 3.81 | 1.04× | +| scope | 256 | 7.01 | 6.36 | 1.10× | +| scope | 1024 | 49.56 | 39.24 | 1.26× | +| scope | 4096 | 743.56 | 565.22 | 1.32× | +| constants | 64 | 5.07 | 4.92 | 1.03× | +| constants | 256 | 15.73 | 15.07 | 1.04× | +| constants | 1024 | 189.20 | 182.10 | 1.04× | +| constants | 4096 | 2606.65 | 2529.11 | 1.03× | +| module | 64 | 4.69 | 4.62 | 1.02× | +| module | 256 | 10.50 | 11.43 | 0.92× | +| module | 1024 | 114.33 | 140.25 | 0.82× | +| module | 4096 | 1470.42 | 1737.63 | 0.85× | + +All 72 samples produced the independent expected output. Large scopes improve, +but the large module case regresses by about 18%. The three samples agree on +that direction. The cause has not yet been established; this stage is not +performance-accepted. Subsequent constant indexing and new profiling must be +reported separately rather than hiding this intermediate regression. + +1913 library tests and 943 CLI tests passed (1 ignored), with the pinned oracle +enabled. Fresh focused/full Test262 is pending. See +[wall samples and binary identities](compiler-scope-index.json). + +Reproduce with scaling.py, the above before/after binaries, +`--case scope --case constants --case module --sizes 64 256 1024 4096`, +`--operations 32768 --repeat 3`, under `taskset -c 2`. diff --git a/docs/reports/data-structure-adaptive-final.json b/docs/reports/data-structure-adaptive-final.json new file mode 100644 index 00000000..f31cc521 --- /dev/null +++ b/docs/reports/data-structure-adaptive-final.json @@ -0,0 +1,1140 @@ +{ + "final-v8-adaptive": { + "schema": "oxide-benchmark-v1", + "created_utc": "2026-09-10T19:28:38Z", + "suite": "v8-v7", + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "ae33d798626f202b793d6cc1e503002d620ab0f8", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "source": { + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "2034d98fc8c5f8044e186267593f5d5ea5232caf", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + }, + "source": "/tmp/quickjs-oxide-final-bench-2034d98", + "files": { + "base.js": "ac383759c3cbf5f3a499ade526a4e296f7925733d8c3889b6d5840ce6867ff51", + "richards.js": "d86eac4108343a54ba6e10621a77b46f82f554c3b0a46e8fb4032d5cf65a2a11", + "deltablue.js": "74b5a95f4877701073c6efef08e4ae306562747067e292925b69cbd629a511b9", + "crypto.js": "5321d2ada9b61e01d5f281609513467cbaa7c0effb12c577ed08088d812453af", + "raytrace.js": "d52183ca324cdb88d9ee3e78326433fe2ca28d6436f0a6c3ec013ab67cb798eb", + "earley-boyer.js": "dbf3aeb6b3d056e8ea35b5f19aa8c8a4fb1053e41d07f096c22483b2c1c6ee01", + "regexp.js": "5268b0d15931fda4e331de35fc58e5beded9a250b60764e1cc7cfc898ab53602", + "splay.js": "1f875cec579d03af40d256ceaeb6823f3ef16c883652650ca51d183472a8185d", + "navier-stokes.js": "ce241465ffeee77b5c4f7119f522aa971fe1fe92c3aed76f7514ea43e07fec84" + }, + "run_js_sha256": "f13e44c0c4c70a9eb7bdab79956cab9faf59be8b9bec97f98f21548e01d9f938", + "adaptation": "only upstream scripts/build.ts load inlining and standalone concatenation; no benchmark-body or timing changes", + "timer": "external harness Date millisecond clock", + "metric": "suite score; higher is better" + }, + "workloads": [ + { + "case": "all", + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/quickjs-oxide/run.js", + "args": [], + "sha256": "777f2c2ea9fcf3b8c7db198f758f2e7bd2113c4f8a347ea7323e13c85b4d9946", + "expected": [ + "Richards", + "DeltaBlue", + "Crypto", + "RayTrace", + "EarleyBoyer", + "RegExp", + "Splay", + "NavierStokes" + ] + } + ], + "repeat": 1, + "timeout_seconds": 90.0, + "order": "serial, alternating per repetition", + "instrumentation": "off (no -d/-T)", + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "sha256": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "sha256": "e2d9f63260b741c6e6c1a6d9c7d17caffa424ad1f0d24b3b0e34e3398de4e2e6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "quickjs": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "sha256": "2a9c4dd56ce3e75e438e1bbb85858df87e05afdfabbd177ce2682c30e144f3fb", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "--version" + ], + "exit_code": 1, + "stdout": "QuickJS version 2026-06-04\nusage: qjs [options] [file [args]]\n-h --help list options\n-e --eval EXPR evaluate EXPR\n-i --interactive go to interactive mode\n-m --module load as ES6 module (default=autodetect)\n --script load as ES6 script (default=autodetect)\n --strict force strict mode\n-I --include file include an additional file\n --std make 'std' and 'os' available to the loaded script\n-T --trace trace memory allocation\n-d --dump dump the memory usage stats\n --memory-limit n limit the memory usage to 'n' bytes (SI suffixes allowed)\n --stack-size n limit the stack size to 'n' bytes (SI suffixes allowed)\n --no-unhandled-rejection ignore unhandled promise rejections\n-s strip all the debug info\n --strip-source strip the source code\n-q --quit just instantiate the interpreter and quit", + "stderr": "qjs: unknown option '--version'" + }, + "build": null + } + }, + "samples": [ + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/quickjs-oxide/run.js" + ], + "exit_code": -9, + "timed_out": true, + "process_wall_ns": 90005001230, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-v8-adaptive/raw/all-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-v8-adaptive/raw/all-before-0.stderr", + "case": "all", + "engine": "before", + "repetition": 0, + "workload_sha256": "777f2c2ea9fcf3b8c7db198f758f2e7bd2113c4f8a347ea7323e13c85b4d9946", + "status": "timeout", + "stdout_text": "Richards: 30.6\nDeltaBlue: 38.3\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/quickjs-oxide/run.js" + ], + "exit_code": -9, + "timed_out": true, + "process_wall_ns": 90006526850, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-v8-adaptive/raw/all-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-v8-adaptive/raw/all-after-0.stderr", + "case": "all", + "engine": "after", + "repetition": 0, + "workload_sha256": "777f2c2ea9fcf3b8c7db198f758f2e7bd2113c4f8a347ea7323e13c85b4d9946", + "status": "timeout", + "stdout_text": "Richards: 32.8\nDeltaBlue: 40.0\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/quickjs-oxide/run.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30133058709, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-v8-adaptive/raw/all-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-v8-adaptive/raw/all-quickjs-0.stderr", + "case": "all", + "engine": "quickjs", + "repetition": 0, + "workload_sha256": "777f2c2ea9fcf3b8c7db198f758f2e7bd2113c4f8a347ea7323e13c85b4d9946", + "status": "ok", + "measurements": { + "Richards": 1296.0, + "DeltaBlue": 1205.0, + "Crypto": 1325.0, + "RayTrace": 2679.0, + "EarleyBoyer": 3048.0, + "RegExp": 626.0, + "Splay": 4787.0, + "NavierStokes": 2876.0, + "Score": 1864.0 + }, + "stdout_text": "Richards: 1296\nDeltaBlue: 1205\nCrypto: 1325\nRayTrace: 2679\nEarleyBoyer: 3048\nRegExp: 626\nSplay: 4787\nNavierStokes: 2876\n----\nScore: 1864\n", + "stderr_text": "" + } + ], + "summary": [ + { + "case": "all", + "engine": "before", + "samples": 1, + "successful": 0, + "failures": [ + "timeout" + ], + "eligible_for_comparison": false, + "metrics": {} + }, + { + "case": "all", + "engine": "after", + "samples": 1, + "successful": 0, + "failures": [ + "timeout" + ], + "eligible_for_comparison": false, + "metrics": {} + }, + { + "case": "all", + "engine": "quickjs", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "Richards": { + "raw": [ + 1296.0 + ], + "minimum": 1296.0, + "median": 1296.0, + "maximum": 1296.0, + "stdev": null + }, + "DeltaBlue": { + "raw": [ + 1205.0 + ], + "minimum": 1205.0, + "median": 1205.0, + "maximum": 1205.0, + "stdev": null + }, + "Crypto": { + "raw": [ + 1325.0 + ], + "minimum": 1325.0, + "median": 1325.0, + "maximum": 1325.0, + "stdev": null + }, + "RayTrace": { + "raw": [ + 2679.0 + ], + "minimum": 2679.0, + "median": 2679.0, + "maximum": 2679.0, + "stdev": null + }, + "EarleyBoyer": { + "raw": [ + 3048.0 + ], + "minimum": 3048.0, + "median": 3048.0, + "maximum": 3048.0, + "stdev": null + }, + "RegExp": { + "raw": [ + 626.0 + ], + "minimum": 626.0, + "median": 626.0, + "maximum": 626.0, + "stdev": null + }, + "Splay": { + "raw": [ + 4787.0 + ], + "minimum": 4787.0, + "median": 4787.0, + "maximum": 4787.0, + "stdev": null + }, + "NavierStokes": { + "raw": [ + 2876.0 + ], + "minimum": 2876.0, + "median": 2876.0, + "maximum": 2876.0, + "stdev": null + }, + "Score": { + "raw": [ + 1864.0 + ], + "minimum": 1864.0, + "median": 1864.0, + "maximum": 1864.0, + "stdev": null + } + } + } + ] + }, + "final-micro-adaptive": { + "schema": "oxide-benchmark-v1", + "created_utc": "2026-09-10T19:32:08Z", + "suite": "microbench", + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "837962adc24f10cd05d6c95ec856225c853f5f63", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "M docs/data-structure-plan.md", + "stderr": "" + } + } + }, + "source": { + "source": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/tests/microbench.js", + "sha256": "4abf0c34fd83cef925fd2f36009a1043f5009e98fdf6efe55e183a31dddd75f3", + "prepared_source": "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "prepared_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "adaptation": "identical prefix disables optional performance/os clocks on both engines; original body bytes unchanged", + "adaptation_prefix": "// Identical host clock adaptation; benchmark bodies below are unchanged.\nvar performance = undefined; var os = undefined;\nconsole.log(\"__oxide_clock__:\" + (typeof performance !== \"undefined\" ? \"performance.now\" : typeof os !== \"undefined\" ? \"os.now\" : \"Date.now\"));\n", + "adaptation_sha256": "3f49fc00aef60aafc183174d9389ab8b9f68de68f50e6e9711e3c5700e758759", + "timer": "verified Date.now fallback on every run (millisecond clock, rounded to next tick)", + "metric": "upstream minimum ns/op; lower is better; not a distribution of individual operations" + }, + "workloads": [ + { + "case": "empty_loop", + "path": "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "args": [ + "empty_loop" + ], + "sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "expected": [ + "empty_loop" + ] + }, + { + "case": "prop_read", + "path": "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "args": [ + "prop_read" + ], + "sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "expected": [ + "prop_read" + ] + }, + { + "case": "array_read", + "path": "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "args": [ + "array_read" + ], + "sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "expected": [ + "array_read" + ] + }, + { + "case": "func_call", + "path": "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "args": [ + "func_call" + ], + "sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "expected": [ + "func_call" + ] + }, + { + "case": "int_arith", + "path": "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "args": [ + "int_arith" + ], + "sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "expected": [ + "int_arith" + ] + } + ], + "repeat": 1, + "timeout_seconds": 60.0, + "order": "serial, alternating per repetition", + "instrumentation": "off (no -d/-T)", + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "sha256": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "sha256": "e2d9f63260b741c6e6c1a6d9c7d17caffa424ad1f0d24b3b0e34e3398de4e2e6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "quickjs": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "sha256": "2a9c4dd56ce3e75e438e1bbb85858df87e05afdfabbd177ce2682c30e144f3fb", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "--version" + ], + "exit_code": 1, + "stdout": "QuickJS version 2026-06-04\nusage: qjs [options] [file [args]]\n-h --help list options\n-e --eval EXPR evaluate EXPR\n-i --interactive go to interactive mode\n-m --module load as ES6 module (default=autodetect)\n --script load as ES6 script (default=autodetect)\n --strict force strict mode\n-I --include file include an additional file\n --std make 'std' and 'os' available to the loaded script\n-T --trace trace memory allocation\n-d --dump dump the memory usage stats\n --memory-limit n limit the memory usage to 'n' bytes (SI suffixes allowed)\n --stack-size n limit the stack size to 'n' bytes (SI suffixes allowed)\n --no-unhandled-rejection ignore unhandled promise rejections\n-s strip all the debug info\n --strip-source strip the source code\n-q --quit just instantiate the interpreter and quit", + "stderr": "qjs: unknown option '--version'" + }, + "build": null + } + }, + "samples": [ + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "empty_loop" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2752834777, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/empty_loop-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/empty_loop-before-0.stderr", + "case": "empty_loop", + "engine": "before", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "empty_loop": { + "ns_per_op": 200.0, + "n_argument": 10000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n empty_loop 10000 200.00\n total 200.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "empty_loop" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2714175060, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/empty_loop-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/empty_loop-after-0.stderr", + "case": "empty_loop", + "engine": "after", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "empty_loop": { + "ns_per_op": 200.0, + "n_argument": 10000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n empty_loop 10000 200.00\n total 200.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "empty_loop" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3526617657, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/empty_loop-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/empty_loop-quickjs-0.stderr", + "case": "empty_loop", + "engine": "quickjs", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "empty_loop": { + "ns_per_op": 10.0, + "n_argument": 200000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n empty_loop 200000 10.00\n total 10.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "prop_read" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2148802146, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/prop_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/prop_read-before-0.stderr", + "case": "prop_read", + "engine": "before", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "prop_read": { + "ns_per_op": 500.0, + "n_argument": 1000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n prop_read 1000 500.00\n total 500.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "prop_read" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2113458665, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/prop_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/prop_read-after-0.stderr", + "case": "prop_read", + "engine": "after", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "prop_read": { + "ns_per_op": 500.0, + "n_argument": 1000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n prop_read 1000 500.00\n total 500.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "prop_read" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3103577067, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/prop_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/prop_read-quickjs-0.stderr", + "case": "prop_read", + "engine": "quickjs", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "prop_read": { + "ns_per_op": 10.0, + "n_argument": 50000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n prop_read 50000 10.00\n total 10.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "array_read" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1952732778, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/array_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/array_read-before-0.stderr", + "case": "array_read", + "engine": "before", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "array_read": { + "ns_per_op": 400.0, + "n_argument": 500 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n array_read 500 400.00\n total 400.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "array_read" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1914412021, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/array_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/array_read-after-0.stderr", + "case": "array_read", + "engine": "after", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "array_read": { + "ns_per_op": 400.0, + "n_argument": 500 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n array_read 500 400.00\n total 400.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "array_read" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2903748252, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/array_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/array_read-quickjs-0.stderr", + "case": "array_read", + "engine": "quickjs", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "array_read": { + "ns_per_op": 10.0, + "n_argument": 20000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n array_read 20000 10.00\n total 10.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "func_call" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2160740182, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/func_call-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/func_call-before-0.stderr", + "case": "func_call", + "engine": "before", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "func_call": { + "ns_per_op": 500.0, + "n_argument": 1000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n func_call 1000 500.00\n total 500.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "func_call" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2114385231, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/func_call-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/func_call-after-0.stderr", + "case": "func_call", + "engine": "after", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "func_call": { + "ns_per_op": 500.0, + "n_argument": 1000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n func_call 1000 500.00\n total 500.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "func_call" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2901805265, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/func_call-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/func_call-quickjs-0.stderr", + "case": "func_call", + "engine": "quickjs", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "func_call": { + "ns_per_op": 25.0, + "n_argument": 20000 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n func_call 20000 25.00\n total 25.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "int_arith" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 749764685, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/int_arith-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/int_arith-before-0.stderr", + "case": "int_arith", + "engine": "before", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "int_arith": { + "ns_per_op": 400.0, + "n_argument": 5 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n int_arith 5 400.00\n total 400.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "int_arith" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 714381558, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/int_arith-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/int_arith-after-0.stderr", + "case": "int_arith", + "engine": "after", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "int_arith": { + "ns_per_op": 400.0, + "n_argument": 5 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n int_arith 5 400.00\n total 400.00\n", + "stderr_text": "" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-microbench-t7gbzq9a/microbench.js", + "int_arith" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1884721241, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/int_arith-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-micro-adaptive/raw/int_arith-quickjs-0.stderr", + "case": "int_arith", + "engine": "quickjs", + "repetition": 0, + "workload_sha256": "69a9e66743e1b8a382e38cc076de9e89b82392d5f98f9ba330de66e554117683", + "status": "ok", + "measurements": { + "int_arith": { + "ns_per_op": 10.0, + "n_argument": 200 + } + }, + "stdout_text": "__oxide_clock__:Date.now\n TEST N TIME (ns) REF (ns) SCORE (1000)\n int_arith 200 10.00\n total 10.00\n", + "stderr_text": "" + } + ], + "summary": [ + { + "case": "empty_loop", + "engine": "before", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "empty_loop": { + "raw": [ + 200.0 + ], + "minimum": 200.0, + "median": 200.0, + "maximum": 200.0, + "stdev": null + } + } + }, + { + "case": "empty_loop", + "engine": "after", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "empty_loop": { + "raw": [ + 200.0 + ], + "minimum": 200.0, + "median": 200.0, + "maximum": 200.0, + "stdev": null + } + } + }, + { + "case": "empty_loop", + "engine": "quickjs", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "empty_loop": { + "raw": [ + 10.0 + ], + "minimum": 10.0, + "median": 10.0, + "maximum": 10.0, + "stdev": null + } + } + }, + { + "case": "prop_read", + "engine": "before", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "prop_read": { + "raw": [ + 500.0 + ], + "minimum": 500.0, + "median": 500.0, + "maximum": 500.0, + "stdev": null + } + } + }, + { + "case": "prop_read", + "engine": "after", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "prop_read": { + "raw": [ + 500.0 + ], + "minimum": 500.0, + "median": 500.0, + "maximum": 500.0, + "stdev": null + } + } + }, + { + "case": "prop_read", + "engine": "quickjs", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "prop_read": { + "raw": [ + 10.0 + ], + "minimum": 10.0, + "median": 10.0, + "maximum": 10.0, + "stdev": null + } + } + }, + { + "case": "array_read", + "engine": "before", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "array_read": { + "raw": [ + 400.0 + ], + "minimum": 400.0, + "median": 400.0, + "maximum": 400.0, + "stdev": null + } + } + }, + { + "case": "array_read", + "engine": "after", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "array_read": { + "raw": [ + 400.0 + ], + "minimum": 400.0, + "median": 400.0, + "maximum": 400.0, + "stdev": null + } + } + }, + { + "case": "array_read", + "engine": "quickjs", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "array_read": { + "raw": [ + 10.0 + ], + "minimum": 10.0, + "median": 10.0, + "maximum": 10.0, + "stdev": null + } + } + }, + { + "case": "func_call", + "engine": "before", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "func_call": { + "raw": [ + 500.0 + ], + "minimum": 500.0, + "median": 500.0, + "maximum": 500.0, + "stdev": null + } + } + }, + { + "case": "func_call", + "engine": "after", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "func_call": { + "raw": [ + 500.0 + ], + "minimum": 500.0, + "median": 500.0, + "maximum": 500.0, + "stdev": null + } + } + }, + { + "case": "func_call", + "engine": "quickjs", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "func_call": { + "raw": [ + 25.0 + ], + "minimum": 25.0, + "median": 25.0, + "maximum": 25.0, + "stdev": null + } + } + }, + { + "case": "int_arith", + "engine": "before", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "int_arith": { + "raw": [ + 400.0 + ], + "minimum": 400.0, + "median": 400.0, + "maximum": 400.0, + "stdev": null + } + } + }, + { + "case": "int_arith", + "engine": "after", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "int_arith": { + "raw": [ + 400.0 + ], + "minimum": 400.0, + "median": 400.0, + "maximum": 400.0, + "stdev": null + } + } + }, + { + "case": "int_arith", + "engine": "quickjs", + "samples": 1, + "successful": 1, + "failures": [], + "eligible_for_comparison": true, + "metrics": { + "int_arith": { + "raw": [ + 10.0 + ], + "minimum": 10.0, + "median": 10.0, + "maximum": 10.0, + "stdev": null + } + } + } + ] + } +} diff --git a/docs/reports/data-structure-adaptive-final.md b/docs/reports/data-structure-adaptive-final.md new file mode 100644 index 00000000..d6f00741 --- /dev/null +++ b/docs/reports/data-structure-adaptive-final.md @@ -0,0 +1,52 @@ +# Original adaptive harness status + +These are separate diagnostics from the fixed-work comparisons. Source bodies +remain unchanged, binaries run sequentially on CPU 2, and every process has a +fresh invocation. There was no overlapping build or test activity. + +The original combined V8 harness (`--case all`) ran once per engine with a +90-second process limit. Both Oxide versions timed out; QuickJS completed. +Incomplete Oxide output is retained but supplies no valid total score or ratio. +This is a combined-harness result, not a claim that each individual suite timed +out. All eight suites separately passed the fixed-work comparison. + +| Case | Engine | Successful runs | Metric | Median | Min–max | +| --- | --- | ---: | --- | ---: | --- | +| all | before | 0/1 | unavailable (timeout) | — | — | +| all | after | 0/1 | unavailable (timeout) | — | — | +| all | quickjs | 1/1 | Score | 1864 | 1864–1864 | + +The five default microbench prefixes ran once per engine with a 60-second limit. +The shared runner applied the same documented clock prefix to both engines, +verified the Date.now fallback, and preserved the original body bytes. All 15 +processes completed. Values below are the upstream minimum ns/op metric, not +whole-process milliseconds. The single repetitions report identical rounded +values for the two Oxide versions; they do not establish an absence of gains. +Use the three-repeat fixed-work distributions for the integrated wall-time +comparison, and avoid overinterpreting these coarse-clock diagnostic scores. + +| Case | Engine | Successful runs | Metric | Median | Min–max | +| --- | --- | ---: | --- | ---: | --- | +| empty_loop | before | 1/1 | empty_loop | 200 | 200–200 | +| empty_loop | after | 1/1 | empty_loop | 200 | 200–200 | +| empty_loop | quickjs | 1/1 | empty_loop | 10 | 10–10 | +| prop_read | before | 1/1 | prop_read | 500 | 500–500 | +| prop_read | after | 1/1 | prop_read | 500 | 500–500 | +| prop_read | quickjs | 1/1 | prop_read | 10 | 10–10 | +| array_read | before | 1/1 | array_read | 400 | 400–400 | +| array_read | after | 1/1 | array_read | 400 | 400–400 | +| array_read | quickjs | 1/1 | array_read | 10 | 10–10 | +| func_call | before | 1/1 | func_call | 500 | 500–500 | +| func_call | after | 1/1 | func_call | 500 | 500–500 | +| func_call | quickjs | 1/1 | func_call | 25 | 25–25 | +| int_arith | before | 1/1 | int_arith | 400 | 400–400 | +| int_arith | after | 1/1 | int_arith | 400 | 400–400 | +| int_arith | quickjs | 1/1 | int_arith | 10 | 10–10 | + +[Raw metadata, complete and incomplete output, and samples](data-structure-adaptive-final.json). +Reproduce with `scripts/benchmark/run.py`, the pinned external V8 checkout, +`--suite v8-v7 --case all --repeat 1 --timeout 90`; then the pinned microbench file, +`--suite microbench --repeat 1 --timeout 60` with its default five prefixes. +Pass all three binary paths via repeated `--engine` arguments, fresh output +directories, and `taskset -c 2`. A timeout remains a failure and is never averaged +with successful samples. diff --git a/docs/reports/data-structure-fixed-final.json b/docs/reports/data-structure-fixed-final.json new file mode 100644 index 00000000..e6d80e40 --- /dev/null +++ b/docs/reports/data-structure-fixed-final.json @@ -0,0 +1,11227 @@ +{ + "metadata": { + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "fb23b9932310304303d5e8c1753913de504283c1", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "sha256": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "sha256": "e2d9f63260b741c6e6c1a6d9c7d17caffa424ad1f0d24b3b0e34e3398de4e2e6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "quickjs": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "sha256": "2a9c4dd56ce3e75e438e1bbb85858df87e05afdfabbd177ce2682c30e144f3fb", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "--version" + ], + "exit_code": 1, + "stdout": "QuickJS version 2026-06-04\nusage: qjs [options] [file [args]]\n-h --help list options\n-e --eval EXPR evaluate EXPR\n-i --interactive go to interactive mode\n-m --module load as ES6 module (default=autodetect)\n --script load as ES6 script (default=autodetect)\n --strict force strict mode\n-I --include file include an additional file\n --std make 'std' and 'os' available to the loaded script\n-T --trace trace memory allocation\n-d --dump dump the memory usage stats\n --memory-limit n limit the memory usage to 'n' bytes (SI suffixes allowed)\n --stack-size n limit the stack size to 'n' bytes (SI suffixes allowed)\n --no-unhandled-rejection ignore unhandled promise rejections\n-s strip all the debug info\n --strip-source strip the source code\n-q --quit just instantiate the interpreter and quit", + "stderr": "qjs: unknown option '--version'" + }, + "build": null + } + }, + "workloads": { + "microbench_source_sha256": "4abf0c34fd83cef925fd2f36009a1043f5009e98fdf6efe55e183a31dddd75f3", + "external_commit": "2034d98fc8c5f8044e186267593f5d5ea5232caf", + "adaptation": "Unchanged complete microbench source except final main invocation replaced with fixed call; V8 base and suite unchanged, one Setup/run/TearDown per benchmark, original assertions retained.", + "workloads": [ + { + "case": "empty_loop", + "size": 6084891, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js", + "sha256": "c233cced4e722eef131583c1a0b18c07c6f203b83d3798b98b5a3aa2d8c3720a", + "oracle_exit": 0, + "expected": "empty_loop:6084891:undefined\n", + "oracle_stderr": "" + }, + { + "case": "empty_down_loop", + "size": 4922868, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js", + "sha256": "c77ecc2ba6ab13a3acc24263a63200e00b16c55f603e36a8747473f95eff6621", + "oracle_exit": 0, + "expected": "empty_down_loop:4922868:undefined\n", + "oracle_stderr": "" + }, + { + "case": "prop_read", + "size": 846083, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js", + "sha256": "d84a54cf2dcbd2b7cc246c8cee6feaeec14ca029ab3ad3cc68c9bb6acbdb4aaf", + "oracle_exit": 0, + "expected": "prop_read:3384332:8460830\n", + "oracle_stderr": "" + }, + { + "case": "prop_write", + "size": 314880, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js", + "sha256": "2ee703dcc457002725d22c0758e58ae5a6b4d39463c4278b153fb8d35e5906ee", + "oracle_exit": 0, + "expected": "prop_write:1259520:undefined\n", + "oracle_stderr": "" + }, + { + "case": "prop_update", + "size": 244870, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js", + "sha256": "bf98b01ded8a5d730bfb1ccffc1f6e0f393d67d50480e0ef68c685cb177940b6", + "oracle_exit": 0, + "expected": "prop_update:979480:undefined\n", + "oracle_stderr": "" + }, + { + "case": "prop_create", + "size": 16000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js", + "sha256": "a61a5d1a55edc4bc93b741f602c1571cfa34703f9feb88467fcd7b28095d4ee6", + "oracle_exit": 0, + "expected": "prop_create:320000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "prop_clone", + "size": 16000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js", + "sha256": "5ef57e51c3b61f1bacb6c01ae26bf14c7b532095e25c37f10f118413d97b1841", + "oracle_exit": 0, + "expected": "prop_clone:320000:[object Object]\n", + "oracle_stderr": "" + }, + { + "case": "prop_delete", + "size": 13775, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js", + "sha256": "0caceb1ef4e91de238f0ed89cc7762993bbfacd59798167efe85b0871c94bde5", + "oracle_exit": 0, + "expected": "prop_delete:275500:undefined\n", + "oracle_stderr": "" + }, + { + "case": "array_read", + "size": 258984, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js", + "sha256": "9c1f4eed53efb357a7aa3e15c9af4ad328fbb56470cbbe88c0aa4dde9ffc4864", + "oracle_exit": 0, + "expected": "array_read:2589840:11654280\n", + "oracle_stderr": "" + }, + { + "case": "array_write", + "size": 62914, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js", + "sha256": "ac1f658131bd6cde836c0513fc6b660b601b8f4e7478312c12e9d810a08ed0af", + "oracle_exit": 0, + "expected": "array_write:629140:undefined\n", + "oracle_stderr": "" + }, + { + "case": "array_update", + "size": 50862, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js", + "sha256": "75aef47faaafd4c791200b6ee03bf509af9c0c2b64aeee76b7bd57cd88047769", + "oracle_exit": 0, + "expected": "array_update:508620:undefined\n", + "oracle_stderr": "" + }, + { + "case": "array_prop_create", + "size": 429, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js", + "sha256": "ee1759c32a8af65dc61c31d057a8bd33a2f64a1951b0e6261b953f5c25f148da", + "oracle_exit": 0, + "expected": "array_prop_create:429000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "array_slice", + "size": 872, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js", + "sha256": "11a9e0c61cde8ccdf801c9c1ff512977c2b1185e544211b0ee79c9b9945af3f6", + "oracle_exit": 0, + "expected": "array_slice:872000:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999\n", + "oracle_stderr": "" + }, + { + "case": "array_length_read", + "size": 763569, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js", + "sha256": "88b9f65b5b3ca30238546ff9e384e21ad282a6218a752e74153b33dd113d00a4", + "oracle_exit": 0, + "expected": "array_length_read:3054276:9162828\n", + "oracle_stderr": "" + }, + { + "case": "array_length_decr", + "size": 276, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js", + "sha256": "34da4906d4792dc6443bbf475d6b0420cd00d1b21eaa70e3414bf096ad965c13", + "oracle_exit": 0, + "expected": "array_length_decr:276000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "array_push", + "size": 536, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js", + "sha256": "de0c4d5753bfbe0774841c0260cc5c19960cb7ab10ced2e1d8cd23a51dfc1171", + "oracle_exit": 0, + "expected": "array_push:268000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "array_pop", + "size": 357, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js", + "sha256": "4d3a0b8c40835a8ac8cc3e99112825e671f1f1be23680dac6b3891085027d488", + "oracle_exit": 0, + "expected": "array_pop:178500:124750\n", + "oracle_stderr": "" + }, + { + "case": "typed_array_read", + "size": 136651, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js", + "sha256": "50b435bbc16b37d341daafea339575c8ace434b2b6d201d56b0a49c66df8087c", + "oracle_exit": 0, + "expected": "typed_array_read:1366510:6149295\n", + "oracle_stderr": "" + }, + { + "case": "typed_array_write", + "size": 130706, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js", + "sha256": "75c115ead528b0330676043989b9c5afaf96581b15111d683d1f55d13311d2be", + "oracle_exit": 0, + "expected": "typed_array_write:1307060:undefined\n", + "oracle_stderr": "" + }, + { + "case": "arguments_read", + "size": 19199, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js", + "sha256": "c504e3737ed2b489ca38181b0cc7badcd2ef3b2c91283ab3514dded61bdb84a7", + "oracle_exit": 0, + "expected": "arguments_read:76796:2211494412\n", + "oracle_stderr": "" + }, + { + "case": "arguments_strict_read", + "size": 21299, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js", + "sha256": "12257ed59e1874f1f2e7d6d878ec113f5efd5a2daae87d856f7c993e38f0ac66", + "oracle_exit": 0, + "expected": "arguments_strict_read:85196:2721756612\n", + "oracle_stderr": "" + }, + { + "case": "global_read", + "size": 800000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js", + "sha256": "b7c7413612feb511c636f69fc51f739771f6c250d61ad452618a6153caad8104", + "oracle_exit": 0, + "expected": "global_read:3200000:0\n", + "oracle_stderr": "" + }, + { + "case": "global_write", + "size": 800000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js", + "sha256": "d6c7e6785ccf276da2dec044453936e5b2c20758752101664af0442023b02cc2", + "oracle_exit": 0, + "expected": "global_write:3200000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "local_destruct", + "size": 16000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js", + "sha256": "ee84597436379b5933acbf7e4c1d29b55b5d49210a8e7ce1978e495b5fb37293", + "oracle_exit": 0, + "expected": "local_destruct:192000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "global_func_call", + "size": 400000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js", + "sha256": "4ccd0712e8f196fa1e53dd7899e50fe2567276b7e7a9a46dce543aff2579ceae", + "oracle_exit": 0, + "expected": "global_func_call:1600000:1600000\n", + "oracle_stderr": "" + }, + { + "case": "func_call", + "size": 400000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js", + "sha256": "908229ca3a5102763a0164004bef080bd67133c4ce6019ed4b224e83bc5c9457", + "oracle_exit": 0, + "expected": "func_call:1600000:1600000\n", + "oracle_stderr": "" + }, + { + "case": "func_closure_call", + "size": 387594, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js", + "sha256": "6dde1e30a4e6408bdeea055b2356df99de9ee2d50e0c3ab6ddef4c93ffa438ed", + "oracle_exit": 0, + "expected": "func_closure_call:1550376:1550376\n", + "oracle_stderr": "" + }, + { + "case": "int_arith", + "size": 2936, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js", + "sha256": "66147a3df39e39f9eb28c01fcd12c5c59418a21a6703abdc93f960357e1046f9", + "oracle_exit": 0, + "expected": "int_arith:2936000:977199156000\n", + "oracle_stderr": "" + }, + { + "case": "float_arith", + "size": 2318, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js", + "sha256": "3ca0b97e4d2a6f0b6698b0185fc003037f967b10d6250b64d7401801aadb89e5", + "oracle_exit": 0, + "expected": "float_arith:2318000:933779492330.004\n", + "oracle_stderr": "" + }, + { + "case": "bigint64_arith", + "size": 1600, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js", + "sha256": "d01193dfe3404733a6bb851865ed140d1dac4e73a5ee8f682ea845293e82d42c", + "oracle_exit": 0, + "expected": "bigint64_arith:1600000:28823252149320143200000\n", + "oracle_stderr": "" + }, + { + "case": "map_set_string", + "size": 10, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js", + "sha256": "41a37b4f2998c196f86bee6609752edab016d2f367a4f5437063b70b4c138565", + "oracle_exit": 0, + "expected": "map_set_string:10000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "map_set_int", + "size": 22, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js", + "sha256": "a7732fb9d0b99147362008b5a890b46625fc767eda85fac8e4a59d24103d80a2", + "oracle_exit": 0, + "expected": "map_set_int:22000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "map_delete", + "size": 17, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js", + "sha256": "04c914e5b28851195b7be606d9fc395498c23481a22c24a156cca93c92c7457f", + "oracle_exit": 0, + "expected": "map_delete:17000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "weak_map_set", + "size": 320, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js", + "sha256": "1092c997f1977a19560de45e2538f5b738c1e49b9d73a3255632719600531072", + "oracle_exit": 0, + "expected": "weak_map_set:320000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "array_for", + "size": 16000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js", + "sha256": "bd726f32a45dcd26668a6983e3225afb083b122673a7e8c6938d191ecb72c3da", + "oracle_exit": 0, + "expected": "array_for:1600000:4950\n", + "oracle_stderr": "" + }, + { + "case": "array_for_in", + "size": 13525, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js", + "sha256": "e2c4270ec617737d85fcd4a0e1af8fc4ee5a7c3fee3d6efc189b5d78a02f9069", + "oracle_exit": 0, + "expected": "array_for_in:1352500:4950\n", + "oracle_stderr": "" + }, + { + "case": "array_for_of", + "size": 8710, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js", + "sha256": "5d3f3be2f4d025c4b83e23c3ff0f03198cef55de0ab24e5febf60a2eed106868", + "oracle_exit": 0, + "expected": "array_for_of:871000:4950\n", + "oracle_stderr": "" + }, + { + "case": "math_min", + "size": 1105, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js", + "sha256": "0d9519e024767c621970d0cc9dd3911ff472ef42f38e258b013f32b938950741", + "oracle_exit": 0, + "expected": "math_min:1105000:500\n", + "oracle_stderr": "" + }, + { + "case": "regexp_ascii", + "size": 113, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js", + "sha256": "8939c2a04432345bd5cfb3def9da96ade2b38aae7aec02b841576afbacf26cf7", + "oracle_exit": 0, + "expected": "regexp_ascii:113000:the quick brown fox\n", + "oracle_stderr": "" + }, + { + "case": "regexp_utf16", + "size": 114, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js", + "sha256": "20b9e52b8fa8d12e5af4af287a319777e76d64cbe090b61f2bf63c18939f4b4b", + "oracle_exit": 0, + "expected": "regexp_utf16:114000:the quick brown \u1da0\u1d52\u02e3\n", + "oracle_stderr": "" + }, + { + "case": "regexp_replace", + "size": 115, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js", + "sha256": "0fff098fe2d7f1c9b4dbbb34e86aa00b6c14ce6c86e5a50aa2fb4cb38dbf1ce9", + "oracle_exit": 0, + "expected": "regexp_replace:115000:the quick -brown fox jumped -over the lazy dog\n", + "oracle_stderr": "" + }, + { + "case": "string_length", + "size": 486553, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js", + "sha256": "90eb76c9eabf0ca7546e55b4c5d63f78a3bc7f8a95c570b22a786bbbeb83a009", + "oracle_exit": 0, + "expected": "string_length:1946212:9731060\n", + "oracle_stderr": "" + }, + { + "case": "string_build1", + "size": 1600, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js", + "sha256": "72f09ef74561474f967bb7f47131207e2562361f04bb5e1f4352d1725f515a0b", + "oracle_exit": 0, + "expected": "string_build1:1600000:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n", + "oracle_stderr": "" + }, + { + "case": "string_build3", + "size": 1600, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js", + "sha256": "8ee991f7ef1f2ec216f90b469a28e0e9f171a26b4ea884d0df63f2cc586cf4a6", + "oracle_exit": 0, + "expected": "string_build3:1600000:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n", + "oracle_stderr": "" + }, + { + "case": "string_build_large1", + "size": 80, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js", + "sha256": "10e89591d07ad3165f6c24a0056bcdc1f9e233a0ab32a011124113c389684a8b", + "oracle_exit": 0, + "expected": "string_build_large1:1600000:abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\n", + "oracle_stderr": "" + }, + { + "case": "string_build_large2", + "size": 80, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js", + "sha256": "295b3fdd9a87a9faff60a17c05fb18e90eaf8ce03ab61e2516def7f506f18b96", + "oracle_exit": 0, + "expected": "string_build_large2:1600000:abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef\n", + "oracle_stderr": "" + }, + { + "case": "int_to_string", + "size": 500000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js", + "sha256": "28806014f1010bebc4f1546297e5b1affc8d4ac631604da14ab47ee833687a78", + "oracle_exit": 0, + "expected": "int_to_string:1500000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "float_to_string", + "size": 500000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js", + "sha256": "91c80dcffbd344a8c735d865a9049f82b88c5d61d31e729356cddcfa1e40af59", + "oracle_exit": 0, + "expected": "float_to_string:1500000:undefined\n", + "oracle_stderr": "" + }, + { + "case": "string_to_int", + "size": 500000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js", + "sha256": "e99a510599601f2e5095bfd1419dcdd2307fe4ee11e698a281fdf8405f39cd3e", + "oracle_exit": 0, + "expected": "string_to_int:500000:6172500000\n", + "oracle_stderr": "" + }, + { + "case": "string_to_float", + "size": 500000, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js", + "sha256": "7770435152a08840eaadc5548941c1927cd7661720783074ee729292003cb019", + "oracle_exit": 0, + "expected": "string_to_float:500000:-6172800000.034604\n", + "oracle_stderr": "" + }, + { + "case": "v8-richards", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js", + "sha256": "d2422637eb9b6c9bfdb920adcd8d39cc33861e2f165419a1d3ec82bb1f68f960", + "oracle_exit": 0, + "expected": "Richards:Richards:ok\n", + "oracle_stderr": "" + }, + { + "case": "v8-deltablue", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js", + "sha256": "d97e1a7dca52bff19fffac33aa8a21a20b2b953f542209324782cb7b99f7a6f3", + "oracle_exit": 0, + "expected": "DeltaBlue:DeltaBlue:ok\n", + "oracle_stderr": "" + }, + { + "case": "v8-crypto", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js", + "sha256": "e58d802a03c0a5c76eede46e962091e999d116ac97b48ca4210195cb786ea186", + "oracle_exit": 0, + "expected": "Crypto:Encrypt:ok\nCrypto:Decrypt:ok\n", + "oracle_stderr": "" + }, + { + "case": "v8-raytrace", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js", + "sha256": "a213966d62f99f1821d3cacab8e5aaef7aeae970dd7c109c266393708af667dc", + "oracle_exit": 0, + "expected": "RayTrace:RayTrace:ok\n", + "oracle_stderr": "" + }, + { + "case": "v8-earley-boyer", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js", + "sha256": "af13321ff32e90035d770a93ffc32a7a2385c900377298efdeb2af0bdfd5df56", + "oracle_exit": 0, + "expected": "EarleyBoyer:Earley:ok\nEarleyBoyer:Boyer:ok\n", + "oracle_stderr": "" + }, + { + "case": "v8-regexp", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js", + "sha256": "1b8e06354e55a983130fa695243d66eb248cd526aabe9287d9f73c2f1e4c24b9", + "oracle_exit": 0, + "expected": "RegExp:RegExp:ok\n", + "oracle_stderr": "" + }, + { + "case": "v8-splay", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js", + "sha256": "49d8d12ed4eb54696429e07884f3064a5406a86a532e70b648b73c0ae68936e1", + "oracle_exit": 0, + "expected": "Splay:Splay:ok\n", + "oracle_stderr": "" + }, + { + "case": "v8-navier-stokes", + "size": 1, + "path": "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js", + "sha256": "7b61080d79cbe598bb7ae197257083b26667d8ea7e413156cf671e9b30aafe14", + "oracle_exit": 0, + "expected": "NavierStokes:NavierStokes:ok\n", + "oracle_stderr": "" + } + ] + }, + "repeat": 3, + "metric": "whole-process wall nanoseconds" + }, + "summary": [ + { + "case": "empty_loop", + "size": 6084891, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1000549481, + 1015325496, + 1021251419 + ], + "failures": [], + "median_wall_ns": 1015325496 + }, + { + "case": "empty_loop", + "size": 6084891, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 871296987, + 874019859, + 865767465 + ], + "failures": [], + "median_wall_ns": 871296987 + }, + { + "case": "empty_loop", + "size": 6084891, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 26093379, + 26222515, + 26145608 + ], + "failures": [], + "median_wall_ns": 26145608 + }, + { + "case": "empty_down_loop", + "size": 4922868, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 767486265, + 788135167, + 791052588 + ], + "failures": [], + "median_wall_ns": 788135167 + }, + { + "case": "empty_down_loop", + "size": 4922868, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 667073962, + 668301393, + 667374907 + ], + "failures": [], + "median_wall_ns": 667374907 + }, + { + "case": "empty_down_loop", + "size": 4922868, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 26210190, + 26667926, + 22327523 + ], + "failures": [], + "median_wall_ns": 26210190 + }, + { + "case": "prop_read", + "size": 846083, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 995367932, + 993595201, + 995071933 + ], + "failures": [], + "median_wall_ns": 995071933 + }, + { + "case": "prop_read", + "size": 846083, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 977741263, + 967174013, + 948898022 + ], + "failures": [], + "median_wall_ns": 967174013 + }, + { + "case": "prop_read", + "size": 846083, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 23494783, + 23459264, + 23223578 + ], + "failures": [], + "median_wall_ns": 23459264 + }, + { + "case": "prop_write", + "size": 314880, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1027539381, + 1020787628, + 1032843260 + ], + "failures": [], + "median_wall_ns": 1027539381 + }, + { + "case": "prop_write", + "size": 314880, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 883808664, + 884035371, + 870330090 + ], + "failures": [], + "median_wall_ns": 883808664 + }, + { + "case": "prop_write", + "size": 314880, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 9929210, + 9752184, + 9739801 + ], + "failures": [], + "median_wall_ns": 9752184 + }, + { + "case": "prop_update", + "size": 244870, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1011825441, + 1018956560, + 1086374248 + ], + "failures": [], + "median_wall_ns": 1018956560 + }, + { + "case": "prop_update", + "size": 244870, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 886559579, + 889725477, + 965647905 + ], + "failures": [], + "median_wall_ns": 889725477 + }, + { + "case": "prop_update", + "size": 244870, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 9596481, + 9608163, + 9639442 + ], + "failures": [], + "median_wall_ns": 9608163 + }, + { + "case": "prop_create", + "size": 16000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 507419365, + 552229661, + 517277991 + ], + "failures": [], + "median_wall_ns": 517277991 + }, + { + "case": "prop_create", + "size": 16000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 424042576, + 436065647, + 431867451 + ], + "failures": [], + "median_wall_ns": 431867451 + }, + { + "case": "prop_create", + "size": 16000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 15209371, + 15370447, + 15198010 + ], + "failures": [], + "median_wall_ns": 15209371 + }, + { + "case": "prop_clone", + "size": 16000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 390942105, + 394524974, + 388499432 + ], + "failures": [], + "median_wall_ns": 390942105 + }, + { + "case": "prop_clone", + "size": 16000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 339515678, + 349200324, + 341646439 + ], + "failures": [], + "median_wall_ns": 341646439 + }, + { + "case": "prop_clone", + "size": 16000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 15233137, + 15656508, + 15498979 + ], + "failures": [], + "median_wall_ns": 15498979 + }, + { + "case": "prop_delete", + "size": 13775, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 971855160, + 972826003, + 987531489 + ], + "failures": [], + "median_wall_ns": 972826003 + }, + { + "case": "prop_delete", + "size": 13775, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 431361090, + 441751802, + 426277668 + ], + "failures": [], + "median_wall_ns": 431361090 + }, + { + "case": "prop_delete", + "size": 13775, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 19904286, + 20581217, + 20372983 + ], + "failures": [], + "median_wall_ns": 20372983 + }, + { + "case": "array_read", + "size": 258984, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1051857664, + 996474175, + 981261064 + ], + "failures": [], + "median_wall_ns": 996474175 + }, + { + "case": "array_read", + "size": 258984, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 610348763, + 616573621, + 602127442 + ], + "failures": [], + "median_wall_ns": 610348763 + }, + { + "case": "array_read", + "size": 258984, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 15063466, + 15678830, + 15858189 + ], + "failures": [], + "median_wall_ns": 15678830 + }, + { + "case": "array_write", + "size": 62914, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1079052225, + 1059041322, + 1068545585 + ], + "failures": [], + "median_wall_ns": 1068545585 + }, + { + "case": "array_write", + "size": 62914, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 526630874, + 521378885, + 510582742 + ], + "failures": [], + "median_wall_ns": 521378885 + }, + { + "case": "array_write", + "size": 62914, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 6266109, + 6265127, + 6141863 + ], + "failures": [], + "median_wall_ns": 6265127 + }, + { + "case": "array_update", + "size": 50862, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1028514580, + 1022161534, + 1078640790 + ], + "failures": [], + "median_wall_ns": 1028514580 + }, + { + "case": "array_update", + "size": 50862, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 510300757, + 515554859, + 518997361 + ], + "failures": [], + "median_wall_ns": 515554859 + }, + { + "case": "array_update", + "size": 50862, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 5949328, + 5918930, + 6093011 + ], + "failures": [], + "median_wall_ns": 5949328 + }, + { + "case": "array_prop_create", + "size": 429, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1012203765, + 1023345655, + 1018429599 + ], + "failures": [], + "median_wall_ns": 1018429599 + }, + { + "case": "array_prop_create", + "size": 429, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 636522334, + 634589366, + 634142768 + ], + "failures": [], + "median_wall_ns": 634589366 + }, + { + "case": "array_prop_create", + "size": 429, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 6747729, + 6720688, + 7298521 + ], + "failures": [], + "median_wall_ns": 6747729 + }, + { + "case": "array_slice", + "size": 872, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 970690049, + 966802588, + 996939645 + ], + "failures": [], + "median_wall_ns": 970690049 + }, + { + "case": "array_slice", + "size": 872, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 389130516, + 391270535, + 389834015 + ], + "failures": [], + "median_wall_ns": 389834015 + }, + { + "case": "array_slice", + "size": 872, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 14575281, + 14435988, + 14337309 + ], + "failures": [], + "median_wall_ns": 14435988 + }, + { + "case": "array_length_read", + "size": 763569, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1011884793, + 1019165996, + 1025570674 + ], + "failures": [], + "median_wall_ns": 1019165996 + }, + { + "case": "array_length_read", + "size": 763569, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 979768918, + 979780388, + 978302506 + ], + "failures": [], + "median_wall_ns": 979768918 + }, + { + "case": "array_length_read", + "size": 763569, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 20908997, + 20907273, + 20856916 + ], + "failures": [], + "median_wall_ns": 20907273 + }, + { + "case": "array_length_decr", + "size": 276, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 941350771, + 944576501, + 961968620 + ], + "failures": [], + "median_wall_ns": 944576501 + }, + { + "case": "array_length_decr", + "size": 276, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 600016175, + 590176425, + 592346659 + ], + "failures": [], + "median_wall_ns": 592346659 + }, + { + "case": "array_length_decr", + "size": 276, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 12091580, + 12080539, + 12064149 + ], + "failures": [], + "median_wall_ns": 12080539 + }, + { + "case": "array_push", + "size": 536, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1034353861, + 1007984247, + 1003826026 + ], + "failures": [], + "median_wall_ns": 1007984247 + }, + { + "case": "array_push", + "size": 536, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 667928689, + 682671045, + 670701321 + ], + "failures": [], + "median_wall_ns": 670701321 + }, + { + "case": "array_push", + "size": 536, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 10415009, + 10405160, + 10403146 + ], + "failures": [], + "median_wall_ns": 10405160 + }, + { + "case": "array_pop", + "size": 357, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 986130318, + 991453296, + 979830862 + ], + "failures": [], + "median_wall_ns": 986130318 + }, + { + "case": "array_pop", + "size": 357, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 628880603, + 631159384, + 627793974 + ], + "failures": [], + "median_wall_ns": 628880603 + }, + { + "case": "array_pop", + "size": 357, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 13106351, + 13116310, + 13165633 + ], + "failures": [], + "median_wall_ns": 13116310 + }, + { + "case": "typed_array_read", + "size": 136651, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1014413599, + 1005609064, + 999305324 + ], + "failures": [], + "median_wall_ns": 1005609064 + }, + { + "case": "typed_array_read", + "size": 136651, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 399856925, + 382730867, + 399326659 + ], + "failures": [], + "median_wall_ns": 399326659 + }, + { + "case": "typed_array_read", + "size": 136651, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 12521704, + 13039644, + 12845628 + ], + "failures": [], + "median_wall_ns": 12845628 + }, + { + "case": "typed_array_write", + "size": 130706, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 954114398, + 957093554, + 967210566 + ], + "failures": [], + "median_wall_ns": 957093554 + }, + { + "case": "typed_array_write", + "size": 130706, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 360406441, + 369672405, + 362757959 + ], + "failures": [], + "median_wall_ns": 362757959 + }, + { + "case": "typed_array_write", + "size": 130706, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 14498736, + 16300364, + 14567846 + ], + "failures": [], + "median_wall_ns": 14567846 + }, + { + "case": "arguments_read", + "size": 19199, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1045027802, + 1041252856, + 1043313443 + ], + "failures": [], + "median_wall_ns": 1043313443 + }, + { + "case": "arguments_read", + "size": 19199, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 361450454, + 358275596, + 356891366 + ], + "failures": [], + "median_wall_ns": 358275596 + }, + { + "case": "arguments_read", + "size": 19199, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 13522117, + 14801578, + 13692530 + ], + "failures": [], + "median_wall_ns": 13692530 + }, + { + "case": "arguments_strict_read", + "size": 21299, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1022597701, + 1026437494, + 1016686381 + ], + "failures": [], + "median_wall_ns": 1022597701 + }, + { + "case": "arguments_strict_read", + "size": 21299, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 337863168, + 336964437, + 336188648 + ], + "failures": [], + "median_wall_ns": 336964437 + }, + { + "case": "arguments_strict_read", + "size": 21299, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 9156827, + 8919538, + 9059623 + ], + "failures": [], + "median_wall_ns": 9059623 + }, + { + "case": "global_read", + "size": 800000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 511366975, + 512368359, + 529643578 + ], + "failures": [], + "median_wall_ns": 512368359 + }, + { + "case": "global_read", + "size": 800000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 461486490, + 445947957, + 445951923 + ], + "failures": [], + "median_wall_ns": 445951923 + }, + { + "case": "global_read", + "size": 800000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 14336509, + 14904763, + 16099053 + ], + "failures": [], + "median_wall_ns": 14904763 + }, + { + "case": "global_write", + "size": 800000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 540995036, + 558442729, + 541691692 + ], + "failures": [], + "median_wall_ns": 541691692 + }, + { + "case": "global_write", + "size": 800000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 486798555, + 484303241, + 492057013 + ], + "failures": [], + "median_wall_ns": 486798555 + }, + { + "case": "global_write", + "size": 800000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 21207769, + 21301568, + 21276040 + ], + "failures": [], + "median_wall_ns": 21276040 + }, + { + "case": "local_destruct", + "size": 16000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 239885246, + 237694341, + 234271753 + ], + "failures": [], + "median_wall_ns": 237694341 + }, + { + "case": "local_destruct", + "size": 16000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 154970089, + 157374848, + 153617839 + ], + "failures": [], + "median_wall_ns": 154970089 + }, + { + "case": "local_destruct", + "size": 16000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 6237563, + 6224598, + 6355676 + ], + "failures": [], + "median_wall_ns": 6237563 + }, + { + "case": "global_func_call", + "size": 400000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 848316983, + 844810884, + 843071462 + ], + "failures": [], + "median_wall_ns": 844810884 + }, + { + "case": "global_func_call", + "size": 400000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 774683160, + 778928682, + 782602641 + ], + "failures": [], + "median_wall_ns": 778928682 + }, + { + "case": "global_func_call", + "size": 400000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 31696928, + 31984391, + 31742914 + ], + "failures": [], + "median_wall_ns": 31742914 + }, + { + "case": "func_call", + "size": 400000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 820174113, + 833805903, + 825830782 + ], + "failures": [], + "median_wall_ns": 825830782 + }, + { + "case": "func_call", + "size": 400000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 758794959, + 752771169, + 788352273 + ], + "failures": [], + "median_wall_ns": 758794959 + }, + { + "case": "func_call", + "size": 400000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 29812351, + 30207038, + 29914956 + ], + "failures": [], + "median_wall_ns": 29914956 + }, + { + "case": "func_closure_call", + "size": 387594, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 972704584, + 973234040, + 972815037 + ], + "failures": [], + "median_wall_ns": 972815037 + }, + { + "case": "func_closure_call", + "size": 387594, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 898444308, + 882494766, + 895513426 + ], + "failures": [], + "median_wall_ns": 895513426 + }, + { + "case": "func_closure_call", + "size": 387594, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 31846470, + 30947780, + 30671497 + ], + "failures": [], + "median_wall_ns": 30947780 + }, + { + "case": "int_arith", + "size": 2936, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 963180663, + 961020552, + 972244298 + ], + "failures": [], + "median_wall_ns": 963180663 + }, + { + "case": "int_arith", + "size": 2936, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 858594967, + 852614027, + 858287138 + ], + "failures": [], + "median_wall_ns": 858287138 + }, + { + "case": "int_arith", + "size": 2936, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 34012037, + 31661039, + 34096006 + ], + "failures": [], + "median_wall_ns": 34012037 + }, + { + "case": "float_arith", + "size": 2318, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1040689826, + 1019499604, + 1031064677 + ], + "failures": [], + "median_wall_ns": 1031064677 + }, + { + "case": "float_arith", + "size": 2318, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 908477965, + 917917546, + 915503953 + ], + "failures": [], + "median_wall_ns": 915503953 + }, + { + "case": "float_arith", + "size": 2318, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 30469032, + 29409919, + 30792044 + ], + "failures": [], + "median_wall_ns": 30469032 + }, + { + "case": "bigint64_arith", + "size": 1600, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 690604252, + 932558298, + 693626046 + ], + "failures": [], + "median_wall_ns": 693626046 + }, + { + "case": "bigint64_arith", + "size": 1600, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 618797642, + 594485059, + 606596203 + ], + "failures": [], + "median_wall_ns": 606596203 + }, + { + "case": "bigint64_arith", + "size": 1600, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 46984723, + 48931036, + 48443644 + ], + "failures": [], + "median_wall_ns": 48443644 + }, + { + "case": "map_set_string", + "size": 10, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1094324603, + 1044226538, + 1048449667 + ], + "failures": [], + "median_wall_ns": 1048449667 + }, + { + "case": "map_set_string", + "size": 10, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38558388, + 38099971, + 39540427 + ], + "failures": [], + "median_wall_ns": 38558388 + }, + { + "case": "map_set_string", + "size": 10, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 3990281, + 3920448, + 4022961 + ], + "failures": [], + "median_wall_ns": 3990281 + }, + { + "case": "map_set_int", + "size": 22, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1007141642, + 1029151829, + 1017451187 + ], + "failures": [], + "median_wall_ns": 1017451187 + }, + { + "case": "map_set_int", + "size": 22, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 54007551, + 53805450, + 54217679 + ], + "failures": [], + "median_wall_ns": 54007551 + }, + { + "case": "map_set_int", + "size": 22, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 4198444, + 4081923, + 4311158 + ], + "failures": [], + "median_wall_ns": 4198444 + }, + { + "case": "map_delete", + "size": 17, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1029002011, + 1041738568, + 1041539831 + ], + "failures": [], + "median_wall_ns": 1041539831 + }, + { + "case": "map_delete", + "size": 17, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 59205176, + 60985584, + 59398761 + ], + "failures": [], + "median_wall_ns": 59398761 + }, + { + "case": "map_delete", + "size": 17, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 5034124, + 5094069, + 5096313 + ], + "failures": [], + "median_wall_ns": 5094069 + }, + { + "case": "weak_map_set", + "size": 320, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 480192838, + 496628063, + 480918569 + ], + "failures": [], + "median_wall_ns": 480918569 + }, + { + "case": "weak_map_set", + "size": 320, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 394049590, + 392283298, + 393230500 + ], + "failures": [], + "median_wall_ns": 393230500 + }, + { + "case": "weak_map_set", + "size": 320, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 20554061, + 20367448, + 22314552 + ], + "failures": [], + "median_wall_ns": 20554061 + }, + { + "case": "array_for", + "size": 16000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 905439111, + 912902250, + 921669678 + ], + "failures": [], + "median_wall_ns": 912902250 + }, + { + "case": "array_for", + "size": 16000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 612439875, + 638549115, + 636013535 + ], + "failures": [], + "median_wall_ns": 636013535 + }, + { + "case": "array_for", + "size": 16000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 18049381, + 18075702, + 19390610 + ], + "failures": [], + "median_wall_ns": 18075702 + }, + { + "case": "array_for_in", + "size": 13525, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 953303802, + 962245836, + 977705917 + ], + "failures": [], + "median_wall_ns": 962245836 + }, + { + "case": "array_for_in", + "size": 13525, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 918929189, + 929668608, + 929741331 + ], + "failures": [], + "median_wall_ns": 929668608 + }, + { + "case": "array_for_in", + "size": 13525, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 56659176, + 51395518, + 51045144 + ], + "failures": [], + "median_wall_ns": 51395518 + }, + { + "case": "array_for_of", + "size": 8710, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 976935596, + 968329951, + 986594968 + ], + "failures": [], + "median_wall_ns": 976935596 + }, + { + "case": "array_for_of", + "size": 8710, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 687582695, + 692025980, + 700331353 + ], + "failures": [], + "median_wall_ns": 692025980 + }, + { + "case": "array_for_of", + "size": 8710, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 16522903, + 17429759, + 16508155 + ], + "failures": [], + "median_wall_ns": 16522903 + }, + { + "case": "math_min", + "size": 1105, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 940977893, + 938035721, + 941991576 + ], + "failures": [], + "median_wall_ns": 940977893 + }, + { + "case": "math_min", + "size": 1105, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 882462503, + 891727792, + 900392232 + ], + "failures": [], + "median_wall_ns": 891727792 + }, + { + "case": "math_min", + "size": 1105, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 33507710, + 34078782, + 47917566 + ], + "failures": [], + "median_wall_ns": 34078782 + }, + { + "case": "regexp_ascii", + "size": 113, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1011002799, + 1013058847, + 998230388 + ], + "failures": [], + "median_wall_ns": 1011002799 + }, + { + "case": "regexp_ascii", + "size": 113, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 436902368, + 433237953, + 450280598 + ], + "failures": [], + "median_wall_ns": 436902368 + }, + { + "case": "regexp_ascii", + "size": 113, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 16848630, + 18667931, + 16871563 + ], + "failures": [], + "median_wall_ns": 16871563 + }, + { + "case": "regexp_utf16", + "size": 114, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1023129366, + 1011560063, + 1003578719 + ], + "failures": [], + "median_wall_ns": 1011560063 + }, + { + "case": "regexp_utf16", + "size": 114, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 470751430, + 438835330, + 455348645 + ], + "failures": [], + "median_wall_ns": 455348645 + }, + { + "case": "regexp_utf16", + "size": 114, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 19463717, + 17085888, + 16928362 + ], + "failures": [], + "median_wall_ns": 17085888 + }, + { + "case": "regexp_replace", + "size": 115, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 999554894, + 998494193, + 979585555 + ], + "failures": [], + "median_wall_ns": 998494193 + }, + { + "case": "regexp_replace", + "size": 115, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 805070580, + 789881076, + 797494762 + ], + "failures": [], + "median_wall_ns": 797494762 + }, + { + "case": "regexp_replace", + "size": 115, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 72861451, + 71360471, + 71853583 + ], + "failures": [], + "median_wall_ns": 71853583 + }, + { + "case": "string_length", + "size": 486553, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 961045944, + 982540830, + 992226434 + ], + "failures": [], + "median_wall_ns": 982540830 + }, + { + "case": "string_length", + "size": 486553, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 709699032, + 697733111, + 709458293 + ], + "failures": [], + "median_wall_ns": 709458293 + }, + { + "case": "string_length", + "size": 486553, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 14926863, + 14916033, + 14883120 + ], + "failures": [], + "median_wall_ns": 14916033 + }, + { + "case": "string_build1", + "size": 1600, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 457251527, + 459643252, + 470801323 + ], + "failures": [], + "median_wall_ns": 459643252 + }, + { + "case": "string_build1", + "size": 1600, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 402619989, + 398689783, + 408867599 + ], + "failures": [], + "median_wall_ns": 402619989 + }, + { + "case": "string_build1", + "size": 1600, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 31460717, + 30100562, + 29687660 + ], + "failures": [], + "median_wall_ns": 30100562 + }, + { + "case": "string_build3", + "size": 1600, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 466771548, + 484041874, + 467006881 + ], + "failures": [], + "median_wall_ns": 467006881 + }, + { + "case": "string_build3", + "size": 1600, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 399366752, + 400804122, + 410479878 + ], + "failures": [], + "median_wall_ns": 400804122 + }, + { + "case": "string_build3", + "size": 1600, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 50644693, + 50653089, + 48867070 + ], + "failures": [], + "median_wall_ns": 50644693 + }, + { + "case": "string_build_large1", + "size": 80, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 494741417, + 496970945, + 509328635 + ], + "failures": [], + "median_wall_ns": 496970945 + }, + { + "case": "string_build_large1", + "size": 80, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 440583125, + 446591883, + 442999275 + ], + "failures": [], + "median_wall_ns": 442999275 + }, + { + "case": "string_build_large1", + "size": 80, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 62939306, + 62082294, + 63110228 + ], + "failures": [], + "median_wall_ns": 62939306 + }, + { + "case": "string_build_large2", + "size": 80, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 501114252, + 495123797, + 520885960 + ], + "failures": [], + "median_wall_ns": 501114252 + }, + { + "case": "string_build_large2", + "size": 80, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 451403826, + 438353254, + 444932019 + ], + "failures": [], + "median_wall_ns": 444932019 + }, + { + "case": "string_build_large2", + "size": 80, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 60622571, + 59527000, + 61079045 + ], + "failures": [], + "median_wall_ns": 60622571 + }, + { + "case": "int_to_string", + "size": 500000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 385950724, + 393572544, + 387783751 + ], + "failures": [], + "median_wall_ns": 387783751 + }, + { + "case": "int_to_string", + "size": 500000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 345204548, + 339893830, + 342295084 + ], + "failures": [], + "median_wall_ns": 342295084 + }, + { + "case": "int_to_string", + "size": 500000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 40538933, + 42669815, + 41670703 + ], + "failures": [], + "median_wall_ns": 41670703 + }, + { + "case": "float_to_string", + "size": 500000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1817388036, + 1829828088, + 1878689651 + ], + "failures": [], + "median_wall_ns": 1829828088 + }, + { + "case": "float_to_string", + "size": 500000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 1740029915, + 1715157280, + 1720618517 + ], + "failures": [], + "median_wall_ns": 1720618517 + }, + { + "case": "float_to_string", + "size": 500000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 245904465, + 246064186, + 246806659 + ], + "failures": [], + "median_wall_ns": 246064186 + }, + { + "case": "string_to_int", + "size": 500000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 250241778, + 251563579, + 257748772 + ], + "failures": [], + "median_wall_ns": 251563579 + }, + { + "case": "string_to_int", + "size": 500000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 202384159, + 207035150, + 197370413 + ], + "failures": [], + "median_wall_ns": 202384159 + }, + { + "case": "string_to_int", + "size": 500000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 29151155, + 29447517, + 29268426 + ], + "failures": [], + "median_wall_ns": 29268426 + }, + { + "case": "string_to_float", + "size": 500000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 224946809, + 229404262, + 226159523 + ], + "failures": [], + "median_wall_ns": 226159523 + }, + { + "case": "string_to_float", + "size": 500000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 190603952, + 177546194, + 184742190 + ], + "failures": [], + "median_wall_ns": 184742190 + }, + { + "case": "string_to_float", + "size": 500000, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 45024508, + 45276244, + 44119306 + ], + "failures": [], + "median_wall_ns": 45024508 + }, + { + "case": "v8-richards", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 132161956, + 132953123, + 131469875 + ], + "failures": [], + "median_wall_ns": 132161956 + }, + { + "case": "v8-richards", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 115468851, + 113366334, + 115094485 + ], + "failures": [], + "median_wall_ns": 115094485 + }, + { + "case": "v8-richards", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 4407819, + 4414613, + 4303783 + ], + "failures": [], + "median_wall_ns": 4407819 + }, + { + "case": "v8-deltablue", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 208375955, + 211298475, + 208247884 + ], + "failures": [], + "median_wall_ns": 208375955 + }, + { + "case": "v8-deltablue", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 175666719, + 174967815, + 176789982 + ], + "failures": [], + "median_wall_ns": 175666719 + }, + { + "case": "v8-deltablue", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 7443333, + 7532010, + 7462930 + ], + "failures": [], + "median_wall_ns": 7462930 + }, + { + "case": "v8-crypto", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4130668234, + 4075434988, + 4125008778 + ], + "failures": [], + "median_wall_ns": 4125008778 + }, + { + "case": "v8-crypto", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 2558654890, + 2545067892, + 2595179495 + ], + "failures": [], + "median_wall_ns": 2558654890 + }, + { + "case": "v8-crypto", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 88137028, + 92040463, + 90878665 + ], + "failures": [], + "median_wall_ns": 90878665 + }, + { + "case": "v8-raytrace", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1634666130, + 1609640102, + 1614526814 + ], + "failures": [], + "median_wall_ns": 1614526814 + }, + { + "case": "v8-raytrace", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 1047914911, + 1038809682, + 1055241454 + ], + "failures": [], + "median_wall_ns": 1047914911 + }, + { + "case": "v8-raytrace", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 29289496, + 29268516, + 29286841 + ], + "failures": [], + "median_wall_ns": 29286841 + }, + { + "case": "v8-earley-boyer", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 3769839847, + 3765010924, + 3789685878 + ], + "failures": [], + "median_wall_ns": 3769839847 + }, + { + "case": "v8-earley-boyer", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 2753156645, + 2740786550, + 2725377131 + ], + "failures": [], + "median_wall_ns": 2740786550 + }, + { + "case": "v8-earley-boyer", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 95981396, + 98411303, + 95692708 + ], + "failures": [], + "median_wall_ns": 95981396 + }, + { + "case": "v8-regexp", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 7032302565, + 6997304649, + 7013384444 + ], + "failures": [], + "median_wall_ns": 7013384444 + }, + { + "case": "v8-regexp", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 5670219008, + 5605272056, + 5607610122 + ], + "failures": [], + "median_wall_ns": 5607610122 + }, + { + "case": "v8-regexp", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 308297503, + 303926149, + 308391144 + ], + "failures": [], + "median_wall_ns": 308297503 + }, + { + "case": "v8-splay", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 3806133164, + 3807463486, + 3850450368 + ], + "failures": [], + "median_wall_ns": 3807463486 + }, + { + "case": "v8-splay", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 3456707100, + 3497599330, + 3511683732 + ], + "failures": [], + "median_wall_ns": 3497599330 + }, + { + "case": "v8-splay", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 408650238, + 401407746, + 410242230 + ], + "failures": [], + "median_wall_ns": 408650238 + }, + { + "case": "v8-navier-stokes", + "size": 1, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 3639280733, + 3664804833, + 3645167312 + ], + "failures": [], + "median_wall_ns": 3645167312 + }, + { + "case": "v8-navier-stokes", + "size": 1, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 2125834492, + 2150931400, + 2136917459 + ], + "failures": [], + "median_wall_ns": 2136917459 + }, + { + "case": "v8-navier-stokes", + "size": 1, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 56728110, + 57384559, + 58044062 + ], + "failures": [], + "median_wall_ns": 57384559 + } + ], + "samples": [ + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1000549481, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-before-0.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 871296987, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-after-0.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 26093379, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-quickjs-0.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 874019859, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-after-1.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 26222515, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-quickjs-1.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1015325496, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-before-1.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 26145608, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-quickjs-2.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1021251419, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-before-2.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 865767465, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_loop-after-2.stderr", + "case": "empty_loop", + "size": 6084891, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 767486265, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-before-0.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 667073962, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-after-0.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 26210190, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-quickjs-0.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 668301393, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-after-1.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 26667926, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-quickjs-1.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 788135167, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-before-1.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 22327523, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-quickjs-2.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 791052588, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-before-2.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_down_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 667374907, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/empty_down_loop-after-2.stderr", + "case": "empty_down_loop", + "size": 4922868, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 995367932, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-before-0.stderr", + "case": "prop_read", + "size": 846083, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 977741263, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-after-0.stderr", + "case": "prop_read", + "size": 846083, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 23494783, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-quickjs-0.stderr", + "case": "prop_read", + "size": 846083, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 967174013, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-after-1.stderr", + "case": "prop_read", + "size": 846083, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 23459264, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-quickjs-1.stderr", + "case": "prop_read", + "size": 846083, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 993595201, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-before-1.stderr", + "case": "prop_read", + "size": 846083, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 23223578, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-quickjs-2.stderr", + "case": "prop_read", + "size": 846083, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 995071933, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-before-2.stderr", + "case": "prop_read", + "size": 846083, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 948898022, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_read-after-2.stderr", + "case": "prop_read", + "size": 846083, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1027539381, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-before-0.stderr", + "case": "prop_write", + "size": 314880, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 883808664, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-after-0.stderr", + "case": "prop_write", + "size": 314880, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9929210, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-quickjs-0.stderr", + "case": "prop_write", + "size": 314880, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 884035371, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-after-1.stderr", + "case": "prop_write", + "size": 314880, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9752184, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-quickjs-1.stderr", + "case": "prop_write", + "size": 314880, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1020787628, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-before-1.stderr", + "case": "prop_write", + "size": 314880, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9739801, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-quickjs-2.stderr", + "case": "prop_write", + "size": 314880, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1032843260, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-before-2.stderr", + "case": "prop_write", + "size": 314880, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 870330090, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_write-after-2.stderr", + "case": "prop_write", + "size": 314880, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1011825441, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-before-0.stderr", + "case": "prop_update", + "size": 244870, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 886559579, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-after-0.stderr", + "case": "prop_update", + "size": 244870, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9596481, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-quickjs-0.stderr", + "case": "prop_update", + "size": 244870, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 889725477, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-after-1.stderr", + "case": "prop_update", + "size": 244870, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9608163, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-quickjs-1.stderr", + "case": "prop_update", + "size": 244870, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1018956560, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-before-1.stderr", + "case": "prop_update", + "size": 244870, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9639442, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-quickjs-2.stderr", + "case": "prop_update", + "size": 244870, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1086374248, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-before-2.stderr", + "case": "prop_update", + "size": 244870, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 965647905, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_update-after-2.stderr", + "case": "prop_update", + "size": 244870, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 507419365, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-before-0.stderr", + "case": "prop_create", + "size": 16000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 424042576, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-after-0.stderr", + "case": "prop_create", + "size": 16000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15209371, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-quickjs-0.stderr", + "case": "prop_create", + "size": 16000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 436065647, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-after-1.stderr", + "case": "prop_create", + "size": 16000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15370447, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-quickjs-1.stderr", + "case": "prop_create", + "size": 16000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 552229661, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-before-1.stderr", + "case": "prop_create", + "size": 16000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15198010, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-quickjs-2.stderr", + "case": "prop_create", + "size": 16000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 517277991, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-before-2.stderr", + "case": "prop_create", + "size": 16000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 431867451, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_create-after-2.stderr", + "case": "prop_create", + "size": 16000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 390942105, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-before-0.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 339515678, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-after-0.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15233137, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-quickjs-0.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 349200324, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-after-1.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15656508, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-quickjs-1.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 394524974, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-before-1.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15498979, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-quickjs-2.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 388499432, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-before-2.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_clone.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 341646439, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_clone-after-2.stderr", + "case": "prop_clone", + "size": 16000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 971855160, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-before-0.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 431361090, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-after-0.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 19904286, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-quickjs-0.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 441751802, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-after-1.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20581217, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-quickjs-1.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 972826003, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-before-1.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20372983, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-quickjs-2.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 987531489, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-before-2.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 426277668, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/prop_delete-after-2.stderr", + "case": "prop_delete", + "size": 13775, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1051857664, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-before-0.stderr", + "case": "array_read", + "size": 258984, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 610348763, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-after-0.stderr", + "case": "array_read", + "size": 258984, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15063466, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-quickjs-0.stderr", + "case": "array_read", + "size": 258984, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 616573621, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-after-1.stderr", + "case": "array_read", + "size": 258984, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15678830, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-quickjs-1.stderr", + "case": "array_read", + "size": 258984, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 996474175, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-before-1.stderr", + "case": "array_read", + "size": 258984, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15858189, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-quickjs-2.stderr", + "case": "array_read", + "size": 258984, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 981261064, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-before-2.stderr", + "case": "array_read", + "size": 258984, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 602127442, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_read-after-2.stderr", + "case": "array_read", + "size": 258984, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1079052225, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-before-0.stderr", + "case": "array_write", + "size": 62914, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 526630874, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-after-0.stderr", + "case": "array_write", + "size": 62914, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6266109, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-quickjs-0.stderr", + "case": "array_write", + "size": 62914, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 521378885, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-after-1.stderr", + "case": "array_write", + "size": 62914, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6265127, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-quickjs-1.stderr", + "case": "array_write", + "size": 62914, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1059041322, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-before-1.stderr", + "case": "array_write", + "size": 62914, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6141863, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-quickjs-2.stderr", + "case": "array_write", + "size": 62914, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1068545585, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-before-2.stderr", + "case": "array_write", + "size": 62914, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 510582742, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_write-after-2.stderr", + "case": "array_write", + "size": 62914, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1028514580, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-before-0.stderr", + "case": "array_update", + "size": 50862, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 510300757, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-after-0.stderr", + "case": "array_update", + "size": 50862, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5949328, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-quickjs-0.stderr", + "case": "array_update", + "size": 50862, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 515554859, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-after-1.stderr", + "case": "array_update", + "size": 50862, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5918930, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-quickjs-1.stderr", + "case": "array_update", + "size": 50862, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1022161534, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-before-1.stderr", + "case": "array_update", + "size": 50862, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6093011, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-quickjs-2.stderr", + "case": "array_update", + "size": 50862, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1078640790, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-before-2.stderr", + "case": "array_update", + "size": 50862, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_update.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 518997361, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_update-after-2.stderr", + "case": "array_update", + "size": 50862, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1012203765, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-before-0.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 636522334, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-after-0.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6747729, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-quickjs-0.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 634589366, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-after-1.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6720688, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-quickjs-1.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1023345655, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-before-1.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7298521, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-quickjs-2.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1018429599, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-before-2.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_prop_create.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 634142768, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_prop_create-after-2.stderr", + "case": "array_prop_create", + "size": 429, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 970690049, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-before-0.stderr", + "case": "array_slice", + "size": 872, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 389130516, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-after-0.stderr", + "case": "array_slice", + "size": 872, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14575281, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-quickjs-0.stderr", + "case": "array_slice", + "size": 872, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 391270535, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-after-1.stderr", + "case": "array_slice", + "size": 872, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14435988, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-quickjs-1.stderr", + "case": "array_slice", + "size": 872, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 966802588, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-before-1.stderr", + "case": "array_slice", + "size": 872, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14337309, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-quickjs-2.stderr", + "case": "array_slice", + "size": 872, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 996939645, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-before-2.stderr", + "case": "array_slice", + "size": 872, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_slice.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 389834015, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_slice-after-2.stderr", + "case": "array_slice", + "size": 872, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1011884793, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-before-0.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 979768918, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-after-0.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20908997, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-quickjs-0.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 979780388, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-after-1.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20907273, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-quickjs-1.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1019165996, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-before-1.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20856916, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-quickjs-2.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1025570674, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-before-2.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 978302506, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_read-after-2.stderr", + "case": "array_length_read", + "size": 763569, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 941350771, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-before-0.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 600016175, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-after-0.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12091580, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-quickjs-0.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 590176425, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-after-1.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12080539, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-quickjs-1.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 944576501, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-before-1.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12064149, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-quickjs-2.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 961968620, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-before-2.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_length_decr.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 592346659, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_length_decr-after-2.stderr", + "case": "array_length_decr", + "size": 276, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1034353861, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-before-0.stderr", + "case": "array_push", + "size": 536, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 667928689, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-after-0.stderr", + "case": "array_push", + "size": 536, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 10415009, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-quickjs-0.stderr", + "case": "array_push", + "size": 536, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 682671045, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-after-1.stderr", + "case": "array_push", + "size": 536, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 10405160, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-quickjs-1.stderr", + "case": "array_push", + "size": 536, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1007984247, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-before-1.stderr", + "case": "array_push", + "size": 536, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 10403146, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-quickjs-2.stderr", + "case": "array_push", + "size": 536, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1003826026, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-before-2.stderr", + "case": "array_push", + "size": 536, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_push.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 670701321, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_push-after-2.stderr", + "case": "array_push", + "size": 536, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 986130318, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-before-0.stderr", + "case": "array_pop", + "size": 357, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 628880603, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-after-0.stderr", + "case": "array_pop", + "size": 357, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 13106351, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-quickjs-0.stderr", + "case": "array_pop", + "size": 357, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 631159384, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-after-1.stderr", + "case": "array_pop", + "size": 357, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 13116310, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-quickjs-1.stderr", + "case": "array_pop", + "size": 357, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 991453296, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-before-1.stderr", + "case": "array_pop", + "size": 357, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 13165633, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-quickjs-2.stderr", + "case": "array_pop", + "size": 357, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 979830862, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-before-2.stderr", + "case": "array_pop", + "size": 357, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_pop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 627793974, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_pop-after-2.stderr", + "case": "array_pop", + "size": 357, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1014413599, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-before-0.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 399856925, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-after-0.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12521704, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-quickjs-0.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 382730867, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-after-1.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 13039644, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-quickjs-1.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1005609064, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-before-1.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12845628, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-quickjs-2.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 999305324, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-before-2.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 399326659, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_read-after-2.stderr", + "case": "typed_array_read", + "size": 136651, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 954114398, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-before-0.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 360406441, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-after-0.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14498736, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-quickjs-0.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 369672405, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-after-1.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16300364, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-quickjs-1.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 957093554, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-before-1.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14567846, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-quickjs-2.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 967210566, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-before-2.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/typed_array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 362757959, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/typed_array_write-after-2.stderr", + "case": "typed_array_write", + "size": 130706, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1045027802, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-before-0.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 361450454, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-after-0.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 13522117, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-quickjs-0.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 358275596, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-after-1.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14801578, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-quickjs-1.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1041252856, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-before-1.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 13692530, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-quickjs-2.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1043313443, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-before-2.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 356891366, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_read-after-2.stderr", + "case": "arguments_read", + "size": 19199, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1022597701, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-before-0.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 337863168, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-after-0.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9156827, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-quickjs-0.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 336964437, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-after-1.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 8919538, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-quickjs-1.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1026437494, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-before-1.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9059623, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-quickjs-2.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1016686381, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-before-2.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/arguments_strict_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 336188648, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/arguments_strict_read-after-2.stderr", + "case": "arguments_strict_read", + "size": 21299, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 511366975, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-before-0.stderr", + "case": "global_read", + "size": 800000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 461486490, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-after-0.stderr", + "case": "global_read", + "size": 800000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14336509, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-quickjs-0.stderr", + "case": "global_read", + "size": 800000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 445947957, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-after-1.stderr", + "case": "global_read", + "size": 800000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14904763, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-quickjs-1.stderr", + "case": "global_read", + "size": 800000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 512368359, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-before-1.stderr", + "case": "global_read", + "size": 800000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16099053, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-quickjs-2.stderr", + "case": "global_read", + "size": 800000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 529643578, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-before-2.stderr", + "case": "global_read", + "size": 800000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_read.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 445951923, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_read-after-2.stderr", + "case": "global_read", + "size": 800000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 540995036, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-before-0.stderr", + "case": "global_write", + "size": 800000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 486798555, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-after-0.stderr", + "case": "global_write", + "size": 800000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 21207769, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-quickjs-0.stderr", + "case": "global_write", + "size": 800000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 484303241, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-after-1.stderr", + "case": "global_write", + "size": 800000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 21301568, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-quickjs-1.stderr", + "case": "global_write", + "size": 800000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 558442729, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-before-1.stderr", + "case": "global_write", + "size": 800000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 21276040, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-quickjs-2.stderr", + "case": "global_write", + "size": 800000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 541691692, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-before-2.stderr", + "case": "global_write", + "size": 800000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 492057013, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_write-after-2.stderr", + "case": "global_write", + "size": 800000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 239885246, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-before-0.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 154970089, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-after-0.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6237563, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-quickjs-0.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 157374848, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-after-1.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6224598, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-quickjs-1.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 237694341, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-before-1.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6355676, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-quickjs-2.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 234271753, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-before-2.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/local_destruct.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 153617839, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/local_destruct-after-2.stderr", + "case": "local_destruct", + "size": 16000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 848316983, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-before-0.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 774683160, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-after-0.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31696928, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-quickjs-0.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 778928682, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-after-1.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31984391, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-quickjs-1.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 844810884, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-before-1.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31742914, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-quickjs-2.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 843071462, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-before-2.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/global_func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 782602641, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/global_func_call-after-2.stderr", + "case": "global_func_call", + "size": 400000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 820174113, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-before-0.stderr", + "case": "func_call", + "size": 400000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 758794959, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-after-0.stderr", + "case": "func_call", + "size": 400000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29812351, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-quickjs-0.stderr", + "case": "func_call", + "size": 400000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 752771169, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-after-1.stderr", + "case": "func_call", + "size": 400000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30207038, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-quickjs-1.stderr", + "case": "func_call", + "size": 400000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 833805903, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-before-1.stderr", + "case": "func_call", + "size": 400000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29914956, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-quickjs-2.stderr", + "case": "func_call", + "size": 400000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 825830782, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-before-2.stderr", + "case": "func_call", + "size": 400000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 788352273, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_call-after-2.stderr", + "case": "func_call", + "size": 400000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 972704584, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-before-0.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 898444308, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-after-0.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31846470, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-quickjs-0.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 882494766, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-after-1.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30947780, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-quickjs-1.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 973234040, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-before-1.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30671497, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-quickjs-2.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 972815037, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-before-2.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_closure_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 895513426, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/func_closure_call-after-2.stderr", + "case": "func_closure_call", + "size": 387594, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 963180663, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-before-0.stderr", + "case": "int_arith", + "size": 2936, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 858594967, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-after-0.stderr", + "case": "int_arith", + "size": 2936, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34012037, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-quickjs-0.stderr", + "case": "int_arith", + "size": 2936, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 852614027, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-after-1.stderr", + "case": "int_arith", + "size": 2936, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31661039, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-quickjs-1.stderr", + "case": "int_arith", + "size": 2936, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 961020552, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-before-1.stderr", + "case": "int_arith", + "size": 2936, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34096006, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-quickjs-2.stderr", + "case": "int_arith", + "size": 2936, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 972244298, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-before-2.stderr", + "case": "int_arith", + "size": 2936, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 858287138, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_arith-after-2.stderr", + "case": "int_arith", + "size": 2936, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1040689826, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-before-0.stderr", + "case": "float_arith", + "size": 2318, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 908477965, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-after-0.stderr", + "case": "float_arith", + "size": 2318, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30469032, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-quickjs-0.stderr", + "case": "float_arith", + "size": 2318, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 917917546, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-after-1.stderr", + "case": "float_arith", + "size": 2318, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29409919, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-quickjs-1.stderr", + "case": "float_arith", + "size": 2318, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1019499604, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-before-1.stderr", + "case": "float_arith", + "size": 2318, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30792044, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-quickjs-2.stderr", + "case": "float_arith", + "size": 2318, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1031064677, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-before-2.stderr", + "case": "float_arith", + "size": 2318, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 915503953, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_arith-after-2.stderr", + "case": "float_arith", + "size": 2318, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 690604252, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-before-0.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 618797642, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-after-0.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 46984723, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-quickjs-0.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 594485059, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-after-1.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 48931036, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-quickjs-1.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 932558298, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-before-1.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 48443644, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-quickjs-2.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 693626046, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-before-2.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/bigint64_arith.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 606596203, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/bigint64_arith-after-2.stderr", + "case": "bigint64_arith", + "size": 1600, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1094324603, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-before-0.stderr", + "case": "map_set_string", + "size": 10, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 38558388, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-after-0.stderr", + "case": "map_set_string", + "size": 10, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3990281, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-quickjs-0.stderr", + "case": "map_set_string", + "size": 10, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 38099971, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-after-1.stderr", + "case": "map_set_string", + "size": 10, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3920448, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-quickjs-1.stderr", + "case": "map_set_string", + "size": 10, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1044226538, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-before-1.stderr", + "case": "map_set_string", + "size": 10, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4022961, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-quickjs-2.stderr", + "case": "map_set_string", + "size": 10, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1048449667, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-before-2.stderr", + "case": "map_set_string", + "size": 10, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 39540427, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_string-after-2.stderr", + "case": "map_set_string", + "size": 10, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1007141642, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-before-0.stderr", + "case": "map_set_int", + "size": 22, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 54007551, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-after-0.stderr", + "case": "map_set_int", + "size": 22, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4198444, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-quickjs-0.stderr", + "case": "map_set_int", + "size": 22, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 53805450, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-after-1.stderr", + "case": "map_set_int", + "size": 22, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4081923, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-quickjs-1.stderr", + "case": "map_set_int", + "size": 22, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1029151829, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-before-1.stderr", + "case": "map_set_int", + "size": 22, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4311158, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-quickjs-2.stderr", + "case": "map_set_int", + "size": 22, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1017451187, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-before-2.stderr", + "case": "map_set_int", + "size": 22, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 54217679, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_set_int-after-2.stderr", + "case": "map_set_int", + "size": 22, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1029002011, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-before-0.stderr", + "case": "map_delete", + "size": 17, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 59205176, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-after-0.stderr", + "case": "map_delete", + "size": 17, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5034124, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-quickjs-0.stderr", + "case": "map_delete", + "size": 17, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 60985584, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-after-1.stderr", + "case": "map_delete", + "size": 17, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5094069, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-quickjs-1.stderr", + "case": "map_delete", + "size": 17, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1041738568, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-before-1.stderr", + "case": "map_delete", + "size": 17, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5096313, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-quickjs-2.stderr", + "case": "map_delete", + "size": 17, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1041539831, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-before-2.stderr", + "case": "map_delete", + "size": 17, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_delete.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 59398761, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/map_delete-after-2.stderr", + "case": "map_delete", + "size": 17, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 480192838, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-before-0.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 394049590, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-after-0.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20554061, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-quickjs-0.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 392283298, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-after-1.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20367448, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-quickjs-1.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 496628063, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-before-1.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 22314552, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-quickjs-2.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 480918569, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-before-2.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/weak_map_set.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 393230500, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/weak_map_set-after-2.stderr", + "case": "weak_map_set", + "size": 320, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 905439111, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-before-0.stderr", + "case": "array_for", + "size": 16000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 612439875, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-after-0.stderr", + "case": "array_for", + "size": 16000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 18049381, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-quickjs-0.stderr", + "case": "array_for", + "size": 16000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 638549115, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-after-1.stderr", + "case": "array_for", + "size": 16000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 18075702, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-quickjs-1.stderr", + "case": "array_for", + "size": 16000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 912902250, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-before-1.stderr", + "case": "array_for", + "size": 16000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 19390610, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-quickjs-2.stderr", + "case": "array_for", + "size": 16000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 921669678, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-before-2.stderr", + "case": "array_for", + "size": 16000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 636013535, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for-after-2.stderr", + "case": "array_for", + "size": 16000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 953303802, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-before-0.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 918929189, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-after-0.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 56659176, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-quickjs-0.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 929668608, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-after-1.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 51395518, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-quickjs-1.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 962245836, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-before-1.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 51045144, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-quickjs-2.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 977705917, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-before-2.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_in.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 929741331, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_in-after-2.stderr", + "case": "array_for_in", + "size": 13525, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 976935596, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-before-0.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 687582695, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-after-0.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16522903, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-quickjs-0.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 692025980, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-after-1.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 17429759, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-quickjs-1.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 968329951, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-before-1.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16508155, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-quickjs-2.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 986594968, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-before-2.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_for_of.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 700331353, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/array_for_of-after-2.stderr", + "case": "array_for_of", + "size": 8710, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 940977893, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-before-0.stderr", + "case": "math_min", + "size": 1105, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 882462503, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-after-0.stderr", + "case": "math_min", + "size": 1105, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 33507710, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-quickjs-0.stderr", + "case": "math_min", + "size": 1105, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 891727792, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-after-1.stderr", + "case": "math_min", + "size": 1105, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34078782, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-quickjs-1.stderr", + "case": "math_min", + "size": 1105, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 938035721, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-before-1.stderr", + "case": "math_min", + "size": 1105, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 47917566, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-quickjs-2.stderr", + "case": "math_min", + "size": 1105, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 941991576, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-before-2.stderr", + "case": "math_min", + "size": 1105, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/math_min.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 900392232, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/math_min-after-2.stderr", + "case": "math_min", + "size": 1105, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1011002799, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-before-0.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 436902368, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-after-0.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16848630, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-quickjs-0.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 433237953, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-after-1.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 18667931, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-quickjs-1.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1013058847, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-before-1.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16871563, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-quickjs-2.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 998230388, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-before-2.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_ascii.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 450280598, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_ascii-after-2.stderr", + "case": "regexp_ascii", + "size": 113, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1023129366, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-before-0.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 470751430, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-after-0.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 19463717, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-quickjs-0.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 438835330, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-after-1.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 17085888, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-quickjs-1.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1011560063, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-before-1.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16928362, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-quickjs-2.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1003578719, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-before-2.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_utf16.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 455348645, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_utf16-after-2.stderr", + "case": "regexp_utf16", + "size": 114, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 999554894, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-before-0.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 805070580, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-after-0.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 72861451, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-quickjs-0.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 789881076, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-after-1.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 71360471, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-quickjs-1.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 998494193, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-before-1.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 71853583, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-quickjs-2.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 979585555, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-before-2.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/regexp_replace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 797494762, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/regexp_replace-after-2.stderr", + "case": "regexp_replace", + "size": 115, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 961045944, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-before-0.stderr", + "case": "string_length", + "size": 486553, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 709699032, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-after-0.stderr", + "case": "string_length", + "size": 486553, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14926863, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-quickjs-0.stderr", + "case": "string_length", + "size": 486553, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 697733111, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-after-1.stderr", + "case": "string_length", + "size": 486553, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14916033, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-quickjs-1.stderr", + "case": "string_length", + "size": 486553, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 982540830, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-before-1.stderr", + "case": "string_length", + "size": 486553, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14883120, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-quickjs-2.stderr", + "case": "string_length", + "size": 486553, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 992226434, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-before-2.stderr", + "case": "string_length", + "size": 486553, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_length.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 709458293, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_length-after-2.stderr", + "case": "string_length", + "size": 486553, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 457251527, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-before-0.stderr", + "case": "string_build1", + "size": 1600, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 402619989, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-after-0.stderr", + "case": "string_build1", + "size": 1600, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31460717, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-quickjs-0.stderr", + "case": "string_build1", + "size": 1600, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 398689783, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-after-1.stderr", + "case": "string_build1", + "size": 1600, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30100562, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-quickjs-1.stderr", + "case": "string_build1", + "size": 1600, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 459643252, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-before-1.stderr", + "case": "string_build1", + "size": 1600, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29687660, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-quickjs-2.stderr", + "case": "string_build1", + "size": 1600, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 470801323, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-before-2.stderr", + "case": "string_build1", + "size": 1600, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 408867599, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build1-after-2.stderr", + "case": "string_build1", + "size": 1600, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 466771548, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-before-0.stderr", + "case": "string_build3", + "size": 1600, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 399366752, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-after-0.stderr", + "case": "string_build3", + "size": 1600, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 50644693, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-quickjs-0.stderr", + "case": "string_build3", + "size": 1600, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 400804122, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-after-1.stderr", + "case": "string_build3", + "size": 1600, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 50653089, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-quickjs-1.stderr", + "case": "string_build3", + "size": 1600, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 484041874, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-before-1.stderr", + "case": "string_build3", + "size": 1600, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 48867070, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-quickjs-2.stderr", + "case": "string_build3", + "size": 1600, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 467006881, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-before-2.stderr", + "case": "string_build3", + "size": 1600, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build3.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 410479878, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build3-after-2.stderr", + "case": "string_build3", + "size": 1600, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 494741417, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-before-0.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 440583125, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-after-0.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 62939306, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-quickjs-0.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 446591883, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-after-1.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 62082294, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-quickjs-1.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 496970945, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-before-1.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 63110228, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-quickjs-2.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 509328635, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-before-2.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large1.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 442999275, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large1-after-2.stderr", + "case": "string_build_large1", + "size": 80, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 501114252, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-before-0.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 451403826, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-after-0.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 60622571, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-quickjs-0.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 438353254, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-after-1.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 59527000, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-quickjs-1.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 495123797, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-before-1.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 61079045, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-quickjs-2.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 520885960, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-before-2.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_build_large2.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 444932019, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_build_large2-after-2.stderr", + "case": "string_build_large2", + "size": 80, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 385950724, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-before-0.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 345204548, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-after-0.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40538933, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-quickjs-0.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 339893830, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-after-1.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 42669815, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-quickjs-1.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 393572544, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-before-1.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 41670703, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-quickjs-2.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 387783751, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-before-2.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/int_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 342295084, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/int_to_string-after-2.stderr", + "case": "int_to_string", + "size": 500000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1817388036, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-before-0.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1740029915, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-after-0.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 245904465, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-quickjs-0.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1715157280, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-after-1.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 246064186, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-quickjs-1.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1829828088, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-before-1.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 246806659, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-quickjs-2.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1878689651, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-before-2.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/float_to_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1720618517, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/float_to_string-after-2.stderr", + "case": "float_to_string", + "size": 500000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 250241778, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-before-0.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 202384159, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-after-0.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29151155, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-quickjs-0.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 207035150, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-after-1.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29447517, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-quickjs-1.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 251563579, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-before-1.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29268426, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-quickjs-2.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 257748772, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-before-2.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_int.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 197370413, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_int-after-2.stderr", + "case": "string_to_int", + "size": 500000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 224946809, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-before-0.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 190603952, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-after-0.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 45024508, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-quickjs-0.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 177546194, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-after-1.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 45276244, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-quickjs-1.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 229404262, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-before-1.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 44119306, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-quickjs-2.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 226159523, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-before-2.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/string_to_float.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 184742190, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/string_to_float-after-2.stderr", + "case": "string_to_float", + "size": 500000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 132161956, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-before-0.stderr", + "case": "v8-richards", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 115468851, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-after-0.stderr", + "case": "v8-richards", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4407819, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-quickjs-0.stderr", + "case": "v8-richards", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 113366334, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-after-1.stderr", + "case": "v8-richards", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4414613, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-quickjs-1.stderr", + "case": "v8-richards", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 132953123, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-before-1.stderr", + "case": "v8-richards", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4303783, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-quickjs-2.stderr", + "case": "v8-richards", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 131469875, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-before-2.stderr", + "case": "v8-richards", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-richards.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 115094485, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-richards-after-2.stderr", + "case": "v8-richards", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 208375955, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-before-0.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 175666719, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-after-0.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7443333, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-quickjs-0.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 174967815, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-after-1.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7532010, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-quickjs-1.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 211298475, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-before-1.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7462930, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-quickjs-2.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 208247884, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-before-2.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-deltablue.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 176789982, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-deltablue-after-2.stderr", + "case": "v8-deltablue", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4130668234, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-before-0.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2558654890, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-after-0.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 88137028, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-quickjs-0.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2545067892, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-after-1.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 92040463, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-quickjs-1.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4075434988, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-before-1.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 90878665, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-quickjs-2.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4125008778, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-before-2.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-crypto.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2595179495, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-crypto-after-2.stderr", + "case": "v8-crypto", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1634666130, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-before-0.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1047914911, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-after-0.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29289496, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-quickjs-0.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1038809682, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-after-1.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29268516, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-quickjs-1.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1609640102, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-before-1.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29286841, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-quickjs-2.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1614526814, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-before-2.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-raytrace.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1055241454, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-raytrace-after-2.stderr", + "case": "v8-raytrace", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3769839847, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-before-0.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2753156645, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-after-0.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 95981396, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-quickjs-0.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2740786550, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-after-1.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 98411303, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-quickjs-1.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3765010924, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-before-1.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 95692708, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-quickjs-2.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3789685878, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-before-2.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-earley-boyer.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2725377131, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-earley-boyer-after-2.stderr", + "case": "v8-earley-boyer", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7032302565, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-before-0.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5670219008, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-after-0.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 308297503, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-quickjs-0.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5605272056, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-after-1.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 303926149, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-quickjs-1.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6997304649, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-before-1.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 308391144, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-quickjs-2.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7013384444, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-before-2.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-regexp.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5607610122, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-regexp-after-2.stderr", + "case": "v8-regexp", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3806133164, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-before-0.stderr", + "case": "v8-splay", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3456707100, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-after-0.stderr", + "case": "v8-splay", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 408650238, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-quickjs-0.stderr", + "case": "v8-splay", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3497599330, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-after-1.stderr", + "case": "v8-splay", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 401407746, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-quickjs-1.stderr", + "case": "v8-splay", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3807463486, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-before-1.stderr", + "case": "v8-splay", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 410242230, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-quickjs-2.stderr", + "case": "v8-splay", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3850450368, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-before-2.stderr", + "case": "v8-splay", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-splay.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3511683732, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-splay-after-2.stderr", + "case": "v8-splay", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3639280733, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-before-0.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2125834492, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-after-0.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 56728110, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-quickjs-0.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2150931400, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-after-1.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 57384559, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-quickjs-1.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3664804833, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-before-1.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 58044062, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-quickjs-2.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3645167312, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-before-2.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/v8-navier-stokes.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2136917459, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-fixed/raw/v8-navier-stokes-after-2.stderr", + "case": "v8-navier-stokes", + "size": 1, + "engine": "after", + "repetition": 2, + "status": "ok" + } + ] +} diff --git a/docs/reports/data-structure-fixed-final.md b/docs/reports/data-structure-fixed-final.md new file mode 100644 index 00000000..5ff2bd88 --- /dev/null +++ b/docs/reports/data-structure-fixed-final.md @@ -0,0 +1,118 @@ +# Final fixed microbench and V8 comparison + +Baseline `cdc35ec`; final engine semantics through `95013e9`, fingerprint +`b61a54ac6ff4469d1223fba670782e8a49ac9a3b612a810037748ff70c46e568`. +Ordinary release builds, CPU 2, three interleaved repetitions, unlocked frequency, +no overlapping builds or tests. All 522 samples passed exact stdout, empty stderr +and successful-exit admission against pinned QuickJS. This is workload validation, +not a substitute for the separately completed Test262 vector. + +**Measurement scope:** whole-process wall milliseconds, including compilation +and output. Counts match the 50 cases in Issue #16, but this harness keeps the +complete pinned microbench file and replaces only its final `main(...)` call. +The issue extracted individual functions and helpers, so its absolute times +are not interchangeable with this matched before/after experiment. Necessary +helpers and global declarations retain their original semantics. Printing the +function result and `String(global_res)` is part of this fixed harness cost. + +V8 uses unchanged base and suite bytes from +`ahaoboy/js-engine-benchmark@2034d98fc8c5f8044e186267593f5d5ea5232caf`. +Each registered benchmark executes Setup/run/TearDown once; original assertions +remain intact. These fixed runs are not adaptive V8 scores. + +| Case | Fixed N | Before ms | After ms | QuickJS ms | Before / after | +| --- | ---: | ---: | ---: | ---: | ---: | +| empty_loop | 6084891 | 1015.33 | 871.30 | 26.15 | 1.17× | +| empty_down_loop | 4922868 | 788.14 | 667.37 | 26.21 | 1.18× | +| prop_read | 846083 | 995.07 | 967.17 | 23.46 | 1.03× | +| prop_write | 314880 | 1027.54 | 883.81 | 9.75 | 1.16× | +| prop_update | 244870 | 1018.96 | 889.73 | 9.61 | 1.15× | +| prop_create | 16000 | 517.28 | 431.87 | 15.21 | 1.20× | +| prop_clone | 16000 | 390.94 | 341.65 | 15.50 | 1.14× | +| prop_delete | 13775 | 972.83 | 431.36 | 20.37 | 2.26× | +| array_read | 258984 | 996.47 | 610.35 | 15.68 | 1.63× | +| array_write | 62914 | 1068.55 | 521.38 | 6.27 | 2.05× | +| array_update | 50862 | 1028.51 | 515.55 | 5.95 | 1.99× | +| array_prop_create | 429 | 1018.43 | 634.59 | 6.75 | 1.60× | +| array_slice | 872 | 970.69 | 389.83 | 14.44 | 2.49× | +| array_length_read | 763569 | 1019.17 | 979.77 | 20.91 | 1.04× | +| array_length_decr | 276 | 944.58 | 592.35 | 12.08 | 1.59× | +| array_push | 536 | 1007.98 | 670.70 | 10.41 | 1.50× | +| array_pop | 357 | 986.13 | 628.88 | 13.12 | 1.57× | +| typed_array_read | 136651 | 1005.61 | 399.33 | 12.85 | 2.52× | +| typed_array_write | 130706 | 957.09 | 362.76 | 14.57 | 2.64× | +| arguments_read | 19199 | 1043.31 | 358.28 | 13.69 | 2.91× | +| arguments_strict_read | 21299 | 1022.60 | 336.96 | 9.06 | 3.03× | +| global_read | 800000 | 512.37 | 445.95 | 14.90 | 1.15× | +| global_write | 800000 | 541.69 | 486.80 | 21.28 | 1.11× | +| local_destruct | 16000 | 237.69 | 154.97 | 6.24 | 1.53× | +| global_func_call | 400000 | 844.81 | 778.93 | 31.74 | 1.08× | +| func_call | 400000 | 825.83 | 758.79 | 29.91 | 1.09× | +| func_closure_call | 387594 | 972.82 | 895.51 | 30.95 | 1.09× | +| int_arith | 2936 | 963.18 | 858.29 | 34.01 | 1.12× | +| float_arith | 2318 | 1031.06 | 915.50 | 30.47 | 1.13× | +| bigint64_arith | 1600 | 693.63 | 606.60 | 48.44 | 1.14× | +| map_set_string | 10 | 1048.45 | 38.56 | 3.99 | 27.19× | +| map_set_int | 22 | 1017.45 | 54.01 | 4.20 | 18.84× | +| map_delete | 17 | 1041.54 | 59.40 | 5.09 | 17.53× | +| weak_map_set | 320 | 480.92 | 393.23 | 20.55 | 1.22× | +| array_for | 16000 | 912.90 | 636.01 | 18.08 | 1.44× | +| array_for_in | 13525 | 962.25 | 929.67 | 51.40 | 1.04× | +| array_for_of | 8710 | 976.94 | 692.03 | 16.52 | 1.41× | +| math_min | 1105 | 940.98 | 891.73 | 34.08 | 1.06× | +| regexp_ascii | 113 | 1011.00 | 436.90 | 16.87 | 2.31× | +| regexp_utf16 | 114 | 1011.56 | 455.35 | 17.09 | 2.22× | +| regexp_replace | 115 | 998.49 | 797.49 | 71.85 | 1.25× | +| string_length | 486553 | 982.54 | 709.46 | 14.92 | 1.38× | +| string_build1 | 1600 | 459.64 | 402.62 | 30.10 | 1.14× | +| string_build3 | 1600 | 467.01 | 400.80 | 50.64 | 1.17× | +| string_build_large1 | 80 | 496.97 | 443.00 | 62.94 | 1.12× | +| string_build_large2 | 80 | 501.11 | 444.93 | 60.62 | 1.13× | +| int_to_string | 500000 | 387.78 | 342.30 | 41.67 | 1.13× | +| float_to_string | 500000 | 1829.83 | 1720.62 | 246.06 | 1.06× | +| string_to_int | 500000 | 251.56 | 202.38 | 29.27 | 1.24× | +| string_to_float | 500000 | 226.16 | 184.74 | 45.02 | 1.22× | +| v8-richards | 1 | 132.16 | 115.09 | 4.41 | 1.15× | +| v8-deltablue | 1 | 208.38 | 175.67 | 7.46 | 1.19× | +| v8-crypto | 1 | 4125.01 | 2558.65 | 90.88 | 1.61× | +| v8-raytrace | 1 | 1614.53 | 1047.91 | 29.29 | 1.54× | +| v8-earley-boyer | 1 | 3769.84 | 2740.79 | 95.98 | 1.38× | +| v8-regexp | 1 | 7013.38 | 5607.61 | 308.30 | 1.25× | +| v8-splay | 1 | 3807.46 | 3497.60 | 408.65 | 1.09× | +| v8-navier-stokes | 1 | 3645.17 | 2136.92 | 57.38 | 1.71× | + +All eight V8 suites improve in this experiment. The complete table is retained +to expose controls alongside large gains; do not extrapolate these ratios to +other applications or combine them into a workload-independent engine score. +QuickJS processes below 20 ms have substantial startup/scheduling sensitivity. + +[Raw samples, exact counts/outputs, workload hashes and binary identities](data-structure-fixed-final.json). + +To reproduce, obtain the pinned QuickJS source and the external V8 checkout. +For each non-V8 row, retain the entire microbench source, remove its single final +`main(scriptArgs.length, scriptArgs, this);` invocation, then append: + +```js +// Replace CASE and N using the raw report, preserving the literal case label. +console.log("CASE:" + String(CASE(N)) + ":" + String(global_res)); +``` + +For each V8 row concatenate original base.js and that suite file, then append: + +```js +for (var s of BenchmarkSuite.suites) { + for (var b of s.benchmarks) { + b.Setup(); + b.run(); + b.TearDown(); + console.log(s.name + ':' + b.name + ':ok'); + } +} +``` + +Keep generated third-party workloads in the external checkout. Verify every +output against pinned QuickJS before timing. Use the shared benchmark `run_sample` +and `scaling.admit`/`summarize` helpers, 180-second timeout, three repetitions, +rotating engine order on each repetition under `taskset -c 2`. Retain every +stdout/stderr and disqualify a group if any sample fails. The raw report records +the exact generated-file hashes and expected strings. diff --git a/docs/reports/data-structure-hardware-final.json b/docs/reports/data-structure-hardware-final.json new file mode 100644 index 00000000..56641f89 --- /dev/null +++ b/docs/reports/data-structure-hardware-final.json @@ -0,0 +1,1306 @@ +{ + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "837962adc24f10cd05d6c95ec856225c853f5f63", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "M docs/data-structure-plan.md", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "sha256": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "sha256": "e2d9f63260b741c6e6c1a6d9c7d17caffa424ad1f0d24b3b0e34e3398de4e2e6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "quickjs": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "sha256": "2a9c4dd56ce3e75e438e1bbb85858df87e05afdfabbd177ce2682c30e144f3fb", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "--version" + ], + "exit_code": 1, + "stdout": "QuickJS version 2026-06-04\nusage: qjs [options] [file [args]]\n-h --help list options\n-e --eval EXPR evaluate EXPR\n-i --interactive go to interactive mode\n-m --module load as ES6 module (default=autodetect)\n --script load as ES6 script (default=autodetect)\n --strict force strict mode\n-I --include file include an additional file\n --std make 'std' and 'os' available to the loaded script\n-T --trace trace memory allocation\n-d --dump dump the memory usage stats\n --memory-limit n limit the memory usage to 'n' bytes (SI suffixes allowed)\n --stack-size n limit the stack size to 'n' bytes (SI suffixes allowed)\n --no-unhandled-rejection ignore unhandled promise rejections\n-s strip all the debug info\n --strip-source strip the source code\n-q --quit just instantiate the interpreter and quit", + "stderr": "qjs: unknown option '--version'" + }, + "build": null + } + }, + "profile_binary": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "sha256": "12d4f6e21d128cb3f0761fc4e0a93c89decbe086854a3529f2b0c3cedc3d10b6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "samples": [ + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1029895080, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-0.stderr", + "case": "empty_loop", + "engine": "before", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:42 2026\n\n12039310543;;instructions:u;997194041;100.00;;\n4540626149;;cycles:u;997194041;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 869983874, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-0.stderr", + "case": "empty_loop", + "engine": "after", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:43 2026\n\n11047260786;;instructions:u;856613400;100.00;;\n3912813813;;cycles:u;856613400;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 36076176, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-0.stderr", + "case": "empty_loop", + "engine": "quickjs", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:44 2026\n\n561999030;;instructions:u;25475321;100.00;;\n113850929;;cycles:u;25475321;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 880539496, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-1.stderr", + "case": "empty_loop", + "engine": "after", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:44 2026\n\n11047283271;;instructions:u;869587755;100.00;;\n3958325441;;cycles:u;869587755;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 36189779, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-1.stderr", + "case": "empty_loop", + "engine": "quickjs", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:45 2026\n\n561999632;;instructions:u;25423132;100.00;;\n113727119;;cycles:u;25423132;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1027614724, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-1.stderr", + "case": "empty_loop", + "engine": "before", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:45 2026\n\n12039333306;;instructions:u;1016802059;100.00;;\n4640239122;;cycles:u;1016802059;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 36013420, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-quickjs-2.stderr", + "case": "empty_loop", + "engine": "quickjs", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:46 2026\n\n561999643;;instructions:u;25500889;100.00;;\n113975888;;cycles:u;25500889;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1062512361, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-before-2.stderr", + "case": "empty_loop", + "engine": "before", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:46 2026\n\n12039313678;;instructions:u;1052570239;100.00;;\n4804353725;;cycles:u;1052570239;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 882820688, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/empty_loop-after-2.stderr", + "case": "empty_loop", + "engine": "after", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:47 2026\n\n11047246165;;instructions:u;871728108;100.00;;\n3968495718;;cycles:u;871728108;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1071885836, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-0.stderr", + "case": "prop_write", + "engine": "before", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:48 2026\n\n13228749105;;instructions:u;1051976766;100.00;;\n4805992717;;cycles:u;1051976766;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 890065505, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-0.stderr", + "case": "prop_write", + "engine": "after", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:49 2026\n\n11370494757;;instructions:u;878940798;100.00;;\n4009083234;;cycles:u;878940798;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 19892906, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-0.stderr", + "case": "prop_write", + "engine": "quickjs", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:50 2026\n\n137151243;;instructions:u;9218580;100.00;;\n40296153;;cycles:u;9218580;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 883956182, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-1.stderr", + "case": "prop_write", + "engine": "after", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:50 2026\n\n11370493311;;instructions:u;873097768;100.00;;\n3981717764;;cycles:u;873097768;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 18631811, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-1.stderr", + "case": "prop_write", + "engine": "quickjs", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:51 2026\n\n137151996;;instructions:u;9216396;100.00;;\n40220917;;cycles:u;9216396;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1045282710, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-1.stderr", + "case": "prop_write", + "engine": "before", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:51 2026\n\n13228721722;;instructions:u;1034109269;100.00;;\n4722212779;;cycles:u;1034109269;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 20812735, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-quickjs-2.stderr", + "case": "prop_write", + "engine": "quickjs", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:52 2026\n\n137151642;;instructions:u;9196889;100.00;;\n40196186;;cycles:u;9196889;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1028419313, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-before-2.stderr", + "case": "prop_write", + "engine": "before", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:52 2026\n\n13228613194;;instructions:u;1016562296;100.00;;\n4639058620;;cycles:u;1016562296;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/prop_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 888815467, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/prop_write-after-2.stderr", + "case": "prop_write", + "engine": "after", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:53 2026\n\n11370509437;;instructions:u;877454219;100.00;;\n4001547620;;cycles:u;877454219;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1067903690, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-0.stderr", + "case": "array_write", + "engine": "before", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:54 2026\n\n14897863267;;instructions:u;1056509425;100.00;;\n4827050544;;cycles:u;1056509425;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 520553698, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-0.stderr", + "case": "array_write", + "engine": "after", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:55 2026\n\n5852267500;;instructions:u;509440533;100.00;;\n2324400135;;cycles:u;509440533;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16776739, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-0.stderr", + "case": "array_write", + "engine": "quickjs", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:56 2026\n\n67009779;;instructions:u;5880630;100.00;;\n24773723;;cycles:u;5880630;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 513210290, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-1.stderr", + "case": "array_write", + "engine": "after", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:56 2026\n\n5852180229;;instructions:u;502499616;100.00;;\n2293550903;;cycles:u;502499616;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15963751, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-1.stderr", + "case": "array_write", + "engine": "quickjs", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:56 2026\n\n67010480;;instructions:u;5682937;100.00;;\n24076799;;cycles:u;5682937;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1088642385, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-1.stderr", + "case": "array_write", + "engine": "before", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:56 2026\n\n14897863371;;instructions:u;1077854102;100.00;;\n4924814926;;cycles:u;1077854102;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 16426436, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-quickjs-2.stderr", + "case": "array_write", + "engine": "quickjs", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:57 2026\n\n67009194;;instructions:u;5671176;100.00;;\n24153182;;cycles:u;5671176;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1056972668, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-before-2.stderr", + "case": "array_write", + "engine": "before", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:57 2026\n\n14897847903;;instructions:u;1046111874;100.00;;\n4776194671;;cycles:u;1046111874;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/array_write.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 517758501, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/array_write-after-2.stderr", + "case": "array_write", + "engine": "after", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:58 2026\n\n5852275830;;instructions:u;506285677;100.00;;\n2308397554;;cycles:u;506285677;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1059005415, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-0.stderr", + "case": "map_set_string", + "engine": "before", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:32:59 2026\n\n14019338798;;instructions:u;1047574006;100.00;;\n4820927839;;cycles:u;1047574006;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 47048936, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-0.stderr", + "case": "map_set_string", + "engine": "after", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:00 2026\n\n431616067;;instructions:u;37475953;100.00;;\n163019896;;cycles:u;37475953;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-0.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12794322, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-0.stderr", + "case": "map_set_string", + "engine": "quickjs", + "repetition": 0, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:00 2026\n\n44520031;;instructions:u;3504413;100.00;;\n13933389;;cycles:u;3504413;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 47918309, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-1.stderr", + "case": "map_set_string", + "engine": "after", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:00 2026\n\n431600058;;instructions:u;37889331;100.00;;\n164166264;;cycles:u;37889331;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14139976, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-1.stderr", + "case": "map_set_string", + "engine": "quickjs", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:00 2026\n\n44519168;;instructions:u;3506878;100.00;;\n13956973;;cycles:u;3506878;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-1.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1057193827, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-1.stderr", + "case": "map_set_string", + "engine": "before", + "repetition": 1, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:00 2026\n\n14018430937;;instructions:u;1046264051;100.00;;\n4829782825;;cycles:u;1046264051;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12792859, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-quickjs-2.stderr", + "case": "map_set_string", + "engine": "quickjs", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:01 2026\n\n44519728;;instructions:u;3523439;100.00;;\n14065286;;cycles:u;3523439;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1054400770, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-before-2.stderr", + "case": "map_set_string", + "engine": "before", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:01 2026\n\n14018919170;;instructions:u;1044958503;100.00;;\n4819329659;;cycles:u;1044958503;100.00;;\n" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "stat", + "-x", + ";", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-2.stat", + "-e", + "instructions:u,cycles:u", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/map_set_string.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 47920437, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/map_set_string-after-2.stderr", + "case": "map_set_string", + "engine": "after", + "repetition": 2, + "status": "ok", + "stat": "# started on Fri Sep 11 03:33:02 2026\n\n431671559;;instructions:u;37518754;100.00;;\n163269597;;cycles:u;37518754;100.00;;\n" + } + ], + "profiles": [ + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "record", + "-q", + "-e", + "cycles:u", + "-F", + "499", + "--call-graph", + "fp", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-0.data", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 931744013, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-0.stderr", + "case": "empty_loop", + "repetition": 0, + "status": "ok", + "data_sha256": "eeded639a2352546bc0d6eaed54647d6a48e55c0db628d6a578a1d12c02525f5", + "self": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 449 of event 'cycles:u'\n# Event count (approx.): 4083531161\n#\n# Overhead Command Shared Object Symbol \n# ........ ....... .................... ................................................................................................................................\n#\n 22.63% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n | \n |--8.53%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--6.25%--write (inlined)\n | push_mut (inlined)\n | push (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.47%--compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.03%--partial_cmp (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--1.57%--branch (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.12%--push_mut (inlined)\n push (inlined)\n compare bool> (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 19.83% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n | \n |--9.97%--execute_hot_instruction (inlined)\n | | \n | |--7.91%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | execute_inner (inlined)\n | | execute (inlined)\n | | execute_published (inlined)\n | | execute_bytecode_callable (inlined)\n | | {closure#0} (inlined)\n | | call_internal (inlined)\n | | call_value_internal (inlined)\n | | call_with_borrowed_arguments (inlined)\n | | call_from_stack (inlined)\n | | branch (inlined)\n | | execute_call_instruction (inlined)\n | | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | execute_inner (inlined)\n | | execute (inlined)\n | | execute_published (inlined)\n | | execute_bytecode_callable (inlined)\n | | {closure#0} (inlined)\n | | call_internal (inlined)\n | | call (inlined)\n | | execute (inlined)\n | | {closure#0} (inlined)\n | | eval_compiling_with_options (inlined)\n | | eval_bytes_with_options (inlined)\n | | try_allocate_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | to_vec (inlined)\n | | to_vec_in (inlined)\n | | to_vec (inlined)\n | | to_owned (inlined)\n | | to_owned (inlined)\n | | from (inlined)\n | | into<&str, alloc::string::String> (inlined)\n | | new<&str> (inlined)\n | | eval_bytes_with_filename (inlined)\n | | evaluate (inlined)\n | | main (inlined)\n | | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | | as_i32 (inlined)\n | | to_i32 (inlined)\n | | {closure#0} (inlined)\n | | {closure#0} (inlined)\n | | do_call (inlined)\n | | catch_unwind (inlined)\n | | catch_unwind (inlined)\n | | lang_start_internal (inlined)\n | | main\n | | 0x7fbad7627781\n | | call_init (inlined)\n | | __libc_start_main_impl (inlined)\n | | _start\n | | \n | --2.06%--execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --9.34%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 15.08% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n | \n --14.63%--read_frame_binding (inlined)\n | \n |--7.63%--get_local (inlined)\n | branch (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --7.00%--get_argument (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 13.28% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n | \n |--4.74%--execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--3.37%--update_active_bytecode_pc (inlined)\n | | \n | --3.15%--update_active_bytecode_pc (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.12%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 7.85% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop\n | \n |--4.71%--read (inlined)\n | pop (inlined)\n | pop (inlined)\n | branch (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.57%--pop (inlined)\n | \n --1.12%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.94% qjs qjs [.] alloc::vec::Vec::push_mut\n | \n |--3.14%--write (inlined)\n | push_mut (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.57%--add (inlined)\n push_mut (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.48% qjs qjs [.] ::get_local\n | \n --3.36%--get_local (inlined)\n | \n |--1.79%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fbad7627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.57%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.34% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n |\n ---to_numeric_primitive (inlined)\n | \n --1.68%--compare bool> (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.26% qjs qjs [.] quickjs_oxide::engine::value::Value::to_number\n | \n --2.04%--to_number (inlined)\n branch (inlined)\n to_numeric_primitive (inlined)\n | \n --1.12%--compare bool> (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.56% qjs qjs [.] quickjs_oxide::engine::object::storage::::value_to_boolean\n | \n --1.33%--to_boolean_primitive (inlined)\n value_to_boolean (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.33% qjs qjs [.] quickjs_oxide::engine::vm::activation::checked_target\n |\n ---checked_target (inlined)\n | \n --1.12%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.31% qjs qjs [.] core::ptr::drop_in_place\n |\n ---drop_in_place (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fbad7627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n\n\n#\n# (Tip: Search options using a keyword: perf report -h )\n#\n", + "self_stderr": "", + "children": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 449 of event 'cycles:u'\n# Event count (approx.): 4083531161\n#\n# Children Self Command Shared Object Symbol \n# ........ ........ ....... .................... .............................................................................................................................................................................................................................\n#\n 100.00% 0.00% qjs qjs [.] _start\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] __libc_start_main_impl (inlined)\n |\n ---__libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] call_init (inlined)\n |\n ---call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] 0x00007fbad7627781\n |\n ---0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] main\n |\n ---main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n | \n |--95.90%--eval_bytes_with_options (inlined)\n | eval_compiling_with_options (inlined)\n | {closure#0} (inlined)\n | execute (inlined)\n | call (inlined)\n | call_internal (inlined)\n | {closure#0} (inlined)\n | execute_bytecode_callable (inlined)\n | execute_published (inlined)\n | execute (inlined)\n | execute_inner (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_call_instruction (inlined)\n | branch (inlined)\n | call_from_stack (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | call_internal (inlined)\n | {closure#0} (inlined)\n | execute_bytecode_callable (inlined)\n | execute_published (inlined)\n | execute (inlined)\n | | \n | |--94.10%--execute_inner (inlined)\n | | | \n | | |--82.19%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--51.10%--execute_hot_instruction (inlined)\n | | | | | \n | | | | |--33.63%--branch (inlined)\n | | | | | | \n | | | | | |--10.33%--get_local (inlined)\n | | | | | | | \n | | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | | \n | | | | | |--7.41%--pop (inlined)\n | | | | | | | \n | | | | | | --5.83%--pop (inlined)\n | | | | | | | \n | | | | | | --4.71%--read (inlined)\n | | | | | | \n | | | | | --7.17%--get_argument (inlined)\n | | | | | | \n | | | | | --6.94%--read_frame_binding (inlined)\n | | | | | \n | | | | |--4.94%--push_mut (inlined)\n | | | | | | \n | | | | | |--3.14%--write (inlined)\n | | | | | | \n | | | | | --1.57%--add (inlined)\n | | | | | \n | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | --1.56%--value_to_boolean (inlined)\n | | | | | | \n | | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | | \n | | | | |--1.35%--branch (inlined)\n | | | | | | \n | | | | | --1.12%--checked_target (inlined)\n | | | | | \n | | | | --1.31%--drop_in_place (inlined)\n | | | | \n | | | |--26.87%--execute_numeric_instruction (inlined)\n | | | | | \n | | | | --25.99%--compare bool> (inlined)\n | | | | | \n | | | | |--8.52%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | \n | | | | |--7.37%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | | \n | | | | | --6.25%--write (inlined)\n | | | | | \n | | | | |--3.15%--to_numeric_primitive (inlined)\n | | | | | | \n | | | | | --1.35%--branch (inlined)\n | | | | | to_number (inlined)\n | | | | | \n | | | | |--2.69%--branch (inlined)\n | | | | | | \n | | | | | --1.11%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.80%--partial_cmp (inlined)\n | | | | \n | | | --1.79%--get_local (inlined)\n | | | \n | | |--5.39%--update_active_bytecode_pc (inlined)\n | | | | \n | | | --5.17%--update_active_bytecode_pc (inlined)\n | | | \n | | --1.12%--checked_add (inlined)\n | | \n | --1.80%--execute_hot_instruction (inlined)\n | \n --4.10%--0x55a27d9618d3\n 0x55a27d9618d3\n 0x55a27d9618d3\n | \n --3.47%--0x55a27d9606ab\n 0x55a27d9606ab\n 0x55a27d6ed7a1\n 0x55a27d6ed7a1\n 0x55a27d51dacf\n 0x55a27d8e36e3\n 0x55a27d947195\n 0x55a27d945a81\n 0x55a27d945a81\n 0x55a27d953d02\n 0x55a27d953d02\n 0x55a27d94615c\n 0x55a27d94615c\n 0x55a27d5b5fe8\n 0x55a27d6ed7a1\n 0x55a27d6ed7a1\n 0x55a27d51dacf\n 0x55a27d8e36e3\n 0x55a27d947195\n | \n --3.21%--0x55a27d945acd\n | \n --2.96%--0x55a27d945acd\n | \n |--1.92%--0x55a27d94d5c6\n | | \n | --1.12%--0x55a27d94d5c6\n | \n --1.04%--0x55a27d95c761\n 0x55a27d95c761\n\n 100.00% 0.00% qjs qjs [.] lang_start_internal (inlined)\n |\n ---lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] do_call (inlined)\n |\n ---do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_i32 (inlined)\n |\n ---to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] as_i32 (inlined)\n |\n ---as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n |\n ---__rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] main (inlined)\n |\n ---main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] evaluate (inlined)\n |\n ---evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] eval_bytes_with_filename (inlined)\n |\n ---eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] new<&str> (inlined)\n |\n ---new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] into<&str, alloc::string::String> (inlined)\n |\n ---into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] from (inlined)\n |\n ---from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_vec_in (inlined)\n |\n ---to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] try_allocate_in (inlined)\n |\n ---try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] eval_bytes_with_options (inlined)\n |\n ---eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] eval_compiling_with_options (inlined)\n |\n ---eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n | \n --99.37%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] call (inlined)\n |\n ---call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] call_internal (inlined)\n |\n ---call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] execute_bytecode_callable (inlined)\n |\n ---execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] execute_published (inlined)\n |\n ---execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] execute_inner (inlined)\n |\n ---execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] execute_call_instruction (inlined)\n |\n ---execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] call_from_stack (inlined)\n |\n ---call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] call_with_borrowed_arguments (inlined)\n |\n ---call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 99.37% 0.00% qjs qjs [.] call_value_internal (inlined)\n |\n ---call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.31%--execute_inner (inlined)\n | | \n | |--85.15%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--53.02%--execute_hot_instruction (inlined)\n | | | | \n | | | |--34.75%--branch (inlined)\n | | | | | \n | | | | |--10.56%--get_local (inlined)\n | | | | | | \n | | | | | --7.86%--read_frame_binding (inlined)\n | | | | | \n | | | | |--7.45%--get_argument (inlined)\n | | | | | | \n | | | | | --7.22%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.41%--pop (inlined)\n | | | | | \n | | | | --5.83%--pop (inlined)\n | | | | | \n | | | | --4.71%--read (inlined)\n | | | | \n | | | |--4.94%--push_mut (inlined)\n | | | | | \n | | | | |--3.14%--write (inlined)\n | | | | | \n | | | | --1.57%--add (inlined)\n | | | | \n | | | |--2.08%--branch (inlined)\n | | | | | \n | | | | --1.56%--value_to_boolean (inlined)\n | | | | | \n | | | | --1.33%--to_boolean_primitive (inlined)\n | | | | \n | | | |--1.35%--branch (inlined)\n | | | | | \n | | | | --1.12%--checked_target (inlined)\n | | | | \n | | | --1.31%--drop_in_place (inlined)\n | | | \n | | |--27.90%--execute_numeric_instruction (inlined)\n | | | | \n | | | --27.02%--compare bool> (inlined)\n | | | | \n | | | |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.37%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.25%--write (inlined)\n | | | | \n | | | |--3.48%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.35%--branch (inlined)\n | | | | to_number (inlined)\n | | | | \n | | | |--2.93%--branch (inlined)\n | | | | | \n | | | | --1.35%--to_numeric_primitive (inlined)\n | | | | \n | | | --2.03%--partial_cmp (inlined)\n | | | \n | | --1.79%--get_local (inlined)\n | | \n | |--5.39%--update_active_bytecode_pc (inlined)\n | | | \n | | --5.17%--update_active_bytecode_pc (inlined)\n | | \n | --1.12%--checked_add (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 55.08% 0.00% qjs qjs [.] execute_hot_instruction (inlined)\n |\n ---execute_hot_instruction (inlined)\n | \n |--34.75%--branch (inlined)\n | | \n | |--10.56%--get_local (inlined)\n | | | \n | | --7.86%--read_frame_binding (inlined)\n | | \n | |--7.45%--get_argument (inlined)\n | | | \n | | --7.22%--read_frame_binding (inlined)\n | | \n | --7.41%--pop (inlined)\n | | \n | --5.83%--pop (inlined)\n | | \n | --4.71%--read (inlined)\n | \n |--4.94%--push_mut (inlined)\n | | \n | |--3.14%--write (inlined)\n | | \n | --1.57%--add (inlined)\n | \n |--2.08%--branch (inlined)\n | | \n | --1.56%--value_to_boolean (inlined)\n | | \n | --1.33%--to_boolean_primitive (inlined)\n | \n |--1.35%--branch (inlined)\n | | \n | --1.12%--checked_target (inlined)\n | \n --1.31%--drop_in_place (inlined)\n\n 34.75% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n |--10.56%--get_local (inlined)\n | | \n | --7.86%--read_frame_binding (inlined)\n | \n |--7.45%--get_argument (inlined)\n | | \n | --7.22%--read_frame_binding (inlined)\n | \n --7.41%--pop (inlined)\n | \n --5.83%--pop (inlined)\n | \n --4.71%--read (inlined)\n\n 27.90% 0.00% qjs qjs [.] execute_numeric_instruction (inlined)\n |\n ---execute_numeric_instruction (inlined)\n | \n --27.02%--compare bool> (inlined)\n | \n |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--7.37%--push (inlined)\n | push_mut (inlined)\n | | \n | --6.25%--write (inlined)\n | \n |--3.48%--to_numeric_primitive (inlined)\n | | \n | --1.35%--branch (inlined)\n | to_number (inlined)\n | \n |--2.93%--branch (inlined)\n | | \n | --1.35%--to_numeric_primitive (inlined)\n | \n --2.03%--partial_cmp (inlined)\n\n 27.02% 0.00% qjs qjs [.] compare bool> (inlined)\n |\n ---compare bool> (inlined)\n | \n |--8.75%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--7.37%--push (inlined)\n | push_mut (inlined)\n | | \n | --6.25%--write (inlined)\n | \n |--3.48%--to_numeric_primitive (inlined)\n | | \n | --1.35%--branch (inlined)\n | to_number (inlined)\n | \n |--2.93%--branch (inlined)\n | | \n | --1.35%--to_numeric_primitive (inlined)\n | \n --2.03%--partial_cmp (inlined)\n\n 22.63% 22.63% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n | \n --21.97%--compare bool> (inlined)\n | \n |--8.53%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--7.37%--push (inlined)\n | push_mut (inlined)\n | | \n | --6.25%--write (inlined)\n | \n |--2.03%--partial_cmp (inlined)\n | \n --1.57%--branch (inlined)\n\n 19.83% 19.83% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--17.77%--execute_inner (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_hot_instruction (inlined)\n | | \n | --9.34%--branch (inlined)\n | \n --2.06%--execute_hot_instruction (inlined)\n\n 15.08% 15.08% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n | \n |--7.86%--get_local (inlined)\n | read_frame_binding (inlined)\n | \n --7.22%--get_argument (inlined)\n read_frame_binding (inlined)\n\n 15.08% 0.00% qjs qjs [.] read_frame_binding (inlined)\n |\n ---read_frame_binding (inlined)\n\n 13.28% 13.28% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--5.39%--update_active_bytecode_pc (inlined)\n | | \n | --5.17%--update_active_bytecode_pc (inlined)\n | \n |--1.12%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.12%--checked_add (inlined)\n\n 12.34% 0.00% qjs qjs [.] get_local (inlined)\n |\n ---get_local (inlined)\n | \n --7.86%--read_frame_binding (inlined)\n\n 8.75% 0.00% qjs qjs [.] branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n\n 7.85% 7.85% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --7.41%--execute_hot_instruction (inlined)\n branch (inlined)\n pop (inlined)\n | \n --5.83%--pop (inlined)\n | \n --4.71%--read (inlined)\n\n 7.85% 0.00% qjs qjs [.] pop (inlined)\n |\n ---pop (inlined)\n | \n --5.83%--pop (inlined)\n | \n --4.71%--read (inlined)\n\n 7.67% 0.00% qjs qjs [.] get_argument (inlined)\n |\n ---get_argument (inlined)\n | \n --7.22%--read_frame_binding (inlined)\n\n 7.37% 0.00% qjs qjs [.] push (inlined)\n |\n ---push (inlined)\n push_mut (inlined)\n | \n --6.25%--write (inlined)\n\n 7.37% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n --6.25%--write (inlined)\n\n 6.25% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 5.83% 0.00% qjs qjs [.] pop (inlined)\n |\n ---pop (inlined)\n | \n --4.71%--read (inlined)\n\n 5.39% 0.00% qjs qjs [.] update_active_bytecode_pc (inlined)\n |\n ---update_active_bytecode_pc (inlined)\n | \n --5.17%--update_active_bytecode_pc (inlined)\n\n 5.28% 0.00% qjs qjs [.] to_numeric_primitive (inlined)\n |\n ---to_numeric_primitive (inlined)\n | \n --2.26%--branch (inlined)\n to_number (inlined)\n\n 4.94% 4.94% qjs qjs [.] alloc::vec::Vec::push_mut\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n push_mut (inlined)\n | \n |--3.14%--write (inlined)\n | \n --1.57%--add (inlined)\n\n 4.94% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n |--3.14%--write (inlined)\n | \n --1.57%--add (inlined)\n\n 4.71% 0.00% qjs qjs [.] read (inlined)\n |\n ---read (inlined)\n\n 4.48% 4.48% qjs qjs [.] ::get_local\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--2.70%--execute_hot_instruction (inlined)\n | branch (inlined)\n | get_local (inlined)\n | \n --1.79%--get_local (inlined)\n\n 3.14% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 2.93% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --1.35%--to_numeric_primitive (inlined)\n\n 2.34% 2.34% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.89%--execute_numeric_instruction (inlined)\n compare bool> (inlined)\n | \n --1.68%--to_numeric_primitive (inlined)\n\n 2.26% 2.26% qjs qjs [.] quickjs_oxide::engine::value::Value::to_number\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n compare bool> (inlined)\n | \n --1.35%--to_numeric_primitive (inlined)\n branch (inlined)\n to_number (inlined)\n\n 2.26% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n to_number (inlined)\n\n 2.26% 0.00% qjs qjs [.] to_number (inlined)\n |\n ---to_number (inlined)\n\n 2.08% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --1.56%--value_to_boolean (inlined)\n | \n --1.33%--to_boolean_primitive (inlined)\n\n 2.03% 0.00% qjs qjs [.] partial_cmp (inlined)\n |\n ---partial_cmp (inlined)\n\n 1.57% 0.00% qjs qjs [.] add (inlined)\n |\n ---add (inlined)\n\n 1.56% 1.56% qjs qjs [.] quickjs_oxide::engine::object::storage::::value_to_boolean\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n value_to_boolean (inlined)\n | \n --1.33%--to_boolean_primitive (inlined)\n\n 1.56% 0.00% qjs qjs [.] value_to_boolean (inlined)\n |\n ---value_to_boolean (inlined)\n | \n --1.33%--to_boolean_primitive (inlined)\n\n 1.35% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --1.12%--checked_target (inlined)\n\n 1.33% 0.00% qjs qjs [.] to_boolean_primitive (inlined)\n |\n ---to_boolean_primitive (inlined)\n\n 1.33% 1.33% qjs qjs [.] quickjs_oxide::engine::vm::activation::checked_target\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.12%--execute_hot_instruction (inlined)\n branch (inlined)\n checked_target (inlined)\n\n 1.33% 0.00% qjs qjs [.] checked_target (inlined)\n |\n ---checked_target (inlined)\n\n 1.31% 1.31% qjs qjs [.] core::ptr::drop_in_place\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fbad7627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n drop_in_place (inlined)\n\n 1.31% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n\n 1.12% 0.00% qjs qjs [.] checked_add (inlined)\n |\n ---checked_add (inlined)\n\n\n\n#\n# (Tip: Use parent filter to see specific call path: perf report -p )\n#\n", + "children_stderr": "" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "record", + "-q", + "-e", + "cycles:u", + "-F", + "499", + "--call-graph", + "fp", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-1.data", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 929068698, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-1.stderr", + "case": "empty_loop", + "repetition": 1, + "status": "ok", + "data_sha256": "c42f0f91d5067d296d7b80cafc9bf8f837f5739d700fdad6fadd779c470f3964", + "self": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 435 of event 'cycles:u'\n# Event count (approx.): 3965799788\n#\n# Overhead Command Shared Object Symbol \n# ........ ....... .................... ................................................................................................................................\n#\n 24.85% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n | \n |--13.93%--execute_hot_instruction (inlined)\n | | \n | --13.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --10.70%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f4cd7227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 23.78% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---read_frame_binding (inlined)\n | \n |--13.92%--get_local (inlined)\n | branch (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --9.86%--get_argument (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f4cd7227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 19.27% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n | \n |--6.69%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--5.11%--write (inlined)\n | push_mut (inlined)\n | push (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--3.00%--compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.15%--partial_cmp (inlined)\n compare bool> (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f4cd7227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 10.34% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n | \n |--3.01%--update_active_bytecode_pc (inlined)\n | | \n | --2.08%--update_active_bytecode_pc (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.96%--execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --2.53%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f4cd7227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 7.85% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop\n | \n --6.00%--read (inlined)\n pop (inlined)\n pop (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f4cd7227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 3.44% qjs qjs [.] alloc::vec::Vec::push_mut\n | \n |--1.38%--write (inlined)\n | push_mut (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f4cd7227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.14%--push_mut (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f4cd7227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.30% qjs qjs [.] core::ptr::drop_in_place\n |\n ---drop_in_place (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f4cd7227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.16% qjs qjs [.] quickjs_oxide::engine::value::Value::to_number\n 1.16% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n\n\n#\n# (Tip: To see call chains by final symbol taking CPU time (bottom up) use perf report -G)\n#\n", + "self_stderr": "", + "children": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 435 of event 'cycles:u'\n# Event count (approx.): 3965799788\n#\n# Children Self Command Shared Object Symbol \n# ........ ........ ....... .................... ................................................................................................................................................................................................................................................................................................................\n#\n 100.00% 0.00% qjs qjs [.] _start\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] __libc_start_main_impl (inlined)\n |\n ---__libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] call_init (inlined)\n |\n ---call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] 0x00007f4cd7227781\n |\n ---0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] main\n |\n ---main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n | \n --99.82%--evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] lang_start_internal (inlined)\n |\n ---lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] do_call (inlined)\n |\n ---do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_i32 (inlined)\n |\n ---to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] as_i32 (inlined)\n |\n ---as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n |\n ---__rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] main (inlined)\n |\n ---main (inlined)\n evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] evaluate (inlined)\n |\n ---evaluate (inlined)\n | \n --99.82%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] eval_bytes_with_filename (inlined)\n |\n ---eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] new<&str> (inlined)\n |\n ---new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] into<&str, alloc::string::String> (inlined)\n |\n ---into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] from (inlined)\n |\n ---from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] to_vec_in (inlined)\n |\n ---to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] try_allocate_in (inlined)\n |\n ---try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] eval_bytes_with_options (inlined)\n |\n ---eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] eval_compiling_with_options (inlined)\n |\n ---eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.82% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n | \n --99.27%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] call (inlined)\n |\n ---call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] call_internal (inlined)\n |\n ---call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] execute_bytecode_callable (inlined)\n |\n ---execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] execute_published (inlined)\n |\n ---execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] execute_inner (inlined)\n |\n ---execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] execute_call_instruction (inlined)\n |\n ---execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] call_from_stack (inlined)\n |\n ---call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] call_with_borrowed_arguments (inlined)\n |\n ---call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 99.27% 0.00% qjs qjs [.] call_value_internal (inlined)\n |\n ---call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.81%--execute_inner (inlined)\n | \n |--91.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--64.54%--execute_hot_instruction (inlined)\n | | | \n | | |--42.79%--branch (inlined)\n | | | | \n | | | |--13.92%--get_local (inlined)\n | | | | read_frame_binding (inlined)\n | | | | \n | | | |--10.32%--get_argument (inlined)\n | | | | | \n | | | | --9.86%--read_frame_binding (inlined)\n | | | | \n | | | --7.85%--pop (inlined)\n | | | | \n | | | --7.16%--pop (inlined)\n | | | | \n | | | --6.00%--read (inlined)\n | | | \n | | |--3.44%--push_mut (inlined)\n | | | | \n | | | --1.38%--write (inlined)\n | | | \n | | |--2.30%--drop_in_place (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | --22.97%--execute_numeric_instruction (inlined)\n | | \n | --21.07%--compare bool> (inlined)\n | | \n | |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--6.04%--push (inlined)\n | | push_mut (inlined)\n | | | \n | | --5.11%--write (inlined)\n | | \n | |--1.85%--to_numeric_primitive (inlined)\n | | | \n | | --1.39%--branch (inlined)\n | | \n | |--1.64%--branch (inlined)\n | | \n | --1.15%--partial_cmp (inlined)\n | \n --4.62%--update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 65.01% 0.00% qjs qjs [.] execute_hot_instruction (inlined)\n |\n ---execute_hot_instruction (inlined)\n | \n |--42.79%--branch (inlined)\n | | \n | |--13.92%--get_local (inlined)\n | | read_frame_binding (inlined)\n | | \n | |--10.32%--get_argument (inlined)\n | | | \n | | --9.86%--read_frame_binding (inlined)\n | | \n | --7.85%--pop (inlined)\n | | \n | --7.16%--pop (inlined)\n | | \n | --6.00%--read (inlined)\n | \n |--3.44%--push_mut (inlined)\n | | \n | --1.38%--write (inlined)\n | \n |--2.30%--drop_in_place (inlined)\n | \n --1.39%--branch (inlined)\n\n 42.79% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n |--13.92%--get_local (inlined)\n | read_frame_binding (inlined)\n | \n |--10.32%--get_argument (inlined)\n | | \n | --9.86%--read_frame_binding (inlined)\n | \n --7.85%--pop (inlined)\n | \n --7.16%--pop (inlined)\n | \n --6.00%--read (inlined)\n\n 24.85% 24.85% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --24.39%--execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n | \n --10.70%--branch (inlined)\n\n 23.78% 23.78% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n | \n |--13.92%--get_local (inlined)\n | read_frame_binding (inlined)\n | \n --9.86%--get_argument (inlined)\n read_frame_binding (inlined)\n\n 23.78% 0.00% qjs qjs [.] read_frame_binding (inlined)\n |\n ---read_frame_binding (inlined)\n\n 22.97% 0.00% qjs qjs [.] execute_numeric_instruction (inlined)\n |\n ---execute_numeric_instruction (inlined)\n | \n --21.07%--compare bool> (inlined)\n | \n |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--6.04%--push (inlined)\n | push_mut (inlined)\n | | \n | --5.11%--write (inlined)\n | \n |--1.85%--to_numeric_primitive (inlined)\n | | \n | --1.39%--branch (inlined)\n | \n |--1.64%--branch (inlined)\n | \n --1.15%--partial_cmp (inlined)\n\n 21.07% 0.00% qjs qjs [.] compare bool> (inlined)\n |\n ---compare bool> (inlined)\n | \n |--6.92%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--6.04%--push (inlined)\n | push_mut (inlined)\n | | \n | --5.11%--write (inlined)\n | \n |--1.85%--to_numeric_primitive (inlined)\n | | \n | --1.39%--branch (inlined)\n | \n |--1.64%--branch (inlined)\n | \n --1.15%--partial_cmp (inlined)\n\n 19.27% 19.27% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n | \n --18.06%--compare bool> (inlined)\n | \n |--6.69%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--6.04%--push (inlined)\n | push_mut (inlined)\n | | \n | --5.11%--write (inlined)\n | \n --1.15%--partial_cmp (inlined)\n\n 14.66% 0.00% qjs qjs [.] get_local (inlined)\n |\n ---get_local (inlined)\n | \n --13.92%--read_frame_binding (inlined)\n\n 10.34% 10.34% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--4.62%--update_active_bytecode_pc (inlined)\n | | \n | --3.69%--update_active_bytecode_pc (inlined)\n | \n --2.53%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n\n 10.32% 0.00% qjs qjs [.] get_argument (inlined)\n |\n ---get_argument (inlined)\n | \n --9.86%--read_frame_binding (inlined)\n\n 7.85% 7.85% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n pop (inlined)\n | \n --7.16%--pop (inlined)\n | \n --6.00%--read (inlined)\n\n 7.85% 0.00% qjs qjs [.] pop (inlined)\n |\n ---pop (inlined)\n | \n --7.16%--pop (inlined)\n | \n --6.00%--read (inlined)\n\n 7.16% 0.00% qjs qjs [.] pop (inlined)\n |\n ---pop (inlined)\n | \n --6.00%--read (inlined)\n\n 6.92% 0.00% qjs qjs [.] branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n\n 6.04% 0.00% qjs qjs [.] push (inlined)\n |\n ---push (inlined)\n push_mut (inlined)\n | \n --5.11%--write (inlined)\n\n 6.04% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n --5.11%--write (inlined)\n\n 6.00% 0.00% qjs qjs [.] read (inlined)\n |\n ---read (inlined)\n\n 5.11% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 4.62% 0.00% qjs qjs [.] update_active_bytecode_pc (inlined)\n |\n ---update_active_bytecode_pc (inlined)\n | \n --3.69%--update_active_bytecode_pc (inlined)\n\n 3.44% 3.44% qjs qjs [.] alloc::vec::Vec::push_mut\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n push_mut (inlined)\n | \n --1.38%--write (inlined)\n\n 3.44% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n --1.38%--write (inlined)\n\n 2.78% 0.00% qjs qjs [.] to_numeric_primitive (inlined)\n |\n ---to_numeric_primitive (inlined)\n | \n --1.39%--branch (inlined)\n\n 2.30% 2.30% qjs qjs [.] core::ptr::drop_in_place\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n drop_in_place (inlined)\n\n 2.30% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n\n 1.64% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.39% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.39% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.38% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 1.16% 1.16% qjs qjs [.] quickjs_oxide::engine::value::Value::to_number\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n compare bool> (inlined)\n\n 1.16% 0.00% qjs qjs [.] to_number (inlined)\n |\n ---to_number (inlined)\n\n 1.16% 1.16% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f4cd7227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n\n 1.15% 0.00% qjs qjs [.] partial_cmp (inlined)\n |\n ---partial_cmp (inlined)\n\n\n\n#\n# (Tip: To see call chains by final symbol taking CPU time (bottom up) use perf report -G)\n#\n", + "children_stderr": "" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "record", + "-q", + "-e", + "cycles:u", + "-F", + "499", + "--call-graph", + "fp", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-2.data", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 957452254, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-empty_loop-2.stderr", + "case": "empty_loop", + "repetition": 2, + "status": "ok", + "data_sha256": "b8961594becbb8f2b73007731d31c955487ad96995148665aa010844f2f473ce", + "self": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 441 of event 'cycles:u'\n# Event count (approx.): 4042985099\n#\n# Overhead Command Shared Object Symbol \n# ........ ....... .................... ................................................................................................................................\n#\n 21.13% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n | \n |--11.23%--execute_hot_instruction (inlined)\n | | \n | |--10.10%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | execute_inner (inlined)\n | | execute (inlined)\n | | execute_published (inlined)\n | | execute_bytecode_callable (inlined)\n | | {closure#0} (inlined)\n | | call_internal (inlined)\n | | call_value_internal (inlined)\n | | call_with_borrowed_arguments (inlined)\n | | call_from_stack (inlined)\n | | branch (inlined)\n | | execute_call_instruction (inlined)\n | | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | execute_inner (inlined)\n | | execute (inlined)\n | | execute_published (inlined)\n | | execute_bytecode_callable (inlined)\n | | {closure#0} (inlined)\n | | call_internal (inlined)\n | | call (inlined)\n | | execute (inlined)\n | | {closure#0} (inlined)\n | | eval_compiling_with_options (inlined)\n | | eval_bytes_with_options (inlined)\n | | try_allocate_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | to_vec (inlined)\n | | to_vec_in (inlined)\n | | to_vec (inlined)\n | | to_owned (inlined)\n | | to_owned (inlined)\n | | from (inlined)\n | | into<&str, alloc::string::String> (inlined)\n | | new<&str> (inlined)\n | | eval_bytes_with_filename (inlined)\n | | evaluate (inlined)\n | | main (inlined)\n | | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | | as_i32 (inlined)\n | | to_i32 (inlined)\n | | {closure#0} (inlined)\n | | {closure#0} (inlined)\n | | do_call (inlined)\n | | catch_unwind (inlined)\n | | catch_unwind (inlined)\n | | lang_start_internal (inlined)\n | | main\n | | 0x7f3e98427781\n | | call_init (inlined)\n | | __libc_start_main_impl (inlined)\n | | _start\n | | \n | --1.13%--execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --9.67%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 20.42% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n | \n |--8.62%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--6.13%--write (inlined)\n | push_mut (inlined)\n | push (inlined)\n | compare bool> (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --2.27%--compare bool> (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 18.29% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n | \n --17.37%--read_frame_binding (inlined)\n | \n |--8.96%--get_local (inlined)\n | branch (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --8.41%--get_argument (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 11.11% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n | \n |--5.44%--execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.27%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --2.04%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 9.38% qjs qjs [.] alloc::vec::Vec::push_mut\n | \n |--7.31%--write (inlined)\n | push_mut (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.35%--push_mut (inlined)\n\n 7.91% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop\n | \n |--5.20%--read (inlined)\n | pop (inlined)\n | pop (inlined)\n | branch (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f3e98427781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.81%--pop (inlined)\n | \n --1.58%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.26% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n | \n --2.04%--to_numeric_primitive (inlined)\n | \n --1.35%--compare bool> (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.79% qjs qjs [.] ::get_local\n | \n --1.35%--get_local (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.61% qjs qjs [.] quickjs_oxide::engine::value::Value::to_number\n |\n ---to_number (inlined)\n | \n --1.38%--branch (inlined)\n to_numeric_primitive (inlined)\n | \n --1.15%--compare bool> (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f3e98427781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n\n\n#\n# (Tip: See assembly instructions with percentage: perf annotate )\n#\n", + "self_stderr": "", + "children": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 441 of event 'cycles:u'\n# Event count (approx.): 4042985099\n#\n# Children Self Command Shared Object Symbol \n# ........ ........ ....... .................... ........................................................................................................................................................................................................................................................................................................................................................................\n#\n 100.00% 0.00% qjs qjs [.] _start\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] __libc_start_main_impl (inlined)\n |\n ---__libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] call_init (inlined)\n |\n ---call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] 0x00007f3e98427781\n |\n ---0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] lang_start_internal (inlined)\n |\n ---lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] do_call (inlined)\n |\n ---do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_i32 (inlined)\n |\n ---to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] as_i32 (inlined)\n |\n ---as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n |\n ---__rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] main (inlined)\n |\n ---main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] evaluate (inlined)\n |\n ---evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] eval_bytes_with_filename (inlined)\n |\n ---eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] main\n |\n ---main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n | \n --99.76%--eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] new<&str> (inlined)\n |\n ---new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] into<&str, alloc::string::String> (inlined)\n |\n ---into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] from (inlined)\n |\n ---from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_vec_in (inlined)\n |\n ---to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] try_allocate_in (inlined)\n |\n ---try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] eval_bytes_with_options (inlined)\n |\n ---eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] eval_compiling_with_options (inlined)\n |\n ---eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n | \n --99.76%--execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.76% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n | \n --99.11%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] call (inlined)\n |\n ---call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] call_internal (inlined)\n |\n ---call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] execute_bytecode_callable (inlined)\n |\n ---execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] execute_published (inlined)\n |\n ---execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] execute_inner (inlined)\n |\n ---execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] execute_call_instruction (inlined)\n |\n ---execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] call_from_stack (inlined)\n |\n ---call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] call_with_borrowed_arguments (inlined)\n |\n ---call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 99.11% 0.00% qjs qjs [.] call_value_internal (inlined)\n |\n ---call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--97.98%--execute_inner (inlined)\n | | \n | |--88.90%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | |--58.51%--execute_hot_instruction (inlined)\n | | | | \n | | | |--36.31%--branch (inlined)\n | | | | | \n | | | | |--10.32%--get_local (inlined)\n | | | | | | \n | | | | | --9.88%--read_frame_binding (inlined)\n | | | | | \n | | | | |--8.64%--get_argument (inlined)\n | | | | | | \n | | | | | --8.41%--read_frame_binding (inlined)\n | | | | | \n | | | | --7.69%--pop (inlined)\n | | | | | \n | | | | --5.43%--pop (inlined)\n | | | | | \n | | | | --5.20%--read (inlined)\n | | | | \n | | | |--8.94%--push_mut (inlined)\n | | | | | \n | | | | --7.31%--write (inlined)\n | | | | \n | | | --1.11%--branch (inlined)\n | | | \n | | |--25.42%--execute_numeric_instruction (inlined)\n | | | | \n | | | --24.52%--compare bool> (inlined)\n | | | | \n | | | |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | |--7.04%--push (inlined)\n | | | | push_mut (inlined)\n | | | | | \n | | | | --6.13%--write (inlined)\n | | | | \n | | | |--3.19%--to_numeric_primitive (inlined)\n | | | | | \n | | | | --1.38%--branch (inlined)\n | | | | | \n | | | | --1.15%--to_number (inlined)\n | | | | \n | | | --1.58%--branch (inlined)\n | | | \n | | --1.35%--get_local (inlined)\n | | \n | --3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 59.64% 0.00% qjs qjs [.] execute_hot_instruction (inlined)\n |\n ---execute_hot_instruction (inlined)\n | \n |--36.31%--branch (inlined)\n | | \n | |--10.32%--get_local (inlined)\n | | | \n | | --9.88%--read_frame_binding (inlined)\n | | \n | |--8.64%--get_argument (inlined)\n | | | \n | | --8.41%--read_frame_binding (inlined)\n | | \n | --7.69%--pop (inlined)\n | | \n | --5.43%--pop (inlined)\n | | \n | --5.20%--read (inlined)\n | \n |--8.94%--push_mut (inlined)\n | | \n | --7.31%--write (inlined)\n | \n --1.11%--branch (inlined)\n\n 36.31% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n |--10.32%--get_local (inlined)\n | | \n | --9.88%--read_frame_binding (inlined)\n | \n |--8.64%--get_argument (inlined)\n | | \n | --8.41%--read_frame_binding (inlined)\n | \n --7.69%--pop (inlined)\n | \n --5.43%--pop (inlined)\n | \n --5.20%--read (inlined)\n\n 25.42% 0.00% qjs qjs [.] execute_numeric_instruction (inlined)\n |\n ---execute_numeric_instruction (inlined)\n | \n --24.52%--compare bool> (inlined)\n | \n |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--7.04%--push (inlined)\n | push_mut (inlined)\n | | \n | --6.13%--write (inlined)\n | \n |--3.19%--to_numeric_primitive (inlined)\n | | \n | --1.38%--branch (inlined)\n | | \n | --1.15%--to_number (inlined)\n | \n --1.58%--branch (inlined)\n\n 24.52% 0.00% qjs qjs [.] compare bool> (inlined)\n |\n ---compare bool> (inlined)\n | \n |--9.08%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--7.04%--push (inlined)\n | push_mut (inlined)\n | | \n | --6.13%--write (inlined)\n | \n |--3.19%--to_numeric_primitive (inlined)\n | | \n | --1.38%--branch (inlined)\n | | \n | --1.15%--to_number (inlined)\n | \n --1.58%--branch (inlined)\n\n 21.13% 21.13% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n |--19.99%--execute_inner (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_hot_instruction (inlined)\n | | \n | --9.67%--branch (inlined)\n | \n --1.13%--execute_hot_instruction (inlined)\n\n 20.42% 20.42% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n | \n --20.19%--compare bool> (inlined)\n | \n |--8.62%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --7.04%--push (inlined)\n push_mut (inlined)\n | \n --6.13%--write (inlined)\n\n 18.29% 18.29% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n | \n |--9.88%--get_local (inlined)\n | read_frame_binding (inlined)\n | \n --8.41%--get_argument (inlined)\n read_frame_binding (inlined)\n\n 18.29% 0.00% qjs qjs [.] read_frame_binding (inlined)\n |\n ---read_frame_binding (inlined)\n\n 11.68% 0.00% qjs qjs [.] get_local (inlined)\n |\n ---get_local (inlined)\n | \n --9.88%--read_frame_binding (inlined)\n\n 11.11% 11.11% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--3.40%--update_active_bytecode_pc (inlined)\n | update_active_bytecode_pc (inlined)\n | \n --2.04%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n\n 9.38% 9.38% qjs qjs [.] alloc::vec::Vec::push_mut\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --8.94%--execute_hot_instruction (inlined)\n push_mut (inlined)\n | \n --7.31%--write (inlined)\n\n 9.38% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n --7.31%--write (inlined)\n\n 9.08% 0.00% qjs qjs [.] branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n\n 8.64% 0.00% qjs qjs [.] get_argument (inlined)\n |\n ---get_argument (inlined)\n | \n --8.41%--read_frame_binding (inlined)\n\n 7.91% 7.91% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --7.69%--execute_hot_instruction (inlined)\n branch (inlined)\n pop (inlined)\n | \n --5.43%--pop (inlined)\n | \n --5.20%--read (inlined)\n\n 7.91% 0.00% qjs qjs [.] pop (inlined)\n |\n ---pop (inlined)\n | \n --5.43%--pop (inlined)\n | \n --5.20%--read (inlined)\n\n 7.31% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 7.04% 0.00% qjs qjs [.] push (inlined)\n |\n ---push (inlined)\n push_mut (inlined)\n | \n --6.13%--write (inlined)\n\n 7.04% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n --6.13%--write (inlined)\n\n 6.13% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 5.43% 0.00% qjs qjs [.] pop (inlined)\n |\n ---pop (inlined)\n | \n --5.20%--read (inlined)\n\n 5.20% 0.00% qjs qjs [.] read (inlined)\n |\n ---read (inlined)\n\n 4.32% 0.00% qjs qjs [.] to_numeric_primitive (inlined)\n |\n ---to_numeric_primitive (inlined)\n | \n --1.61%--branch (inlined)\n | \n --1.38%--to_number (inlined)\n\n 3.40% 0.00% qjs qjs [.] update_active_bytecode_pc (inlined)\n |\n ---update_active_bytecode_pc (inlined)\n update_active_bytecode_pc (inlined)\n\n 2.26% 2.26% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.58%--execute_numeric_instruction (inlined)\n compare bool> (inlined)\n to_numeric_primitive (inlined)\n\n 1.79% 1.79% qjs qjs [.] ::get_local\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.35%--get_local (inlined)\n\n 1.61% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --1.38%--to_number (inlined)\n\n 1.61% 1.61% qjs qjs [.] quickjs_oxide::engine::value::Value::to_number\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f3e98427781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n compare bool> (inlined)\n | \n --1.15%--to_numeric_primitive (inlined)\n branch (inlined)\n to_number (inlined)\n\n 1.61% 0.00% qjs qjs [.] to_number (inlined)\n |\n ---to_number (inlined)\n\n 1.58% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.11% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n\n\n#\n# (Tip: To trace only single function with Processor Trace use perf record --filter 'filter func @ program' -e intel_pt//u ./program ; perf script --insn-trace)\n#\n", + "children_stderr": "" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "record", + "-q", + "-e", + "cycles:u", + "-F", + "499", + "--call-graph", + "fp", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-0.data", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 876233220, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-0.stderr", + "case": "func_call", + "repetition": 0, + "status": "ok", + "data_sha256": "e04bb1f5efb1b4cb98e929c3f6ce695eecf231ef4b5278c43800b273310e7fc3", + "self": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 406 of event 'cycles:u'\n# Event count (approx.): 3701715683\n#\n# Overhead Command Shared Object Symbol \n# ........ ....... .................... .......................................................................................................................................\n#\n 15.60% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::::execute_bytecode_callable\n | \n |--5.17%--execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fd12ee27781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--4.04%--push_bytecode_active_frame (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fd12ee27781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.96%--branch (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fd12ee27781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.46%--branch (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 8.91% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n | \n |--5.45%--execute_hot_instruction (inlined)\n | | \n | --4.71%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | | \n | |--3.47%--call (inlined)\n | | execute (inlined)\n | | {closure#0} (inlined)\n | | eval_compiling_with_options (inlined)\n | | eval_bytes_with_options (inlined)\n | | try_allocate_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | to_vec (inlined)\n | | to_vec_in (inlined)\n | | to_vec (inlined)\n | | to_owned (inlined)\n | | to_owned (inlined)\n | | from (inlined)\n | | into<&str, alloc::string::String> (inlined)\n | | new<&str> (inlined)\n | | eval_bytes_with_filename (inlined)\n | | evaluate (inlined)\n | | main (inlined)\n | | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | | as_i32 (inlined)\n | | to_i32 (inlined)\n | | {closure#0} (inlined)\n | | {closure#0} (inlined)\n | | do_call (inlined)\n | | catch_unwind (inlined)\n | | catch_unwind (inlined)\n | | lang_start_internal (inlined)\n | | main\n | | 0x7fd12ee27781\n | | call_init (inlined)\n | | __libc_start_main_impl (inlined)\n | | _start\n | | \n | --1.24%--call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fd12ee27781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --2.96%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 7.27% qjs qjs [.] quickjs_oxide::engine::heap::gc::::release_raw_no_drain\n | \n |--3.47%--release_raw_no_drain (inlined)\n | | \n | --3.22%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_reference (inlined)\n | release_heap_reference (inlined)\n | apply_deferred_operation (inlined)\n | get (inlined)\n | drop (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | release_or_defer (inlined)\n | | \n | --2.97%--as_ref> (inlined)\n | inner (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | \n |--1.82%--validate_slot_identity (inlined)\n | release_raw_no_drain (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_reference (inlined)\n | release_heap_reference (inlined)\n | apply_deferred_operation (inlined)\n | get (inlined)\n | drop (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | release_or_defer (inlined)\n | | \n | --1.08%--replace (inlined)\n | replace (inlined)\n | set (inlined)\n | dec_strong> (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n validate_slot_identity (inlined)\n release_raw_no_drain (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_reference (inlined)\n release_heap_reference (inlined)\n apply_deferred_operation (inlined)\n get (inlined)\n drop (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n release_or_defer (inlined)\n as_ref> (inlined)\n inner (inlined)\n drop (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n\n 7.15% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n | \n --6.90%--read_frame_binding (inlined)\n | \n --5.91%--get_local (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 6.68% qjs qjs [.] alloc::vec::Vec::push_mut\n | \n |--4.95%--write (inlined)\n | push_mut (inlined)\n | | \n | --4.45%--execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | | \n | |--2.73%--call (inlined)\n | | execute (inlined)\n | | {closure#0} (inlined)\n | | eval_compiling_with_options (inlined)\n | | eval_bytes_with_options (inlined)\n | | try_allocate_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | to_vec (inlined)\n | | to_vec_in (inlined)\n | | to_vec (inlined)\n | | to_owned (inlined)\n | | to_owned (inlined)\n | | from (inlined)\n | | into<&str, alloc::string::String> (inlined)\n | | new<&str> (inlined)\n | | eval_bytes_with_filename (inlined)\n | | evaluate (inlined)\n | | main (inlined)\n | | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | | as_i32 (inlined)\n | | to_i32 (inlined)\n | | {closure#0} (inlined)\n | | {closure#0} (inlined)\n | | do_call (inlined)\n | | catch_unwind (inlined)\n | | catch_unwind (inlined)\n | | lang_start_internal (inlined)\n | | main\n | | 0x7fd12ee27781\n | | call_init (inlined)\n | | __libc_start_main_impl (inlined)\n | | _start\n | | \n | --1.72%--call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7fd12ee27781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.49%--add (inlined)\n push_mut (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.46% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::apply_deferred_operation\n | \n --3.22%--apply_deferred_operation (inlined)\n | \n --2.73%--get (inlined)\n drop (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n release_or_defer (inlined)\n | \n --2.48%--as_ref> (inlined)\n inner (inlined)\n drop (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n | \n --1.98%--drop_in_place (inlined)\n | \n --1.24%--drop_in_place (inlined)\n\n 3.96% qjs qjs [.] quickjs_oxide::engine::code::runtime::::snapshot_function_bytecode\n | \n --2.23%--kind (inlined)\n | \n --1.98%--kind (inlined)\n validate_slot_identity (inlined)\n live_node (inlined)\n\n 3.72% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::release_or_defer\n | \n --1.98%--release_or_defer (inlined)\n | \n --1.49%--as_ref> (inlined)\n inner (inlined)\n drop (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n\n 3.48% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n | \n --1.50%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n | \n --1.25%--call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.99% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop_pair\n |\n ---pop_pair (inlined)\n branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n add (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.97% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n 2.72% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::call_from_stack\n |\n ---map_err quickjs_oxide::engine::api::error::Error> (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.54% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n |\n ---to_numeric_primitive (inlined)\n | \n --2.29%--branch (inlined)\n add (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.48% qjs qjs [.] quickjs_oxide::engine::builtins::dispatch::::call_internal\n 2.39% qjs qjs [.] quickjs_oxide::engine::vm::call::::bytecode_for_callable\n | \n --2.14%--bytecode_for_callable (inlined)\n branch (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.27% qjs qjs [.] core::iter::adapters::try_process\n | \n --1.53%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n bytecode_for_callable (inlined)\n branch (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.98% qjs qjs [.] quickjs_oxide::engine::object::internal_methods::::direct_call_target_from_value\n | \n --1.73%--direct_call_target_from_value (inlined)\n branch (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.85% qjs qjs [.] quickjs_oxide::engine::vm::protocol::Vm::execute_published\n |\n ---execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7fd12ee27781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.73% qjs qjs [.] ::to_vec_in::ConvertVec>::to_vec\n 1.24% qjs qjs [.] core::ptr::drop_in_place\n\n\n#\n# (Tip: To compare hot regions in two workloads use perf record -b -o file ... ; perf diff --stream file1 file2)\n#\n", + "self_stderr": "", + "children": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 406 of event 'cycles:u'\n# Event count (approx.): 3701715683\n#\n# Children Self Command Shared Object Symbol \n# ........ ........ ....... .................... .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n#\n 100.00% 0.00% qjs libc.so.6 [.] __libc_start_main_impl (inlined)\n |\n ---__libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] _start\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n | \n |--88.18%--0x56455f84560c\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9cd6e\n | 0x56455fc9c97d\n | 0x56455fc9c97d\n | 0x56455fc9c97d\n | 0x56455fc9b6ab\n | 0x56455fc9b6ab\n | 0x56455fa287a1\n | 0x56455fa287a1\n | 0x56455f858acf\n | 0x56455fc1e6e3\n | 0x56455fc82195\n | 0x56455fc80a81\n | 0x56455fc80a81\n | 0x56455fc8ed02\n | 0x56455fc8ed02\n | 0x56455fc8115c\n | 0x56455fc8115c\n | 0x56455f8f0fe8\n | 0x56455fa287a1\n | 0x56455fa287a1\n | 0x56455f858acf\n | 0x56455fc1e6e3\n | 0x56455fc82195\n | | \n | --87.69%--0x56455fc80acd\n | | \n | --86.95%--0x56455fc80acd\n | | \n | |--58.08%--0x56455fc8ed02\n | | | \n | | --57.83%--0x56455fc8ed02\n | | | \n | | --57.58%--0x56455fc8115c\n | | 0x56455fc8115c\n | | | \n | | |--55.35%--0x56455f8f100e\n | | | | \n | | | |--46.93%--0x56455fa287a1\n | | | | | \n | | | | |--40.75%--0x56455fa287a1\n | | | | | | \n | | | | | |--34.56%--0x56455f858b1a\n | | | | | | | \n | | | | | | |--8.90%--0x56455fc1e6e3\n | | | | | | | | \n | | | | | | | --6.43%--0x56455fc82195\n | | | | | | | | \n | | | | | | | |--4.20%--0x56455fc80acd\n | | | | | | | | | \n | | | | | | | | --3.46%--0x56455fc80acd\n | | | | | | | | | \n | | | | | | | | --3.21%--0x56455fc8b145\n | | | | | | | | | \n | | | | | | | | --1.72%--0x56455fca9ae0\n | | | | | | | | 0x56455fca9ae0\n | | | | | | | | \n | | | | | | | --1.98%--0x56455fca86ba\n | | | | | | | 0x56455fca86ba\n | | | | | | | 0x56455fca86ba\n | | | | | | | | \n | | | | | | | --1.73%--0x56455fca86ba\n | | | | | | | 0x56455fca86ba\n | | | | | | | 0x56455fca86ba\n | | | | | | | | \n | | | | | | | --1.49%--0x56455fca86ba\n | | | | | | | 0x56455fca86ba\n | | | | | | | 0x56455f88cb76\n | | | | | | | \n | | | | | | |--4.45%--0x56455f857822\n | | | | | | | | \n | | | | | | | --3.47%--0x56455f884ca3\n | | | | | | | \n | | | | | | |--3.72%--0x56455f857c67\n | | | | | | | | \n | | | | | | | --1.24%--0x56455f87d5ad\n | | | | | | | \n | | | | | | |--3.47%--0x56455f8592f2\n | | | | | | | 0x56455f8592f2\n | | | | | | | 0x56455f8592f2\n | | | | | | | 0x56455f8592f2\n | | | | | | | 0x56455fa57eb2\n | | | | | | | | \n | | | | | | | --1.24%--0x56455fa57eb2\n | | | | | | | 0x56455fa57eb2\n | | | | | | | 0x56455fa57eb2\n | | | | | | | 0x56455fa57eb2\n | | | | | | | 0x56455fa57eb2\n | | | | | | | 0x56455fa57eb2\n | | | | | | | 0x56455fa57eb2\n | | | | | | | 0x56455f88cc47\n | | | | | | | 0x56455f88cc47\n | | | | | | | 0x56455f88cc47\n | | | | | | | 0x56455f88cc47\n | | | | | | | 0x56455f88cc47\n | | | | | | | \n | | | | | | |--2.96%--0x56455f857c79\n | | | | | | | \n | | | | | | |--2.73%--0x56455f858b1a\n | | | | | | | 0x56455fb8e585\n | | | | | | | | \n | | | | | | | --2.48%--0x56455fba491e\n | | | | | | | | \n | | | | | | | --1.24%--0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455fba491e\n | | | | | | | 0x56455f88cdab\n | | | | | | | \n | | | | | | |--1.49%--0x56455fa58b7b\n | | | | | | | 0x56455fa58b7b\n | | | | | | | 0x56455fa58b7b\n | | | | | | | 0x56455fa58b7b\n | | | | | | | 0x56455fa58b7b\n | | | | | | | 0x56455fa58b7b\n | | | | | | | 0x56455fa58b7b\n | | | | | | | 0x56455fa58b7b\n | | | | | | | 0x56455f88cc47\n | | | | | | | \n | | | | | | --1.21%--0x56455f8579a5\n | | | | | | \n | | | | | --5.45%--0x56455fa27e99\n | | | | | 0x56455f86f865\n | | | | | | \n | | | | | |--1.49%--0x56455f86fca6\n | | | | | | 0x56455fb8e89b\n | | | | | | \n | | | | | --1.49%--0x56455f86fd0c\n | | | | | 0x56455fb791fb\n | | | | | \n | | | | |--2.48%--0x56455fa28e3a\n | | | | | 0x56455fa28e3a\n | | | | | 0x56455fa28e3a\n | | | | | 0x56455fa28e3a\n | | | | | 0x56455fa28e3a\n | | | | | | \n | | | | | --1.73%--0x56455fa28e3a\n | | | | | 0x56455fa28e3a\n | | | | | 0x56455f88cc47\n | | | | | 0x56455f88cc47\n | | | | | 0x56455f88cc47\n | | | | | 0x56455f88cc47\n | | | | | 0x56455f88cc47\n | | | | | 0x56455f88d009\n | | | | | | \n | | | | | --1.24%--0x56455f88d009\n | | | | | 0x56455f88d009\n | | | | | 0x56455f88d009\n | | | | | 0x56455faff238\n | | | | | 0x56455faff238\n | | | | | \n | | | | --1.73%--0x56455fa5d2c1\n | | | | \n | | | |--4.21%--0x56455f8f0ecf\n | | | | | \n | | | | --3.96%--0x56455f8fbc99\n | | | | | \n | | | | --1.98%--0x56455f8fbc99\n | | | | 0x56455f8fbc99\n | | | | 0x56455f8fbc99\n | | | | 0x56455f8fbc99\n | | | | 0x56455f8fbc99\n | | | | 0x56455f8fbc99\n | | | | | \n | | | | --1.73%--0x56455f88cc47\n | | | | 0x56455f88cc47\n | | | | 0x56455f88cc47\n | | | | 0x56455f88cc47\n | | | | 0x56455f88cc47\n | | | | 0x56455f88d009\n | | | | | \n | | | | --1.24%--0x56455f88d009\n | | | | 0x56455f88d009\n | | | | 0x56455f88d009\n | | | | \n | | | --3.72%--0x56455f8f100e\n | | | 0x56455f8f100e\n | | | 0x56455f8f100e\n | | | 0x56455f8f100e\n | | | 0x56455f8f100e\n | | | | \n | | | --3.47%--0x56455f8f100e\n | | | 0x56455f8f100e\n | | | 0x56455f88cc29\n | | | | \n | | | --1.98%--0x56455f88cc47\n | | | 0x56455f88cc47\n | | | 0x56455f88cc47\n | | | 0x56455f88cc47\n | | | 0x56455f88d009\n | | | | \n | | | --1.24%--0x56455f88d009\n | | | 0x56455f88d009\n | | | 0x56455f88d009\n | | | \n | | --2.23%--0x56455fc8118a\n | | \n | |--19.24%--0x56455fc89071\n | | | \n | | |--10.32%--0x56455fc882b8\n | | | | \n | | | --6.15%--0x56455fc0f4e1\n | | | | \n | | | --5.65%--0x56455fc1b4f6\n | | | \n | | --4.46%--0x56455fca9ad6\n | | | \n | | |--2.73%--0x56455fca9ae0\n | | | \n | | --1.49%--0x56455fca9ad6\n | | \n | --7.92%--0x56455fc934c8\n | | \n | --7.17%--0x56455fc934c8\n | | \n | |--3.21%--0x56455fc934c8\n | | | \n | | --2.72%--0x56455fc8250d\n | | \n | --2.23%--0x56455fc96a99\n | | \n | --1.98%--0x56455fc3bb8d\n | \n --11.81%--evaluate (inlined)\n | \n --11.60%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --11.03%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --10.78%--execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--8.43%--execute_call_instruction (inlined)\n | branch (inlined)\n | call_from_stack (inlined)\n | | \n | --8.18%--call_with_borrowed_arguments (inlined)\n | | \n | --7.68%--call_value_internal (inlined)\n | | \n | --7.18%--call_internal (inlined)\n | {closure#0} (inlined)\n | | \n | |--5.99%--execute_bytecode_callable (inlined)\n | | | \n | | |--1.57%--push_bytecode_active_frame (inlined)\n | | | \n | | --1.22%--drop_in_place> (inlined)\n | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | as_ref> (inlined)\n | | \n | --1.19%--branch (inlined)\n | bytecode_for_callable (inlined)\n | \n |--1.08%--execute_numeric_instruction (inlined)\n | add (inlined)\n | \n --1.01%--execute_hot_instruction (inlined)\n branch (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] call_init (inlined)\n |\n ---call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] 0x00007fd12ee27781\n |\n ---0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] main\n |\n ---main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] lang_start_internal (inlined)\n |\n ---lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] do_call (inlined)\n |\n ---do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_i32 (inlined)\n |\n ---to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] as_i32 (inlined)\n |\n ---as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n |\n ---__rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] main (inlined)\n |\n ---main (inlined)\n evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 100.00% 0.00% qjs qjs [.] evaluate (inlined)\n |\n ---evaluate (inlined)\n | \n --99.78%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] eval_bytes_with_filename (inlined)\n |\n ---eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] new<&str> (inlined)\n |\n ---new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] into<&str, alloc::string::String> (inlined)\n |\n ---into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] from (inlined)\n |\n ---from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] to_vec_in (inlined)\n |\n ---to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] try_allocate_in (inlined)\n |\n ---try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] eval_bytes_with_options (inlined)\n |\n ---eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] eval_compiling_with_options (inlined)\n |\n ---eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.78% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n | \n --99.21%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] call (inlined)\n |\n ---call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] call_internal (inlined)\n |\n ---call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] execute_bytecode_callable (inlined)\n |\n ---execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] execute_published (inlined)\n |\n ---execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] execute_inner (inlined)\n |\n ---execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] execute_call_instruction (inlined)\n |\n ---execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] call_from_stack (inlined)\n |\n ---call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] call_with_borrowed_arguments (inlined)\n |\n ---call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 99.21% 0.00% qjs qjs [.] call_value_internal (inlined)\n |\n ---call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --98.47%--execute_inner (inlined)\n | \n --97.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--66.51%--execute_call_instruction (inlined)\n | | \n | --66.26%--branch (inlined)\n | | \n | --66.02%--call_from_stack (inlined)\n | | \n | --65.76%--call_with_borrowed_arguments (inlined)\n | | \n | |--63.04%--call_value_internal (inlined)\n | | | \n | | |--54.12%--call_internal (inlined)\n | | | | \n | | | |--47.93%--{closure#0} (inlined)\n | | | | | \n | | | | |--40.55%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--9.52%--execute_published (inlined)\n | | | | | | | \n | | | | | | --6.43%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.20%--execute_inner (inlined)\n | | | | | | | | \n | | | | | | | --3.46%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | | \n | | | | | | | --3.21%--execute_hot_instruction (inlined)\n | | | | | | | | \n | | | | | | | --1.72%--push_mut (inlined)\n | | | | | | | write (inlined)\n | | | | | | | \n | | | | | | --1.98%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.73%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --1.49%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | |--5.28%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --1.24%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--4.95%--branch (inlined)\n | | | | | | | \n | | | | | | --3.96%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.24%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.24%--function_bytecode (inlined)\n | | | | | | live_node (inlined)\n | | | | | | \n | | | | | |--4.68%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --4.44%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.46%--drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | | | | | | | \n | | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | \n | | | | | |--3.31%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.06%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.82%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.33%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.08%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--2.96%--branch (inlined)\n | | | | | | \n | | | | | |--1.73%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --1.49%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | dec_strong> (inlined)\n | | | | | | set (inlined)\n | | | | | | replace (inlined)\n | | | | | | replace (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.46%--branch (inlined)\n | | | | | \n | | | | --6.64%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | | \n | | | | --1.49%--branch (inlined)\n | | | | from_borrowed_handle (inlined)\n | | | | \n | | | |--2.48%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | | \n | | | | --1.73%--inner (inlined)\n | | | | as_ref> (inlined)\n | | | | release_or_defer (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --1.24%--release_heap_reference (inlined)\n | | | | release_reference (inlined)\n | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | release_raw_no_drain (inlined)\n | | | | validate_slot_identity (inlined)\n | | | | \n | | | --1.73%--to_vec (inlined)\n | | | \n | | |--4.21%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | | \n | | | --3.97%--inner (inlined)\n | | | as_ref> (inlined)\n | | | | \n | | | --3.72%--release_or_defer (inlined)\n | | | | \n | | | --2.23%--drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | | \n | | | --1.49%--release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --1.24%--release_raw_no_drain (inlined)\n | | | \n | | --4.21%--branch (inlined)\n | | | \n | | --3.96%--direct_call_target_from_value (inlined)\n | | | \n | | --1.98%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | | \n | | --1.73%--release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | | \n | | --1.24%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --2.72%--map_err quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--20.25%--execute_hot_instruction (inlined)\n | | \n | |--11.33%--branch (inlined)\n | | | \n | | --6.65%--get_local (inlined)\n | | | \n | | --6.16%--read_frame_binding (inlined)\n | | \n | --4.46%--push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --9.00%--execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 24.20% 0.00% qjs qjs [.] execute_hot_instruction (inlined)\n |\n ---execute_hot_instruction (inlined)\n | \n |--11.33%--branch (inlined)\n | | \n | --6.65%--get_local (inlined)\n | | \n | --6.16%--read_frame_binding (inlined)\n | \n --6.18%--push_mut (inlined)\n | \n |--4.45%--write (inlined)\n | \n --1.49%--add (inlined)\n\n 15.60% 15.60% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::::execute_bytecode_callable\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n |--4.04%--push_bytecode_active_frame (inlined)\n | \n |--2.96%--branch (inlined)\n | \n --1.46%--branch (inlined)\n\n 14.95% 0.00% qjs qjs [.] release_or_defer (inlined)\n |\n ---release_or_defer (inlined)\n | \n --11.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --10.99%--apply_deferred_operation (inlined)\n | \n --8.26%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 11.49% 0.00% qjs qjs [.] apply_deferred_operation (inlined)\n |\n ---apply_deferred_operation (inlined)\n | \n --8.26%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 11.33% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --6.65%--get_local (inlined)\n | \n --6.16%--read_frame_binding (inlined)\n\n 11.24% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --10.99%--apply_deferred_operation (inlined)\n | \n --8.26%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 11.24% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --10.99%--apply_deferred_operation (inlined)\n | \n --8.26%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 11.24% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n get (inlined)\n | \n --10.99%--apply_deferred_operation (inlined)\n | \n --8.26%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 11.24% 0.00% qjs qjs [.] get (inlined)\n |\n ---get (inlined)\n | \n --10.99%--apply_deferred_operation (inlined)\n | \n --8.26%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 9.24% 0.00% qjs qjs [.] execute_numeric_instruction (inlined)\n |\n ---execute_numeric_instruction (inlined)\n | \n --8.25%--add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 8.91% 8.91% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --8.41%--execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--6.68%--execute_hot_instruction (inlined)\n | | \n | --2.96%--branch (inlined)\n | \n --1.73%--execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --1.49%--execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n\n 8.26% 0.00% qjs qjs [.] release_heap_reference (inlined)\n |\n ---release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 8.26% 0.00% qjs qjs [.] release_reference (inlined)\n |\n ---release_reference (inlined)\n | \n --7.77%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 8.25% 0.00% qjs qjs [.] add (inlined)\n |\n ---add (inlined)\n | \n |--3.48%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.99%--pop_pair (inlined)\n | \n --2.54%--branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 7.77% 0.00% qjs qjs [.] branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n |\n ---branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.03%--release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 7.27% 7.27% qjs qjs [.] quickjs_oxide::engine::heap::gc::::release_raw_no_drain\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n |--5.29%--call_internal (inlined)\n | | \n | |--4.05%--{closure#0} (inlined)\n | | execute_bytecode_callable (inlined)\n | | | \n | | --1.82%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | finish (inlined)\n | | drop_in_place (inlined)\n | | | \n | | --1.08%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | dec_strong> (inlined)\n | | set (inlined)\n | | replace (inlined)\n | | replace (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | validate_slot_identity (inlined)\n | | \n | --1.24%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | release_heap_reference (inlined)\n | release_reference (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | validate_slot_identity (inlined)\n | \n --1.24%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 7.27% 0.00% qjs qjs [.] release_raw_no_drain (inlined)\n |\n ---release_raw_no_drain (inlined)\n | \n --3.80%--validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 7.15% 7.15% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n | \n --6.16%--get_local (inlined)\n read_frame_binding (inlined)\n\n 7.15% 0.00% qjs qjs [.] read_frame_binding (inlined)\n |\n ---read_frame_binding (inlined)\n\n 7.13% 0.00% qjs qjs [.] get_local (inlined)\n |\n ---get_local (inlined)\n | \n --6.16%--read_frame_binding (inlined)\n\n 6.68% 6.68% qjs qjs [.] alloc::vec::Vec::push_mut\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--4.46%--execute_hot_instruction (inlined)\n | push_mut (inlined)\n | | \n | |--2.73%--write (inlined)\n | | \n | --1.49%--add (inlined)\n | \n --1.72%--execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n push_mut (inlined)\n write (inlined)\n\n 6.68% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n |--4.95%--write (inlined)\n | \n --1.49%--add (inlined)\n\n 6.64% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n bytecode_for_callable (inlined)\n | \n |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | \n --1.49%--branch (inlined)\n from_borrowed_handle (inlined)\n\n 6.64% 0.00% qjs qjs [.] bytecode_for_callable (inlined)\n |\n ---bytecode_for_callable (inlined)\n | \n |--2.27%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | \n --1.49%--branch (inlined)\n from_borrowed_handle (inlined)\n\n 5.28% 0.00% qjs qjs [.] push_bytecode_active_frame (inlined)\n |\n ---push_bytecode_active_frame (inlined)\n | \n --1.24%--push_active_frame (inlined)\n\n 4.95% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 4.95% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --3.96%--snapshot_function_bytecode (inlined)\n | \n |--1.24%--context (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | \n --1.24%--function_bytecode (inlined)\n live_node (inlined)\n\n 4.68% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --4.44%--drop_in_place (inlined)\n | \n |--1.46%--drop_in_place> (inlined)\n | drop (inlined)\n | | \n | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 4.68% 0.00% qjs qjs [.] drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n |\n ---drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --4.44%--drop_in_place (inlined)\n | \n |--1.46%--drop_in_place> (inlined)\n | drop (inlined)\n | | \n | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 4.68% 0.00% qjs qjs [.] inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n |\n ---inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --4.44%--drop_in_place (inlined)\n | \n |--1.46%--drop_in_place> (inlined)\n | drop (inlined)\n | | \n | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 4.68% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n | \n --4.44%--drop_in_place (inlined)\n | \n |--1.46%--drop_in_place> (inlined)\n | drop (inlined)\n | | \n | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 4.46% 4.46% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::apply_deferred_operation\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n |--1.98%--call_internal (inlined)\n | | \n | --1.49%--{closure#0} (inlined)\n | execute_bytecode_callable (inlined)\n | \n |--1.24%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | \n --1.24%--branch (inlined)\n direct_call_target_from_value (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n\n 4.44% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n |--1.46%--drop_in_place> (inlined)\n | drop (inlined)\n | | \n | --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 4.21% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.97%--inner (inlined)\n as_ref> (inlined)\n | \n --3.72%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.49%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 4.21% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.97%--inner (inlined)\n as_ref> (inlined)\n | \n --3.72%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.49%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 4.21% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.97%--inner (inlined)\n as_ref> (inlined)\n | \n --3.72%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.49%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 4.21% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --3.97%--inner (inlined)\n as_ref> (inlined)\n | \n --3.72%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.49%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 4.21% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --3.97%--inner (inlined)\n as_ref> (inlined)\n | \n --3.72%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.49%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 4.21% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --3.96%--direct_call_target_from_value (inlined)\n | \n --1.98%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 3.97% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n | \n --3.72%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.49%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 3.97% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n | \n --3.72%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.49%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 3.96% 3.96% qjs qjs [.] quickjs_oxide::engine::code::runtime::::snapshot_function_bytecode\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n branch (inlined)\n snapshot_function_bytecode (inlined)\n | \n |--1.24%--context (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | \n --1.24%--function_bytecode (inlined)\n live_node (inlined)\n\n 3.96% 0.00% qjs qjs [.] snapshot_function_bytecode (inlined)\n |\n ---snapshot_function_bytecode (inlined)\n | \n |--1.24%--context (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | \n --1.24%--function_bytecode (inlined)\n live_node (inlined)\n\n 3.96% 0.00% qjs qjs [.] direct_call_target_from_value (inlined)\n |\n ---direct_call_target_from_value (inlined)\n | \n --1.98%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 3.80% 0.00% qjs qjs [.] validate_slot_identity (inlined)\n |\n ---validate_slot_identity (inlined)\n | \n --1.73%--kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 3.72% 3.72% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::release_or_defer\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n |--2.23%--call_internal (inlined)\n | {closure#0} (inlined)\n | execute_bytecode_callable (inlined)\n | \n --1.49%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 3.56% 0.00% qjs qjs [.] finish (inlined)\n |\n ---finish (inlined)\n | \n --3.06%--drop_in_place (inlined)\n | \n --1.82%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 3.48% 0.00% qjs qjs [.] branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --2.99%--pop_pair (inlined)\n\n 3.48% 3.48% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --2.74%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.48%--execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n\n 3.31% 0.00% qjs qjs [.] branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n |\n ---branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n finish (inlined)\n | \n --3.06%--drop_in_place (inlined)\n | \n --1.82%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 3.06% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n --1.82%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.99% 2.99% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop_pair\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n add (inlined)\n branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n pop_pair (inlined)\n\n 2.99% 0.00% qjs qjs [.] pop_pair (inlined)\n |\n ---pop_pair (inlined)\n\n 2.97% 0.00% qjs qjs [.] validate_slot_identity (inlined)\n |\n ---validate_slot_identity (inlined)\n | \n --2.23%--kind (inlined)\n | \n --1.98%--kind (inlined)\n\n 2.97% 2.97% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n | \n --2.73%--execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n | \n --2.48%--add (inlined)\n\n 2.96% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 2.82% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.82%--dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.82% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --1.82%--dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.82% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --1.82%--dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.79% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --2.29%--to_numeric_primitive (inlined)\n\n 2.79% 0.00% qjs qjs [.] to_numeric_primitive (inlined)\n |\n ---to_numeric_primitive (inlined)\n\n 2.72% 2.72% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::call_from_stack\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n map_err quickjs_oxide::engine::api::error::Error> (inlined)\n\n 2.72% 0.00% qjs qjs [.] map_err quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---map_err quickjs_oxide::engine::api::error::Error> (inlined)\n\n 2.54% 2.54% qjs qjs [.] quickjs_oxide::engine::vm::numeric::to_numeric_primitive\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n | \n --2.29%--add (inlined)\n branch (inlined)\n to_numeric_primitive (inlined)\n\n 2.48% 0.00% qjs qjs [.] live_node (inlined)\n |\n ---live_node (inlined)\n | \n --2.23%--validate_slot_identity (inlined)\n kind (inlined)\n | \n --1.98%--kind (inlined)\n\n 2.48% 2.48% qjs qjs [.] quickjs_oxide::engine::builtins::dispatch::::call_internal\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.73%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.73%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.73%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --1.73%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --1.73%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.39% 2.39% qjs qjs [.] quickjs_oxide::engine::vm::call::::bytecode_for_callable\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n branch (inlined)\n bytecode_for_callable (inlined)\n\n 2.27% 2.27% qjs qjs [.] core::iter::adapters::try_process\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n branch (inlined)\n bytecode_for_callable (inlined)\n branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 2.27% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n |\n ---branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 2.27% 0.00% qjs qjs [.] try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n |\n ---try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 2.23% 0.00% qjs qjs [.] kind (inlined)\n |\n ---kind (inlined)\n | \n --1.98%--kind (inlined)\n\n 1.98% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n | \n --1.73%--drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.49%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.98% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n | \n --1.73%--drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.49%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.98% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n --1.73%--drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.49%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.98% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 1.98% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 1.98% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 1.98% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 1.98% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 1.98% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n | \n --1.73%--release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n\n 1.98% 1.98% qjs qjs [.] quickjs_oxide::engine::object::internal_methods::::direct_call_target_from_value\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n branch (inlined)\n direct_call_target_from_value (inlined)\n\n 1.85% 1.85% qjs qjs [.] quickjs_oxide::engine::vm::protocol::Vm::execute_published\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n\n 1.82% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.82% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.82% 0.00% qjs qjs [.] dec_strong> (inlined)\n |\n ---dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.82% 0.00% qjs qjs [.] set (inlined)\n |\n ---set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.82% 0.00% qjs qjs [.] replace (inlined)\n |\n ---replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.33%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.08%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.74% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.49%--apply_deferred_operation (inlined)\n\n 1.74% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.49%--apply_deferred_operation (inlined)\n\n 1.74% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.49%--apply_deferred_operation (inlined)\n\n 1.74% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.49%--apply_deferred_operation (inlined)\n\n 1.74% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.49%--apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.49%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --1.49%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --1.49%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n --1.49%--drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n\n 1.73% 0.00% qjs qjs [.] kind (inlined)\n |\n ---kind (inlined)\n | \n --1.24%--kind (inlined)\n\n 1.73% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.73% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.73% 1.73% qjs qjs [.] ::to_vec_in::ConvertVec>::to_vec\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n to_vec (inlined)\n\n 1.73% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n\n 1.49% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.49% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.49% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n from_borrowed_handle (inlined)\n\n 1.49% 0.00% qjs qjs [.] from_borrowed_handle (inlined)\n |\n ---from_borrowed_handle (inlined)\n\n 1.49% 0.00% qjs qjs [.] add (inlined)\n |\n ---add (inlined)\n\n 1.49% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n\n 1.49% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n\n 1.49% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n\n 1.49% 0.00% qjs qjs [.] dec_strong> (inlined)\n |\n ---dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n\n 1.49% 0.00% qjs qjs [.] set (inlined)\n |\n ---set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n\n 1.49% 0.00% qjs qjs [.] replace (inlined)\n |\n ---replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n\n 1.46% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n\n 1.46% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --1.21%--drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n\n 1.46% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.24% 1.24% qjs qjs [.] core::ptr::drop_in_place\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7fd12ee27781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n drop_in_place> (inlined)\n drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n drop_in_place (inlined)\n\n 1.24% 0.00% qjs qjs [.] context (inlined)\n |\n ---context (inlined)\n live_node (inlined)\n validate_slot_identity (inlined)\n kind (inlined)\n\n 1.24% 0.00% qjs qjs [.] push_active_frame (inlined)\n |\n ---push_active_frame (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] function_bytecode (inlined)\n |\n ---function_bytecode (inlined)\n live_node (inlined)\n\n 1.21% 0.00% qjs qjs [.] drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n |\n ---drop_in_place<[quickjs_oxide::engine::vm::host_bridge::FrameBinding]> (inlined)\n\n\n\n#\n# (Tip: Order by the overhead of source file name and line number: perf report -s srcline)\n#\n", + "children_stderr": "" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "record", + "-q", + "-e", + "cycles:u", + "-F", + "499", + "--call-graph", + "fp", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-1.data", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 873222044, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-1.stderr", + "case": "func_call", + "repetition": 1, + "status": "ok", + "data_sha256": "5f598ef866cb896b9a423e9b75dd1026151bf559f712ccfec7b992b39ee1cfde", + "self": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 400 of event 'cycles:u'\n# Event count (approx.): 3584875483\n#\n# Overhead Command Shared Object Symbol \n# ........ ....... .................... .......................................................................................................................................\n#\n 14.98% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::::execute_bytecode_callable\n | \n |--9.65%--execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--1.77%--branch (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.27%--branch (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 8.61% qjs qjs [.] quickjs_oxide::engine::heap::gc::::release_raw_no_drain\n | \n |--3.05%--release_raw_no_drain (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_reference (inlined)\n | release_heap_reference (inlined)\n | apply_deferred_operation (inlined)\n | get (inlined)\n | drop (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | release_or_defer (inlined)\n | | \n | --2.54%--as_ref> (inlined)\n | inner (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | | \n | --1.52%--direct_call_target_from_value (inlined)\n | branch (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.77%--validate_slot_identity (inlined)\n | release_raw_no_drain (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_reference (inlined)\n | release_heap_reference (inlined)\n | apply_deferred_operation (inlined)\n | get (inlined)\n | drop (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | release_or_defer (inlined)\n | | \n | |--1.75%--as_ref> (inlined)\n | | inner (inlined)\n | | drop (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | | \n | | --1.25%--drop_in_place> (inlined)\n | | \n | --1.02%--replace (inlined)\n | replace (inlined)\n | set (inlined)\n | dec_strong> (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | finish (inlined)\n | branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.77%--get (inlined)\n get (inlined)\n validate_slot_identity (inlined)\n release_raw_no_drain (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_reference (inlined)\n release_heap_reference (inlined)\n apply_deferred_operation (inlined)\n get (inlined)\n drop (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n release_or_defer (inlined)\n as_ref> (inlined)\n inner (inlined)\n drop (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n | \n --1.52%--drop_in_place (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n\n 7.62% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n | \n |--4.07%--execute_hot_instruction (inlined)\n | | \n | --3.82%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | | \n | --3.31%--call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --3.04%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 7.38% qjs qjs [.] alloc::vec::Vec::push_mut\n | \n |--4.58%--write (inlined)\n | push_mut (inlined)\n | | \n | --3.82%--execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | | \n | |--2.80%--call (inlined)\n | | execute (inlined)\n | | {closure#0} (inlined)\n | | eval_compiling_with_options (inlined)\n | | eval_bytes_with_options (inlined)\n | | try_allocate_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | to_vec (inlined)\n | | to_vec_in (inlined)\n | | to_vec (inlined)\n | | to_owned (inlined)\n | | to_owned (inlined)\n | | from (inlined)\n | | into<&str, alloc::string::String> (inlined)\n | | new<&str> (inlined)\n | | eval_bytes_with_filename (inlined)\n | | evaluate (inlined)\n | | main (inlined)\n | | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | | as_i32 (inlined)\n | | to_i32 (inlined)\n | | {closure#0} (inlined)\n | | {closure#0} (inlined)\n | | do_call (inlined)\n | | catch_unwind (inlined)\n | | catch_unwind (inlined)\n | | lang_start_internal (inlined)\n | | main\n | | 0x7f380f627781\n | | call_init (inlined)\n | | __libc_start_main_impl (inlined)\n | | _start\n | | \n | --1.02%--call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --2.55%--push_mut (inlined)\n | \n --1.78%--execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n | \n --1.02%--call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 7.32% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n | \n --7.07%--read_frame_binding (inlined)\n | \n |--6.05%--get_local (inlined)\n | branch (inlined)\n | execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.02%--get_argument (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 5.32% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n | \n |--1.78%--add (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--1.78%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.27%--add (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.02%--number (inlined)\n add (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 5.09% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n | \n --3.05%--execute_inner (inlined)\n | \n --2.80%--execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n | \n |--1.53%--call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.27%--call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 5.08% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::apply_deferred_operation\n | \n |--3.55%--apply_deferred_operation (inlined)\n | | \n | --3.04%--get (inlined)\n | drop (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | release_or_defer (inlined)\n | | \n | --2.27%--as_ref> (inlined)\n | inner (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | | \n | --2.02%--drop_in_place (inlined)\n | | \n | --1.02%--drop_in_place (inlined)\n | \n --1.02%--release_reference (inlined)\n release_heap_reference (inlined)\n apply_deferred_operation (inlined)\n get (inlined)\n drop (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n release_or_defer (inlined)\n\n 4.59% qjs qjs [.] quickjs_oxide::engine::code::runtime::::snapshot_function_bytecode\n | \n |--2.04%--kind (inlined)\n | kind (inlined)\n | validate_slot_identity (inlined)\n | live_node (inlined)\n | | \n | |--1.02%--context (inlined)\n | | snapshot_function_bytecode (inlined)\n | | branch (inlined)\n | | execute_bytecode_callable (inlined)\n | | {closure#0} (inlined)\n | | call_internal (inlined)\n | | call_value_internal (inlined)\n | | call_with_borrowed_arguments (inlined)\n | | call_from_stack (inlined)\n | | branch (inlined)\n | | execute_call_instruction (inlined)\n | | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | execute_inner (inlined)\n | | execute (inlined)\n | | execute_published (inlined)\n | | execute_bytecode_callable (inlined)\n | | {closure#0} (inlined)\n | | call_internal (inlined)\n | | call_value_internal (inlined)\n | | call_with_borrowed_arguments (inlined)\n | | call_from_stack (inlined)\n | | branch (inlined)\n | | execute_call_instruction (inlined)\n | | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | execute_inner (inlined)\n | | execute (inlined)\n | | execute_published (inlined)\n | | execute_bytecode_callable (inlined)\n | | {closure#0} (inlined)\n | | call_internal (inlined)\n | | call (inlined)\n | | execute (inlined)\n | | {closure#0} (inlined)\n | | eval_compiling_with_options (inlined)\n | | eval_bytes_with_options (inlined)\n | | try_allocate_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | to_vec (inlined)\n | | to_vec_in (inlined)\n | | to_vec (inlined)\n | | to_owned (inlined)\n | | to_owned (inlined)\n | | from (inlined)\n | | into<&str, alloc::string::String> (inlined)\n | | new<&str> (inlined)\n | | eval_bytes_with_filename (inlined)\n | | evaluate (inlined)\n | | main (inlined)\n | | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | | as_i32 (inlined)\n | | to_i32 (inlined)\n | | {closure#0} (inlined)\n | | {closure#0} (inlined)\n | | do_call (inlined)\n | | catch_unwind (inlined)\n | | catch_unwind (inlined)\n | | lang_start_internal (inlined)\n | | main\n | | 0x7f380f627781\n | | call_init (inlined)\n | | __libc_start_main_impl (inlined)\n | | _start\n | | \n | --1.02%--function_bytecode (inlined)\n | snapshot_function_bytecode (inlined)\n | branch (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f380f627781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.02%--snapshot_function_bytecode (inlined)\n branch (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 3.31% qjs qjs [.] quickjs_oxide::engine::vm::call::::bytecode_for_callable\n | \n --2.29%--bytecode_for_callable (inlined)\n branch (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 3.06% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::release_or_defer\n | \n |--1.53%--release_or_defer (inlined)\n | | \n | --1.27%--as_ref> (inlined)\n | inner (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | | \n | --1.02%--drop_in_place (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n release_or_defer (inlined)\n\n 2.53% qjs qjs [.] core::ptr::drop_in_place\n |\n ---drop_in_place (inlined)\n | \n --1.26%--execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.03% qjs qjs [.] quickjs_oxide::engine::object::internal_methods::::direct_call_target_from_value\n | \n --1.52%--direct_call_target_from_value (inlined)\n branch (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.00% qjs qjs [.] quickjs_oxide::engine::vm::frames::::push_active_frame\n | \n --1.76%--push_active_frame (inlined)\n push_bytecode_active_frame (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.78% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop_pair\n |\n ---pop_pair (inlined)\n branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n add (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.78% qjs qjs [.] core::iter::adapters::try_process\n | \n --1.02%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n bytecode_for_callable (inlined)\n branch (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.77% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::call_from_stack\n |\n ---call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.53% qjs qjs [.] quickjs_oxide::engine::builtins::dispatch::::call_internal\n 1.27% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_call_instruction\n |\n ---branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f380f627781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.27% qjs qjs [.] ::get_local\n 1.02% qjs libc.so.6 [.] cfree\n\n\n#\n# (Tip: To analyze particular parallelism levels, try: perf report --latency --parallelism=32-64)\n#\n", + "self_stderr": "", + "children": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 400 of event 'cycles:u'\n# Event count (approx.): 3584875483\n#\n# Children Self Command Shared Object Symbol \n# ........ ........ ....... .................... .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n#\n 100.00% 0.00% qjs qjs [.] _start\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] __libc_start_main_impl (inlined)\n |\n ---__libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] call_init (inlined)\n |\n ---call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs libc.so.6 [.] 0x00007f380f627781\n |\n ---0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] lang_start_internal (inlined)\n |\n ---lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] do_call (inlined)\n |\n ---do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] to_i32 (inlined)\n |\n ---to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] as_i32 (inlined)\n |\n ---as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n |\n ---__rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] main (inlined)\n |\n ---main (inlined)\n evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 100.00% 0.00% qjs qjs [.] evaluate (inlined)\n |\n ---evaluate (inlined)\n | \n --99.91%--eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] main\n |\n ---main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] eval_bytes_with_filename (inlined)\n |\n ---eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] new<&str> (inlined)\n |\n ---new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] into<&str, alloc::string::String> (inlined)\n |\n ---into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] from (inlined)\n |\n ---from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] to_vec_in (inlined)\n |\n ---to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] try_allocate_in (inlined)\n |\n ---try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] eval_bytes_with_options (inlined)\n |\n ---eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] eval_compiling_with_options (inlined)\n |\n ---eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.91% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n | \n --99.04%--execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.04% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.04% 0.00% qjs qjs [.] call (inlined)\n |\n ---call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.04% 0.00% qjs qjs [.] call_internal (inlined)\n |\n ---call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.04% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 99.04% 0.00% qjs qjs [.] execute_bytecode_callable (inlined)\n |\n ---execute_bytecode_callable (inlined)\n | \n --98.78%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] execute_published (inlined)\n |\n ---execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] execute_inner (inlined)\n |\n ---execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] execute_call_instruction (inlined)\n |\n ---execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] call_from_stack (inlined)\n |\n ---call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] call_with_borrowed_arguments (inlined)\n |\n ---call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 98.78% 0.00% qjs qjs [.] call_value_internal (inlined)\n |\n ---call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--95.98%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | |--65.02%--execute_call_instruction (inlined)\n | | branch (inlined)\n | | | \n | | --63.24%--call_from_stack (inlined)\n | | | \n | | --60.96%--call_with_borrowed_arguments (inlined)\n | | call_value_internal (inlined)\n | | | \n | | |--53.85%--call_internal (inlined)\n | | | | \n | | | |--50.81%--{closure#0} (inlined)\n | | | | | \n | | | | |--44.70%--execute_bytecode_callable (inlined)\n | | | | | | \n | | | | | |--10.64%--execute_published (inlined)\n | | | | | | | \n | | | | | | --9.12%--execute (inlined)\n | | | | | | | \n | | | | | | |--4.29%--drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --4.03%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | | \n | | | | | | | --3.78%--inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | | \n | | | | | | | --3.52%--release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --3.01%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --2.27%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | | \n | | | | | | | --1.25%--validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --4.07%--execute_inner (inlined)\n | | | | | | | \n | | | | | | --2.54%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | | | \n | | | | | | --2.29%--execute_hot_instruction (inlined)\n | | | | | | | \n | | | | | | --1.78%--push_mut (inlined)\n | | | | | | | \n | | | | | | --1.02%--write (inlined)\n | | | | | | \n | | | | | |--5.35%--branch (inlined)\n | | | | | | | \n | | | | | | --4.84%--snapshot_function_bytecode (inlined)\n | | | | | | | \n | | | | | | |--1.02%--context (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | |--1.02%--function_bytecode (inlined)\n | | | | | | | live_node (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | kind (inlined)\n | | | | | | | \n | | | | | | --1.02%--clone (inlined)\n | | | | | | try_clone (inlined)\n | | | | | | retain_function_bytecode_handle (inlined)\n | | | | | | retain_function_bytecode (inlined)\n | | | | | | retain_raw (inlined)\n | | | | | | live_node_mut (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--5.35%--drop_in_place> (inlined)\n | | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | | \n | | | | | | --5.10%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --3.57%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--1.53%--drop_in_place> (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | inner (inlined)\n | | | | | | | as_ref> (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | validate_slot_identity (inlined)\n | | | | | | \n | | | | | |--4.33%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | | finish (inlined)\n | | | | | | | \n | | | | | | --3.82%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | |--2.55%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop_in_place> (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | dec_strong> (inlined)\n | | | | | | | set (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | replace (inlined)\n | | | | | | | release_or_defer (inlined)\n | | | | | | | | \n | | | | | | | --1.78%--drop_in_place> (inlined)\n | | | | | | | drop_in_place (inlined)\n | | | | | | | drop (inlined)\n | | | | | | | get (inlined)\n | | | | | | | apply_deferred_operation (inlined)\n | | | | | | | | \n | | | | | | | --1.53%--release_heap_reference (inlined)\n | | | | | | | release_reference (inlined)\n | | | | | | | | \n | | | | | | | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | | release_raw_no_drain (inlined)\n | | | | | | | validate_slot_identity (inlined)\n | | | | | | | \n | | | | | | --1.27%--drop_in_place (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | release_or_defer (inlined)\n | | | | | | | \n | | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | apply_deferred_operation (inlined)\n | | | | | | \n | | | | | |--3.27%--push_bytecode_active_frame (inlined)\n | | | | | | | \n | | | | | | --2.51%--push_active_frame (inlined)\n | | | | | | \n | | | | | |--1.78%--branch (inlined)\n | | | | | | \n | | | | | |--1.77%--branch (inlined)\n | | | | | | \n | | | | | --1.53%--drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | | \n | | | | | --1.27%--release_or_defer (inlined)\n | | | | | | \n | | | | | --1.02%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | --5.35%--branch (inlined)\n | | | | bytecode_for_callable (inlined)\n | | | | | \n | | | | --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | | \n | | | --1.01%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | \n | | |--3.80%--branch (inlined)\n | | | direct_call_target_from_value (inlined)\n | | | | \n | | | --1.52%--drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --2.54%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | | \n | | --2.29%--inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --2.03%--apply_deferred_operation (inlined)\n | | | \n | | --1.27%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | \n | |--20.79%--execute_hot_instruction (inlined)\n | | | \n | | |--11.64%--branch (inlined)\n | | | | \n | | | |--7.32%--get_local (inlined)\n | | | | | \n | | | | --6.31%--read_frame_binding (inlined)\n | | | | \n | | | --1.02%--get_argument (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | |--4.07%--push_mut (inlined)\n | | | | \n | | | --2.80%--write (inlined)\n | | | \n | | --1.26%--drop_in_place (inlined)\n | | \n | --8.89%--execute_numeric_instruction (inlined)\n | | \n | |--7.39%--add (inlined)\n | | | \n | | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | \n | | | --1.78%--pop_pair (inlined)\n | | | \n | | |--1.02%--push (inlined)\n | | | push_mut (inlined)\n | | | \n | | --1.02%--number (inlined)\n | | \n | --1.50%--compare bool> (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 23.34% 0.00% qjs qjs [.] execute_hot_instruction (inlined)\n |\n ---execute_hot_instruction (inlined)\n | \n |--11.64%--branch (inlined)\n | | \n | |--7.32%--get_local (inlined)\n | | | \n | | --6.31%--read_frame_binding (inlined)\n | | \n | --1.02%--get_argument (inlined)\n | read_frame_binding (inlined)\n | \n |--5.86%--push_mut (inlined)\n | | \n | --3.82%--write (inlined)\n | \n --1.26%--drop_in_place (inlined)\n\n 16.24% 0.00% qjs qjs [.] release_or_defer (inlined)\n |\n ---release_or_defer (inlined)\n | \n |--13.43%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --13.18%--apply_deferred_operation (inlined)\n | | \n | --10.14%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --8.61%--release_raw_no_drain (inlined)\n | | \n | --5.56%--validate_slot_identity (inlined)\n | | \n | --1.77%--get (inlined)\n | get (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n\n 14.98% 14.98% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::::execute_bytecode_callable\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n |--1.77%--branch (inlined)\n | \n --1.27%--branch (inlined)\n\n 13.69% 0.00% qjs qjs [.] apply_deferred_operation (inlined)\n |\n ---apply_deferred_operation (inlined)\n | \n --10.14%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 13.43% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --13.18%--apply_deferred_operation (inlined)\n | \n --10.14%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 13.43% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --13.18%--apply_deferred_operation (inlined)\n | \n --10.14%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 13.43% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n get (inlined)\n | \n --13.18%--apply_deferred_operation (inlined)\n | \n --10.14%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 13.43% 0.00% qjs qjs [.] get (inlined)\n |\n ---get (inlined)\n | \n --13.18%--apply_deferred_operation (inlined)\n | \n --10.14%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 11.64% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n |--7.32%--get_local (inlined)\n | | \n | --6.31%--read_frame_binding (inlined)\n | \n --1.02%--get_argument (inlined)\n read_frame_binding (inlined)\n\n 10.14% 0.00% qjs qjs [.] release_heap_reference (inlined)\n |\n ---release_heap_reference (inlined)\n release_reference (inlined)\n | \n --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 10.14% 0.00% qjs qjs [.] release_reference (inlined)\n |\n ---release_reference (inlined)\n | \n --9.12%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 9.12% 0.00% qjs qjs [.] branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n |\n ---branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --8.61%--release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 8.89% 0.00% qjs qjs [.] execute_numeric_instruction (inlined)\n |\n ---execute_numeric_instruction (inlined)\n | \n |--7.39%--add (inlined)\n | | \n | |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | | \n | | --1.78%--pop_pair (inlined)\n | | \n | |--1.02%--push (inlined)\n | | push_mut (inlined)\n | | \n | --1.02%--number (inlined)\n | \n --1.50%--compare bool> (inlined)\n\n 8.61% 8.61% qjs qjs [.] quickjs_oxide::engine::heap::gc::::release_raw_no_drain\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n |--5.82%--call_internal (inlined)\n | | \n | --5.32%--{closure#0} (inlined)\n | execute_bytecode_callable (inlined)\n | | \n | |--1.78%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | finish (inlined)\n | | drop_in_place (inlined)\n | | | \n | | --1.27%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | dec_strong> (inlined)\n | | set (inlined)\n | | replace (inlined)\n | | replace (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | validate_slot_identity (inlined)\n | | \n | |--1.53%--drop_in_place> (inlined)\n | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | as_ref> (inlined)\n | | drop_in_place (inlined)\n | | | \n | | --1.02%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | apply_deferred_operation (inlined)\n | | release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_raw_no_drain (inlined)\n | | validate_slot_identity (inlined)\n | | \n | --1.50%--execute_published (inlined)\n | execute (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | release_heap_reference (inlined)\n | release_reference (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | | \n | --1.25%--validate_slot_identity (inlined)\n | \n |--1.52%--branch (inlined)\n | direct_call_target_from_value (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | release_heap_reference (inlined)\n | release_reference (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | \n --1.27%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 8.61% 0.00% qjs qjs [.] release_raw_no_drain (inlined)\n |\n ---release_raw_no_drain (inlined)\n | \n --5.56%--validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 7.62% 7.62% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --6.86%--execute_hot_instruction (inlined)\n | \n --3.04%--branch (inlined)\n\n 7.58% 0.00% qjs qjs [.] get_local (inlined)\n |\n ---get_local (inlined)\n | \n --6.31%--read_frame_binding (inlined)\n\n 7.39% 0.00% qjs qjs [.] add (inlined)\n |\n ---add (inlined)\n | \n |--3.06%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.78%--pop_pair (inlined)\n | \n |--1.02%--push (inlined)\n | push_mut (inlined)\n | \n --1.02%--number (inlined)\n\n 7.38% 7.38% qjs qjs [.] alloc::vec::Vec::push_mut\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--4.07%--execute_hot_instruction (inlined)\n | push_mut (inlined)\n | | \n | --2.80%--write (inlined)\n | \n |--2.04%--execute_call_instruction (inlined)\n | branch (inlined)\n | call_from_stack (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | call_internal (inlined)\n | {closure#0} (inlined)\n | execute_bytecode_callable (inlined)\n | execute_published (inlined)\n | execute (inlined)\n | execute_inner (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.78%--execute_hot_instruction (inlined)\n | push_mut (inlined)\n | | \n | --1.02%--write (inlined)\n | \n --1.02%--execute_numeric_instruction (inlined)\n add (inlined)\n push (inlined)\n push_mut (inlined)\n\n 7.38% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n --4.58%--write (inlined)\n\n 7.32% 7.32% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n | \n |--6.31%--get_local (inlined)\n | read_frame_binding (inlined)\n | \n --1.02%--get_argument (inlined)\n read_frame_binding (inlined)\n\n 7.32% 0.00% qjs qjs [.] read_frame_binding (inlined)\n |\n ---read_frame_binding (inlined)\n\n 5.60% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | \n --5.35%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --3.82%--drop_in_place (inlined)\n | \n |--1.53%--drop_in_place> (inlined)\n | | \n | --1.27%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | \n --1.27%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 5.60% 0.00% qjs qjs [.] drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n |\n ---drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | \n --5.35%--inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --3.82%--drop_in_place (inlined)\n | \n |--1.53%--drop_in_place> (inlined)\n | | \n | --1.27%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | \n --1.27%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 5.56% 0.00% qjs qjs [.] validate_slot_identity (inlined)\n |\n ---validate_slot_identity (inlined)\n | \n --1.77%--get (inlined)\n get (inlined)\n\n 5.35% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --4.84%--snapshot_function_bytecode (inlined)\n | \n |--1.02%--context (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | kind (inlined)\n | \n |--1.02%--function_bytecode (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | kind (inlined)\n | \n --1.02%--clone (inlined)\n try_clone (inlined)\n retain_function_bytecode_handle (inlined)\n retain_function_bytecode (inlined)\n retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 5.35% 0.00% qjs qjs [.] inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n |\n ---inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --3.82%--drop_in_place (inlined)\n | \n |--1.53%--drop_in_place> (inlined)\n | | \n | --1.27%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | \n --1.27%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 5.35% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n | \n --3.82%--drop_in_place (inlined)\n | \n |--1.53%--drop_in_place> (inlined)\n | | \n | --1.27%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | \n --1.27%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 5.35% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n bytecode_for_callable (inlined)\n | \n --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 5.35% 0.00% qjs qjs [.] bytecode_for_callable (inlined)\n |\n ---bytecode_for_callable (inlined)\n | \n --1.78%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 5.32% 5.32% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n | \n |--4.07%--add (inlined)\n | | \n | |--1.27%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.02%--number (inlined)\n | \n --1.25%--compare bool> (inlined)\n\n 5.09% 5.09% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n |--2.29%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.78%--execute_call_instruction (inlined)\n | branch (inlined)\n | call_from_stack (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | call_internal (inlined)\n | {closure#0} (inlined)\n | execute_bytecode_callable (inlined)\n | execute_published (inlined)\n | | \n | --1.52%--execute (inlined)\n | execute_inner (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 5.08% 5.08% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::apply_deferred_operation\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n --4.31%--call_internal (inlined)\n | \n --3.80%--{closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n |--1.76%--execute_published (inlined)\n | execute (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | | \n | --1.51%--release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | \n --1.02%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n finish (inlined)\n drop_in_place (inlined)\n\n 4.84% 0.00% qjs qjs [.] snapshot_function_bytecode (inlined)\n |\n ---snapshot_function_bytecode (inlined)\n | \n |--1.02%--context (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | kind (inlined)\n | \n |--1.02%--function_bytecode (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | kind (inlined)\n | \n --1.02%--clone (inlined)\n try_clone (inlined)\n retain_function_bytecode_handle (inlined)\n retain_function_bytecode (inlined)\n retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 4.59% 4.59% qjs qjs [.] quickjs_oxide::engine::code::runtime::::snapshot_function_bytecode\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n branch (inlined)\n snapshot_function_bytecode (inlined)\n | \n |--1.02%--context (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | kind (inlined)\n | \n |--1.02%--function_bytecode (inlined)\n | live_node (inlined)\n | validate_slot_identity (inlined)\n | kind (inlined)\n | kind (inlined)\n | \n --1.02%--clone (inlined)\n try_clone (inlined)\n retain_function_bytecode_handle (inlined)\n retain_function_bytecode (inlined)\n retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 4.58% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 4.33% 0.00% qjs qjs [.] branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n |\n ---branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n finish (inlined)\n | \n --3.82%--drop_in_place (inlined)\n | \n |--2.55%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | dec_strong> (inlined)\n | set (inlined)\n | replace (inlined)\n | replace (inlined)\n | release_or_defer (inlined)\n | | \n | --1.78%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | | \n | --1.53%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | validate_slot_identity (inlined)\n | \n --1.27%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 4.33% 0.00% qjs qjs [.] finish (inlined)\n |\n ---finish (inlined)\n | \n --3.82%--drop_in_place (inlined)\n | \n |--2.55%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | dec_strong> (inlined)\n | set (inlined)\n | replace (inlined)\n | replace (inlined)\n | release_or_defer (inlined)\n | | \n | --1.78%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | | \n | --1.53%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | validate_slot_identity (inlined)\n | \n --1.27%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 4.29% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n | \n --4.03%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.78%--inner (inlined)\n as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 4.29% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n | \n --4.03%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.78%--inner (inlined)\n as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 4.08% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n |--1.53%--drop_in_place> (inlined)\n | | \n | --1.27%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | \n --1.27%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 4.03% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.78%--inner (inlined)\n as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 4.03% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.78%--inner (inlined)\n as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 4.03% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --3.78%--inner (inlined)\n as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 4.03% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --3.78%--inner (inlined)\n as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 3.82% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n |--2.55%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | dec_strong> (inlined)\n | set (inlined)\n | replace (inlined)\n | replace (inlined)\n | release_or_defer (inlined)\n | | \n | --1.78%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | | \n | --1.53%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | validate_slot_identity (inlined)\n | \n --1.27%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 3.82% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n |--2.55%--dec_strong> (inlined)\n | set (inlined)\n | replace (inlined)\n | replace (inlined)\n | release_or_defer (inlined)\n | | \n | --1.78%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | | \n | --1.53%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | validate_slot_identity (inlined)\n | \n --1.27%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 3.82% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n |--2.55%--dec_strong> (inlined)\n | set (inlined)\n | replace (inlined)\n | replace (inlined)\n | release_or_defer (inlined)\n | | \n | --1.78%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | | \n | --1.53%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | validate_slot_identity (inlined)\n | \n --1.27%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 3.82% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n |--2.55%--dec_strong> (inlined)\n | set (inlined)\n | replace (inlined)\n | replace (inlined)\n | release_or_defer (inlined)\n | | \n | --1.78%--drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | apply_deferred_operation (inlined)\n | | \n | --1.53%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | validate_slot_identity (inlined)\n | \n --1.27%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 3.80% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n direct_call_target_from_value (inlined)\n | \n --1.52%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 3.80% 0.00% qjs qjs [.] direct_call_target_from_value (inlined)\n |\n ---direct_call_target_from_value (inlined)\n | \n --1.52%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 3.78% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 3.78% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n | \n --3.52%--release_or_defer (inlined)\n | \n --3.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --2.27%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.50%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n | \n --1.25%--validate_slot_identity (inlined)\n\n 3.57% 0.00% qjs qjs [.] branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.78%--pop_pair (inlined)\n\n 3.31% 3.31% qjs qjs [.] quickjs_oxide::engine::vm::call::::bytecode_for_callable\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n branch (inlined)\n bytecode_for_callable (inlined)\n\n 3.27% 0.00% qjs qjs [.] push_bytecode_active_frame (inlined)\n |\n ---push_bytecode_active_frame (inlined)\n | \n --2.51%--push_active_frame (inlined)\n\n 3.06% 3.06% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::release_or_defer\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --2.80%--execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n --2.55%--call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n --1.02%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n finish (inlined)\n drop_in_place (inlined)\n\n 3.06% 0.00% qjs qjs [.] validate_slot_identity (inlined)\n |\n ---validate_slot_identity (inlined)\n | \n --2.04%--kind (inlined)\n kind (inlined)\n\n 2.55% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] dec_strong> (inlined)\n |\n ---dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] set (inlined)\n |\n ---set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] replace (inlined)\n |\n ---replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --1.27%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.55% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.78%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.53%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 2.54% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --2.29%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --2.03%--apply_deferred_operation (inlined)\n | \n --1.27%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 2.54% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --2.29%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --2.03%--apply_deferred_operation (inlined)\n | \n --1.27%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 2.54% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --2.29%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --2.03%--apply_deferred_operation (inlined)\n | \n --1.27%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 2.54% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --2.29%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --2.03%--apply_deferred_operation (inlined)\n | \n --1.27%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 2.54% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --2.29%--inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --2.03%--apply_deferred_operation (inlined)\n | \n --1.27%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 2.53% 2.53% qjs qjs [.] core::ptr::drop_in_place\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--1.27%--execute_call_instruction (inlined)\n | branch (inlined)\n | \n --1.26%--execute_hot_instruction (inlined)\n drop_in_place (inlined)\n\n 2.53% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n\n 2.51% 0.00% qjs qjs [.] push_active_frame (inlined)\n |\n ---push_active_frame (inlined)\n\n 2.29% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --2.03%--apply_deferred_operation (inlined)\n | \n --1.27%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 2.29% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --2.03%--apply_deferred_operation (inlined)\n | \n --1.27%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 2.04% 0.00% qjs qjs [.] live_node (inlined)\n |\n ---live_node (inlined)\n validate_slot_identity (inlined)\n kind (inlined)\n kind (inlined)\n\n 2.04% 0.00% qjs qjs [.] kind (inlined)\n |\n ---kind (inlined)\n kind (inlined)\n\n 2.03% 2.03% qjs qjs [.] quickjs_oxide::engine::object::internal_methods::::direct_call_target_from_value\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n branch (inlined)\n direct_call_target_from_value (inlined)\n\n 2.00% 2.00% qjs qjs [.] quickjs_oxide::engine::vm::frames::::push_active_frame\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n push_bytecode_active_frame (inlined)\n push_active_frame (inlined)\n\n 1.78% 1.78% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::pop_pair\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n add (inlined)\n branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n pop_pair (inlined)\n\n 1.78% 0.00% qjs qjs [.] pop_pair (inlined)\n |\n ---pop_pair (inlined)\n\n 1.78% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.78% 1.78% qjs qjs [.] core::iter::adapters::try_process\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n branch (inlined)\n bytecode_for_callable (inlined)\n branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 1.78% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n |\n ---branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 1.78% 0.00% qjs qjs [.] try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n |\n ---try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 1.77% 0.00% qjs qjs [.] get (inlined)\n |\n ---get (inlined)\n get (inlined)\n\n 1.77% 0.00% qjs qjs [.] get (inlined)\n |\n ---get (inlined)\n\n 1.77% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.77% 1.77% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::call_from_stack\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n\n 1.53% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n | \n --1.27%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.53% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n | \n --1.27%--release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.53% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n | \n --1.27%--release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.53% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n | \n --1.27%--release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.53% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n | \n --1.27%--release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.53% 0.00% qjs qjs [.] dec_strong> (inlined)\n |\n ---dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n | \n --1.27%--release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.53% 0.00% qjs qjs [.] set (inlined)\n |\n ---set (inlined)\n replace (inlined)\n replace (inlined)\n | \n --1.27%--release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.53% 0.00% qjs qjs [.] replace (inlined)\n |\n ---replace (inlined)\n replace (inlined)\n | \n --1.27%--release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.53% 1.53% qjs qjs [.] quickjs_oxide::engine::builtins::dispatch::::call_internal\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n\n 1.52% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 1.52% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 1.52% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 1.52% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 1.52% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 1.52% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 1.50% 0.00% qjs qjs [.] push (inlined)\n |\n ---push (inlined)\n push_mut (inlined)\n | \n --1.25%--write (inlined)\n\n 1.50% 0.00% qjs qjs [.] compare bool> (inlined)\n |\n ---compare bool> (inlined)\n\n 1.27% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.27% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n validate_slot_identity (inlined)\n\n 1.27% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n\n 1.27% 1.27% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_call_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n\n 1.27% 0.00% qjs qjs [.] update_active_bytecode_pc (inlined)\n |\n ---update_active_bytecode_pc (inlined)\n | \n --1.02%--update_active_bytecode_pc (inlined)\n\n 1.27% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.27% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.27% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.02%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.27% 1.27% qjs qjs [.] ::get_local\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.02%--execute_hot_instruction (inlined)\n branch (inlined)\n get_local (inlined)\n\n 1.02% 0.00% qjs qjs [.] context (inlined)\n |\n ---context (inlined)\n live_node (inlined)\n validate_slot_identity (inlined)\n kind (inlined)\n kind (inlined)\n\n 1.02% 1.02% qjs libc.so.6 [.] cfree\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f380f627781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n\n 1.02% 0.00% qjs libc.so.6 [.] __libc_free (inlined)\n |\n ---__libc_free (inlined)\n\n 1.02% 0.00% qjs qjs [.] function_bytecode (inlined)\n |\n ---function_bytecode (inlined)\n live_node (inlined)\n validate_slot_identity (inlined)\n kind (inlined)\n kind (inlined)\n\n 1.02% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n\n 1.02% 0.00% qjs qjs [.] get_argument (inlined)\n |\n ---get_argument (inlined)\n read_frame_binding (inlined)\n\n 1.02% 0.00% qjs qjs [.] clone (inlined)\n |\n ---clone (inlined)\n try_clone (inlined)\n retain_function_bytecode_handle (inlined)\n retain_function_bytecode (inlined)\n retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 1.02% 0.00% qjs qjs [.] try_clone (inlined)\n |\n ---try_clone (inlined)\n retain_function_bytecode_handle (inlined)\n retain_function_bytecode (inlined)\n retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 1.02% 0.00% qjs qjs [.] retain_function_bytecode_handle (inlined)\n |\n ---retain_function_bytecode_handle (inlined)\n retain_function_bytecode (inlined)\n retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 1.02% 0.00% qjs qjs [.] retain_function_bytecode (inlined)\n |\n ---retain_function_bytecode (inlined)\n retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 1.02% 0.00% qjs qjs [.] retain_raw (inlined)\n |\n ---retain_raw (inlined)\n live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 1.02% 0.00% qjs qjs [.] live_node_mut (inlined)\n |\n ---live_node_mut (inlined)\n validate_slot_identity (inlined)\n\n 1.02% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n\n 1.02% 0.00% qjs qjs [.] number (inlined)\n |\n ---number (inlined)\n\n 1.01% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.01% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.01% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.01% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.01% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.01% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.01% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n\n\n#\n# (Tip: List events using substring match: perf list )\n#\n", + "children_stderr": "" + }, + { + "command": [ + "taskset", + "-c", + "2", + "perf", + "record", + "-q", + "-e", + "cycles:u", + "-F", + "499", + "--call-graph", + "fp", + "-o", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-2.data", + "--", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-profile/release/qjs", + "/tmp/quickjs-oxide-final-bench-2034d98/dist/oxide-fixed/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 865555229, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-hardware/profile-func_call-2.stderr", + "case": "func_call", + "repetition": 2, + "status": "ok", + "data_sha256": "223b65d7d607adc8bc52677ffaff59dee522f7c2a501cdd57a4c0e4550bbd76a", + "self": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 409 of event 'cycles:u'\n# Event count (approx.): 3694513412\n#\n# Overhead Command Shared Object Symbol \n# ........ ....... .................... .......................................................................................................................................\n#\n 14.10% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::::execute_bytecode_callable\n | \n |--7.19%--execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f10c8227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.23%--branch (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f10c8227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--1.71%--branch (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f10c8227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.48%--push_bytecode_active_frame (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 8.90% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n | \n |--3.46%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --2.71%--add (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f10c8227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n |--2.98%--add (inlined)\n | execute_numeric_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f10c8227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --1.74%--number (inlined)\n add (inlined)\n execute_numeric_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 8.61% qjs qjs [.] quickjs_oxide::engine::heap::gc::::release_raw_no_drain\n | \n |--4.44%--release_raw_no_drain (inlined)\n | | \n | |--3.22%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | release_reference (inlined)\n | | release_heap_reference (inlined)\n | | apply_deferred_operation (inlined)\n | | get (inlined)\n | | drop (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.97%--as_ref> (inlined)\n | | inner (inlined)\n | | drop (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | \n | --1.22%--get (inlined)\n | drop (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | release_or_defer (inlined)\n | \n |--2.45%--validate_slot_identity (inlined)\n | release_raw_no_drain (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_reference (inlined)\n | release_heap_reference (inlined)\n | apply_deferred_operation (inlined)\n | get (inlined)\n | drop (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | release_or_defer (inlined)\n | | \n | --1.97%--as_ref> (inlined)\n | inner (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | \n --1.24%--kind (inlined)\n\n 7.69% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n | \n |--4.47%--execute_hot_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | | \n | |--2.74%--call (inlined)\n | | execute (inlined)\n | | {closure#0} (inlined)\n | | eval_compiling_with_options (inlined)\n | | eval_bytes_with_options (inlined)\n | | try_allocate_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | with_capacity_in (inlined)\n | | to_vec (inlined)\n | | to_vec_in (inlined)\n | | to_vec (inlined)\n | | to_owned (inlined)\n | | to_owned (inlined)\n | | from (inlined)\n | | into<&str, alloc::string::String> (inlined)\n | | new<&str> (inlined)\n | | eval_bytes_with_filename (inlined)\n | | evaluate (inlined)\n | | main (inlined)\n | | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | | as_i32 (inlined)\n | | to_i32 (inlined)\n | | {closure#0} (inlined)\n | | {closure#0} (inlined)\n | | do_call (inlined)\n | | catch_unwind (inlined)\n | | catch_unwind (inlined)\n | | lang_start_internal (inlined)\n | | main\n | | 0x7f10c8227781\n | | call_init (inlined)\n | | __libc_start_main_impl (inlined)\n | | _start\n | | \n | --1.74%--call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f10c8227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --2.72%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 6.19% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---read_frame_binding (inlined)\n | \n --5.95%--get_local (inlined)\n branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.73% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n | \n --2.47%--execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n | \n --1.48%--call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.49% qjs qjs [.] quickjs_oxide::engine::vm::call::::bytecode_for_callable\n | \n --3.22%--bytecode_for_callable (inlined)\n branch (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.48% qjs qjs [.] quickjs_oxide::engine::vm::frames::::push_active_frame\n | \n |--2.46%--write (inlined)\n | push_mut (inlined)\n | push (inlined)\n | push_active_frame (inlined)\n | push_bytecode_active_frame (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call_value_internal (inlined)\n | call_with_borrowed_arguments (inlined)\n | call_from_stack (inlined)\n | branch (inlined)\n | execute_call_instruction (inlined)\n | branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | execute_inner (inlined)\n | execute (inlined)\n | execute_published (inlined)\n | execute_bytecode_callable (inlined)\n | {closure#0} (inlined)\n | call_internal (inlined)\n | call (inlined)\n | execute (inlined)\n | {closure#0} (inlined)\n | eval_compiling_with_options (inlined)\n | eval_bytes_with_options (inlined)\n | try_allocate_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | with_capacity_in (inlined)\n | to_vec (inlined)\n | to_vec_in (inlined)\n | to_vec (inlined)\n | to_owned (inlined)\n | to_owned (inlined)\n | from (inlined)\n | into<&str, alloc::string::String> (inlined)\n | new<&str> (inlined)\n | eval_bytes_with_filename (inlined)\n | evaluate (inlined)\n | main (inlined)\n | __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n | as_i32 (inlined)\n | to_i32 (inlined)\n | {closure#0} (inlined)\n | {closure#0} (inlined)\n | do_call (inlined)\n | catch_unwind (inlined)\n | catch_unwind (inlined)\n | lang_start_internal (inlined)\n | main\n | 0x7f10c8227781\n | call_init (inlined)\n | __libc_start_main_impl (inlined)\n | _start\n | \n --2.01%--push_active_frame (inlined)\n push_bytecode_active_frame (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.28% qjs qjs [.] alloc::vec::Vec::push_mut\n | \n --3.29%--write (inlined)\n push_mut (inlined)\n | \n --2.54%--execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n | \n --1.98%--call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 4.00% qjs qjs [.] quickjs_oxide::engine::code::runtime::::snapshot_function_bytecode\n | \n --1.24%--kind (inlined)\n kind (inlined)\n validate_slot_identity (inlined)\n live_node (inlined)\n\n 3.98% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::apply_deferred_operation\n | \n --3.24%--apply_deferred_operation (inlined)\n | \n --2.77%--get (inlined)\n drop (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n release_or_defer (inlined)\n | \n |--1.74%--as_ref> (inlined)\n | inner (inlined)\n | drop (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | | \n | --1.24%--drop_in_place (inlined)\n | \n --1.03%--replace (inlined)\n replace (inlined)\n set (inlined)\n dec_strong> (inlined)\n drop (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n\n 2.73% qjs qjs [.] quickjs_oxide::engine::vm::protocol::Vm::execute_published\n |\n ---execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 2.22% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::release_or_defer\n | \n --1.48%--release_or_defer (inlined)\n as_ref> (inlined)\n inner (inlined)\n drop (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n\n 1.99% qjs qjs [.] ::clone\n |\n ---clone (inlined)\n | \n --1.49%--branch (inlined)\n execute_hot_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.98% qjs qjs [.] quickjs_oxide::engine::object::internal_methods::::direct_call_target_from_value\n | \n --1.49%--direct_call_target_from_value (inlined)\n branch (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.74% qjs qjs [.] core::ptr::drop_in_place\n 1.73% qjs qjs [.] core::iter::adapters::try_process\n | \n --1.49%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n bytecode_for_callable (inlined)\n branch (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n 1.49% qjs libc.so.6 [.] malloc\n 1.00% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::call_from_stack\n |\n ---call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call_value_internal (inlined)\n call_with_borrowed_arguments (inlined)\n call_from_stack (inlined)\n branch (inlined)\n execute_call_instruction (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_inner (inlined)\n execute (inlined)\n execute_published (inlined)\n execute_bytecode_callable (inlined)\n {closure#0} (inlined)\n call_internal (inlined)\n call (inlined)\n execute (inlined)\n {closure#0} (inlined)\n eval_compiling_with_options (inlined)\n eval_bytes_with_options (inlined)\n try_allocate_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n to_owned (inlined)\n to_owned (inlined)\n from (inlined)\n into<&str, alloc::string::String> (inlined)\n new<&str> (inlined)\n eval_bytes_with_filename (inlined)\n evaluate (inlined)\n main (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n as_i32 (inlined)\n to_i32 (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n do_call (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n lang_start_internal (inlined)\n main\n 0x7f10c8227781\n call_init (inlined)\n __libc_start_main_impl (inlined)\n _start\n\n\n\n#\n# (Tip: To trace calls using Processor Trace use perf record -e intel_pt// ... ; perf script --call-trace. Then use perf script --time A-B --insn-trace to look at region of interest.)\n#\n", + "self_stderr": "", + "children": "# To display the perf.data header info, please use --header/--header-only options.\n#\n#\n# Total Lost Samples: 0\n#\n# Samples: 409 of event 'cycles:u'\n# Event count (approx.): 3694513412\n#\n# Children Self Command Shared Object Symbol \n# ........ ........ ....... .................... .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n#\n 99.99% 0.00% qjs qjs [.] _start\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs libc.so.6 [.] __libc_start_main_impl (inlined)\n |\n ---__libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs libc.so.6 [.] call_init (inlined)\n |\n ---call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs libc.so.6 [.] 0x00007f10c8227781\n |\n ---0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] lang_start_internal (inlined)\n |\n ---lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] main\n |\n ---main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] catch_unwind (inlined)\n |\n ---catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] do_call (inlined)\n |\n ---do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] to_i32 (inlined)\n |\n ---to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] as_i32 (inlined)\n |\n ---as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n |\n ---__rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] main (inlined)\n |\n ---main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] evaluate (inlined)\n |\n ---evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] eval_bytes_with_filename (inlined)\n |\n ---eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] new<&str> (inlined)\n |\n ---new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] into<&str, alloc::string::String> (inlined)\n |\n ---into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] from (inlined)\n |\n ---from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] to_owned (inlined)\n |\n ---to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] to_vec_in (inlined)\n |\n ---to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] to_vec (inlined)\n |\n ---to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] with_capacity_in (inlined)\n |\n ---with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] try_allocate_in (inlined)\n |\n ---try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] eval_bytes_with_options (inlined)\n |\n ---eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] eval_compiling_with_options (inlined)\n |\n ---eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.99% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n | \n --99.34%--execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.34% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n | \n --99.00%--call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] call (inlined)\n |\n ---call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] call_internal (inlined)\n |\n ---call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] {closure#0} (inlined)\n |\n ---{closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] execute_bytecode_callable (inlined)\n |\n ---execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] execute_published (inlined)\n |\n ---execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] execute (inlined)\n |\n ---execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] execute_inner (inlined)\n |\n ---execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] execute_call_instruction (inlined)\n |\n ---execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] call_from_stack (inlined)\n |\n ---call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] call_with_borrowed_arguments (inlined)\n |\n ---call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 99.00% 0.00% qjs qjs [.] call_value_internal (inlined)\n |\n ---call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --96.00%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--65.75%--execute_call_instruction (inlined)\n | branch (inlined)\n | | \n | --64.76%--call_from_stack (inlined)\n | | \n | --63.51%--call_with_borrowed_arguments (inlined)\n | call_value_internal (inlined)\n | | \n | |--56.11%--call_internal (inlined)\n | | | \n | | |--53.14%--{closure#0} (inlined)\n | | | | \n | | | |--44.69%--execute_bytecode_callable (inlined)\n | | | | | \n | | | | |--13.67%--execute_published (inlined)\n | | | | | | \n | | | | | --9.46%--execute (inlined)\n | | | | | | \n | | | | | |--5.18%--drop_in_place (inlined)\n | | | | | | | \n | | | | | | --4.69%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | | \n | | | | | | --3.94%--drop_in_place (inlined)\n | | | | | | drop_in_place> (inlined)\n | | | | | | drop (inlined)\n | | | | | | | \n | | | | | | --3.20%--inner (inlined)\n | | | | | | as_ref> (inlined)\n | | | | | | | \n | | | | | | --2.73%--release_or_defer (inlined)\n | | | | | | | \n | | | | | | --2.23%--drop_in_place> (inlined)\n | | | | | | drop_in_place (inlined)\n | | | | | | drop (inlined)\n | | | | | | get (inlined)\n | | | | | | | \n | | | | | | --1.98%--apply_deferred_operation (inlined)\n | | | | | | | \n | | | | | | --1.73%--release_heap_reference (inlined)\n | | | | | | release_reference (inlined)\n | | | | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | | | release_raw_no_drain (inlined)\n | | | | | | \n | | | | | --3.78%--execute_inner (inlined)\n | | | | | | \n | | | | | --2.30%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | | | | | execute_hot_instruction (inlined)\n | | | | | \n | | | | |--6.45%--push_bytecode_active_frame (inlined)\n | | | | | | \n | | | | | --4.97%--push_active_frame (inlined)\n | | | | | | \n | | | | | --2.46%--push (inlined)\n | | | | | push_mut (inlined)\n | | | | | write (inlined)\n | | | | | \n | | | | |--6.23%--branch (inlined)\n | | | | | | \n | | | | | --4.00%--snapshot_function_bytecode (inlined)\n | | | | | | \n | | | | | --1.27%--function_bytecode (inlined)\n | | | | | | \n | | | | | --1.00%--live_node (inlined)\n | | | | | validate_slot_identity (inlined)\n | | | | | \n | | | | |--4.21%--drop_in_place> (inlined)\n | | | | | drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n | | | | | as_ref> (inlined)\n | | | | | | \n | | | | | --3.72%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.73%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | inner (inlined)\n | | | | | as_ref> (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | apply_deferred_operation (inlined)\n | | | | | \n | | | | |--2.47%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | | | | finish (inlined)\n | | | | | | \n | | | | | --1.97%--drop_in_place (inlined)\n | | | | | | \n | | | | | --1.24%--drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop (inlined)\n | | | | | dec_strong> (inlined)\n | | | | | set (inlined)\n | | | | | replace (inlined)\n | | | | | replace (inlined)\n | | | | | release_or_defer (inlined)\n | | | | | drop_in_place> (inlined)\n | | | | | drop_in_place (inlined)\n | | | | | drop (inlined)\n | | | | | get (inlined)\n | | | | | \n | | | | |--1.71%--branch (inlined)\n | | | | | \n | | | | --1.26%--drop_in_place (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop_in_place> (inlined)\n | | | | drop (inlined)\n | | | | dec_strong> (inlined)\n | | | | set (inlined)\n | | | | replace (inlined)\n | | | | replace (inlined)\n | | | | release_or_defer (inlined)\n | | | | | \n | | | | --1.01%--drop_in_place> (inlined)\n | | | | drop_in_place (inlined)\n | | | | drop (inlined)\n | | | | get (inlined)\n | | | | apply_deferred_operation (inlined)\n | | | | \n | | | --8.20%--branch (inlined)\n | | | bytecode_for_callable (inlined)\n | | | | \n | | | --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | | \n | | | --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n | | | \n | | --1.24%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | \n | |--5.42%--branch (inlined)\n | | | \n | | --5.17%--direct_call_target_from_value (inlined)\n | | | \n | | --3.19%--drop_in_place (inlined)\n | | drop_in_place (inlined)\n | | drop_in_place> (inlined)\n | | drop (inlined)\n | | inner (inlined)\n | | as_ref> (inlined)\n | | release_or_defer (inlined)\n | | | \n | | --2.20%--drop_in_place> (inlined)\n | | drop_in_place (inlined)\n | | drop (inlined)\n | | get (inlined)\n | | | \n | | --1.98%--apply_deferred_operation (inlined)\n | | | \n | | --1.73%--release_heap_reference (inlined)\n | | release_reference (inlined)\n | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | \n | | --1.24%--release_raw_no_drain (inlined)\n | | \n | --1.73%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.48%--apply_deferred_operation (inlined)\n | \n |--17.87%--execute_hot_instruction (inlined)\n | | \n | |--10.90%--branch (inlined)\n | | | \n | | |--5.95%--get_local (inlined)\n | | | read_frame_binding (inlined)\n | | | \n | | --1.49%--clone (inlined)\n | | \n | --2.73%--push_mut (inlined)\n | | \n | --1.98%--write (inlined)\n | \n --11.13%--execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 20.17% 0.00% qjs qjs [.] execute_hot_instruction (inlined)\n |\n ---execute_hot_instruction (inlined)\n | \n |--10.90%--branch (inlined)\n | | \n | |--5.95%--get_local (inlined)\n | | read_frame_binding (inlined)\n | | \n | --1.49%--clone (inlined)\n | \n --3.29%--push_mut (inlined)\n | \n --2.54%--write (inlined)\n\n 14.35% 0.00% qjs qjs [.] release_or_defer (inlined)\n |\n ---release_or_defer (inlined)\n | \n --12.12%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n |--10.90%--apply_deferred_operation (inlined)\n | | \n | --8.13%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --7.40%--release_raw_no_drain (inlined)\n | | \n | --4.18%--validate_slot_identity (inlined)\n | | \n | --1.24%--kind (inlined)\n | \n --1.22%--release_raw_no_drain (inlined)\n\n 14.10% 14.10% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::::execute_bytecode_callable\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n | \n |--2.23%--branch (inlined)\n | \n |--1.71%--branch (inlined)\n | \n --1.48%--push_bytecode_active_frame (inlined)\n\n 12.12% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n |--10.90%--apply_deferred_operation (inlined)\n | | \n | --8.13%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --7.40%--release_raw_no_drain (inlined)\n | | \n | --4.18%--validate_slot_identity (inlined)\n | | \n | --1.24%--kind (inlined)\n | \n --1.22%--release_raw_no_drain (inlined)\n\n 12.12% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n |--10.90%--apply_deferred_operation (inlined)\n | | \n | --8.13%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --7.40%--release_raw_no_drain (inlined)\n | | \n | --4.18%--validate_slot_identity (inlined)\n | | \n | --1.24%--kind (inlined)\n | \n --1.22%--release_raw_no_drain (inlined)\n\n 12.12% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n get (inlined)\n | \n |--10.90%--apply_deferred_operation (inlined)\n | | \n | --8.13%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --7.40%--release_raw_no_drain (inlined)\n | | \n | --4.18%--validate_slot_identity (inlined)\n | | \n | --1.24%--kind (inlined)\n | \n --1.22%--release_raw_no_drain (inlined)\n\n 12.12% 0.00% qjs qjs [.] get (inlined)\n |\n ---get (inlined)\n | \n |--10.90%--apply_deferred_operation (inlined)\n | | \n | --8.13%--release_heap_reference (inlined)\n | release_reference (inlined)\n | | \n | --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | \n | --7.40%--release_raw_no_drain (inlined)\n | | \n | --4.18%--validate_slot_identity (inlined)\n | | \n | --1.24%--kind (inlined)\n | \n --1.22%--release_raw_no_drain (inlined)\n\n 11.37% 0.00% qjs qjs [.] apply_deferred_operation (inlined)\n |\n ---apply_deferred_operation (inlined)\n | \n --8.13%--release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.40%--release_raw_no_drain (inlined)\n | \n --4.18%--validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n\n 11.13% 0.00% qjs qjs [.] execute_numeric_instruction (inlined)\n |\n ---execute_numeric_instruction (inlined)\n | \n |--8.42%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.97%--compare bool> (inlined)\n\n 10.90% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n |--5.95%--get_local (inlined)\n | read_frame_binding (inlined)\n | \n --1.49%--clone (inlined)\n\n 8.90% 8.90% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_numeric_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_numeric_instruction (inlined)\n | \n |--7.43%--add (inlined)\n | | \n | |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | | \n | --1.74%--number (inlined)\n | \n --1.22%--compare bool> (inlined)\n\n 8.61% 8.61% qjs qjs [.] quickjs_oxide::engine::heap::gc::::release_raw_no_drain\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n |--5.92%--call_internal (inlined)\n | | \n | |--4.68%--{closure#0} (inlined)\n | | execute_bytecode_callable (inlined)\n | | | \n | | |--1.98%--execute_published (inlined)\n | | | execute (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place (inlined)\n | | | drop_in_place> (inlined)\n | | | drop (inlined)\n | | | inner (inlined)\n | | | as_ref> (inlined)\n | | | release_or_defer (inlined)\n | | | drop_in_place> (inlined)\n | | | drop_in_place (inlined)\n | | | drop (inlined)\n | | | get (inlined)\n | | | | \n | | | --1.73%--apply_deferred_operation (inlined)\n | | | release_heap_reference (inlined)\n | | | release_reference (inlined)\n | | | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | | | release_raw_no_drain (inlined)\n | | | \n | | --1.23%--branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n | | finish (inlined)\n | | drop_in_place (inlined)\n | | \n | --1.24%--drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | \n |--1.46%--branch (inlined)\n | direct_call_target_from_value (inlined)\n | drop_in_place (inlined)\n | drop_in_place (inlined)\n | drop_in_place> (inlined)\n | drop (inlined)\n | inner (inlined)\n | as_ref> (inlined)\n | release_or_defer (inlined)\n | drop_in_place> (inlined)\n | drop_in_place (inlined)\n | drop (inlined)\n | get (inlined)\n | | \n | --1.24%--apply_deferred_operation (inlined)\n | release_heap_reference (inlined)\n | release_reference (inlined)\n | branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | release_raw_no_drain (inlined)\n | \n --1.23%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 8.61% 0.00% qjs qjs [.] release_raw_no_drain (inlined)\n |\n ---release_raw_no_drain (inlined)\n | \n --4.18%--validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n\n 8.42% 0.00% qjs qjs [.] add (inlined)\n |\n ---add (inlined)\n | \n |--2.71%--branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.74%--number (inlined)\n\n 8.20% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n bytecode_for_callable (inlined)\n | \n --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 8.20% 0.00% qjs qjs [.] bytecode_for_callable (inlined)\n |\n ---bytecode_for_callable (inlined)\n | \n --2.99%--branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 8.13% 0.00% qjs qjs [.] release_heap_reference (inlined)\n |\n ---release_heap_reference (inlined)\n release_reference (inlined)\n | \n --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.40%--release_raw_no_drain (inlined)\n | \n --4.18%--validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n\n 8.13% 0.00% qjs qjs [.] release_reference (inlined)\n |\n ---release_reference (inlined)\n | \n --7.89%--branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.40%--release_raw_no_drain (inlined)\n | \n --4.18%--validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n\n 7.89% 0.00% qjs qjs [.] branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n |\n ---branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --7.40%--release_raw_no_drain (inlined)\n | \n --4.18%--validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n\n 7.69% 7.69% qjs qjs [.] quickjs_oxide::engine::vm::dispatch::::execute_hot_instruction\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n |--5.96%--execute_hot_instruction (inlined)\n | | \n | --2.72%--branch (inlined)\n | \n --1.74%--execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n\n 6.45% 0.00% qjs qjs [.] push_bytecode_active_frame (inlined)\n |\n ---push_bytecode_active_frame (inlined)\n | \n --4.97%--push_active_frame (inlined)\n | \n --2.46%--push (inlined)\n push_mut (inlined)\n write (inlined)\n\n 6.44% 0.00% qjs qjs [.] get_local (inlined)\n |\n ---get_local (inlined)\n | \n --5.95%--read_frame_binding (inlined)\n\n 6.23% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --4.00%--snapshot_function_bytecode (inlined)\n | \n --1.27%--function_bytecode (inlined)\n | \n --1.00%--live_node (inlined)\n validate_slot_identity (inlined)\n\n 6.19% 6.19% qjs qjs [.] quickjs_oxide::engine::vm::host_bridge::read_frame_binding\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_hot_instruction (inlined)\n branch (inlined)\n | \n --5.95%--get_local (inlined)\n read_frame_binding (inlined)\n\n 6.19% 0.00% qjs qjs [.] read_frame_binding (inlined)\n |\n ---read_frame_binding (inlined)\n\n 5.42% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n | \n --5.17%--direct_call_target_from_value (inlined)\n | \n --3.19%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 5.18% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n --4.69%--drop_in_place> (inlined)\n drop_in_place (inlined)\n | \n --3.94%--drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.20%--inner (inlined)\n as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 5.17% 0.00% qjs qjs [.] direct_call_target_from_value (inlined)\n |\n ---direct_call_target_from_value (inlined)\n | \n --3.19%--drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 4.97% 0.00% qjs qjs [.] push_active_frame (inlined)\n |\n ---push_active_frame (inlined)\n | \n --2.46%--push (inlined)\n push_mut (inlined)\n write (inlined)\n\n 4.73% 4.73% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::execute_inner\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n | \n --1.73%--branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.48%--execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n\n 4.69% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n | \n --3.94%--drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.20%--inner (inlined)\n as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 4.69% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n --3.94%--drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.20%--inner (inlined)\n as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 4.49% 4.49% qjs qjs [.] quickjs_oxide::engine::vm::call::::bytecode_for_callable\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n branch (inlined)\n bytecode_for_callable (inlined)\n\n 4.48% 4.48% qjs qjs [.] quickjs_oxide::engine::vm::frames::::push_active_frame\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n push_bytecode_active_frame (inlined)\n push_active_frame (inlined)\n | \n --2.46%--push (inlined)\n push_mut (inlined)\n write (inlined)\n\n 4.28% 4.28% qjs qjs [.] alloc::vec::Vec::push_mut\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --2.73%--execute_hot_instruction (inlined)\n push_mut (inlined)\n | \n --1.98%--write (inlined)\n\n 4.28% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n | \n --3.29%--write (inlined)\n\n 4.21% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --3.72%--drop_in_place (inlined)\n | \n --1.73%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 4.21% 0.00% qjs qjs [.] drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n |\n ---drop<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --3.72%--drop_in_place (inlined)\n | \n --1.73%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 4.21% 0.00% qjs qjs [.] inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n |\n ---inner<[quickjs_oxide::engine::code::bytecode::Instruction], alloc::alloc::Global> (inlined)\n as_ref> (inlined)\n | \n --3.72%--drop_in_place (inlined)\n | \n --1.73%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 4.21% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n | \n --3.72%--drop_in_place (inlined)\n | \n --1.73%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 4.18% 0.00% qjs qjs [.] validate_slot_identity (inlined)\n |\n ---validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n\n 4.00% 4.00% qjs qjs [.] quickjs_oxide::engine::code::runtime::::snapshot_function_bytecode\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n branch (inlined)\n snapshot_function_bytecode (inlined)\n | \n --1.27%--function_bytecode (inlined)\n | \n --1.00%--live_node (inlined)\n validate_slot_identity (inlined)\n\n 4.00% 0.00% qjs qjs [.] snapshot_function_bytecode (inlined)\n |\n ---snapshot_function_bytecode (inlined)\n | \n --1.27%--function_bytecode (inlined)\n | \n --1.00%--live_node (inlined)\n validate_slot_identity (inlined)\n\n 3.98% 3.98% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::apply_deferred_operation\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n --2.74%--call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n\n 3.94% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --3.20%--inner (inlined)\n as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 3.94% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --3.20%--inner (inlined)\n as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 3.94% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --3.20%--inner (inlined)\n as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 3.72% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n --1.73%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 3.70% 0.00% qjs qjs [.] branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n |\n ---branch<(quickjs_oxide::engine::value::Value, quickjs_oxide::engine::value::Value), quickjs_oxide::engine::api::error::Error> (inlined)\n\n 3.29% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 3.20% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 3.20% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n | \n --2.73%--release_or_defer (inlined)\n | \n --2.23%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n release_raw_no_drain (inlined)\n\n 3.19% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 3.19% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 3.19% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 3.19% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 3.19% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 3.19% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n | \n --2.20%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.98%--apply_deferred_operation (inlined)\n | \n --1.73%--release_heap_reference (inlined)\n release_reference (inlined)\n branch<(), quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --1.24%--release_raw_no_drain (inlined)\n\n 2.99% 0.00% qjs qjs [.] branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n |\n ---branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n | \n --2.23%--try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 2.73% 2.73% qjs qjs [.] quickjs_oxide::engine::vm::protocol::Vm::execute_published\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.98%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.98%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n\n 2.48% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.98%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n\n 2.48% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.98%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n\n 2.48% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.98%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n | \n --1.24%--release_heap_reference (inlined)\n release_reference (inlined)\n\n 2.47% 0.00% qjs qjs [.] branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n |\n ---branch<(), quickjs_oxide::engine::api::runtime_error::RuntimeError> (inlined)\n finish (inlined)\n | \n --1.97%--drop_in_place (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 2.47% 0.00% qjs qjs [.] finish (inlined)\n |\n ---finish (inlined)\n | \n --1.97%--drop_in_place (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 2.46% 0.00% qjs qjs [.] push (inlined)\n |\n ---push (inlined)\n push_mut (inlined)\n write (inlined)\n\n 2.46% 0.00% qjs qjs [.] push_mut (inlined)\n |\n ---push_mut (inlined)\n write (inlined)\n\n 2.46% 0.00% qjs qjs [.] write (inlined)\n |\n ---write (inlined)\n\n 2.24% 0.00% qjs qjs [.] validate_slot_identity (inlined)\n |\n ---validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n kind (inlined)\n\n 2.23% 0.00% qjs qjs [.] try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n |\n ---try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 2.22% 2.22% qjs qjs [.] quickjs_oxide::engine::heap::ownership::::release_or_defer\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n | \n --1.24%--call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n\n 1.99% 0.00% qjs qjs [.] live_node (inlined)\n |\n ---live_node (inlined)\n validate_slot_identity (inlined)\n | \n --1.24%--kind (inlined)\n kind (inlined)\n\n 1.99% 1.99% qjs qjs [.] ::clone\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n | \n --1.49%--execute_hot_instruction (inlined)\n branch (inlined)\n clone (inlined)\n\n 1.99% 0.00% qjs qjs [.] clone (inlined)\n |\n ---clone (inlined)\n\n 1.98% 1.98% qjs qjs [.] quickjs_oxide::engine::object::internal_methods::::direct_call_target_from_value\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n branch (inlined)\n direct_call_target_from_value (inlined)\n\n 1.97% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.97% 0.00% qjs qjs [.] compare bool> (inlined)\n |\n ---compare bool> (inlined)\n\n 1.74% 1.74% qjs qjs [.] core::ptr::drop_in_place\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n drop_in_place (inlined)\n | \n --1.49%--drop_in_place> (inlined)\n drop_in_place (inlined)\n\n 1.74% 0.00% qjs qjs [.] number (inlined)\n |\n ---number (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n | \n --1.24%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.48%--apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.48%--apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.48%--apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.48%--apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.48%--apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.48%--apply_deferred_operation (inlined)\n\n 1.73% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n | \n --1.48%--apply_deferred_operation (inlined)\n\n 1.73% 1.73% qjs qjs [.] core::iter::adapters::try_process\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n branch (inlined)\n bytecode_for_callable (inlined)\n branch, quickjs_oxide::engine::heap::identity::HeapError> (inlined)\n try_process, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>, quickjs_oxide::engine::heap::roots::VarRefRoot, core::result::Result, core::result::{impl#26}::from_iter::{closure_env#0}, core::iter::adapters::map::Map, quickjs_oxide::engine::vm::call::{impl#0}::bytecode_for_callable::{closure_env#1}>>, alloc::vec::Vec> (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n | \n --1.24%--dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n | \n --1.24%--dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.73% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n | \n --1.24%--dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.71% 0.00% qjs qjs [.] branch (inlined)\n |\n ---branch (inlined)\n\n 1.49% 1.49% qjs libc.so.6 [.] malloc\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n\n 1.49% 0.00% qjs libc.so.6 [.] __libc_malloc (inlined)\n |\n ---__libc_malloc (inlined)\n\n 1.47% 0.00% qjs qjs [.] push (inlined)\n |\n ---push (inlined)\n push_mut (inlined)\n | \n --1.23%--write (inlined)\n\n 1.27% 0.00% qjs qjs [.] update_active_bytecode_pc (inlined)\n |\n ---update_active_bytecode_pc (inlined)\n update_active_bytecode_pc (inlined)\n\n 1.27% 0.00% qjs qjs [.] function_bytecode (inlined)\n |\n ---function_bytecode (inlined)\n | \n --1.00%--live_node (inlined)\n validate_slot_identity (inlined)\n\n 1.26% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.26% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.26% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.26% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.26% 0.00% qjs qjs [.] dec_strong> (inlined)\n |\n ---dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.26% 0.00% qjs qjs [.] set (inlined)\n |\n ---set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.26% 0.00% qjs qjs [.] replace (inlined)\n |\n ---replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n | \n --1.01%--drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n apply_deferred_operation (inlined)\n\n 1.24% 0.00% qjs qjs [.] kind (inlined)\n |\n ---kind (inlined)\n kind (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop (inlined)\n |\n ---drop (inlined)\n inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] inner (inlined)\n |\n ---inner (inlined)\n as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] as_ref> (inlined)\n |\n ---as_ref> (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place> (inlined)\n |\n ---drop_in_place> (inlined)\n drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] drop_in_place (inlined)\n |\n ---drop_in_place (inlined)\n drop_in_place (inlined)\n drop_in_place> (inlined)\n drop (inlined)\n dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] dec_strong> (inlined)\n |\n ---dec_strong> (inlined)\n set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] set (inlined)\n |\n ---set (inlined)\n replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] replace (inlined)\n |\n ---replace (inlined)\n replace (inlined)\n release_or_defer (inlined)\n drop_in_place> (inlined)\n drop_in_place (inlined)\n drop (inlined)\n get (inlined)\n\n 1.24% 0.00% qjs qjs [.] kind (inlined)\n |\n ---kind (inlined)\n\n 1.00% 1.00% qjs qjs [.] quickjs_oxide::engine::vm::frame_execution::::call_from_stack\n |\n ---_start\n __libc_start_main_impl (inlined)\n call_init (inlined)\n 0x7f10c8227781\n main\n lang_start_internal (inlined)\n catch_unwind (inlined)\n catch_unwind (inlined)\n do_call (inlined)\n {closure#0} (inlined)\n {closure#0} (inlined)\n to_i32 (inlined)\n as_i32 (inlined)\n __rust_begin_short_backtrace std::process::ExitCode, std::process::ExitCode> (inlined)\n main (inlined)\n evaluate (inlined)\n eval_bytes_with_filename (inlined)\n new<&str> (inlined)\n into<&str, alloc::string::String> (inlined)\n from (inlined)\n to_owned (inlined)\n to_owned (inlined)\n to_vec (inlined)\n to_vec_in (inlined)\n to_vec (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n with_capacity_in (inlined)\n try_allocate_in (inlined)\n eval_bytes_with_options (inlined)\n eval_compiling_with_options (inlined)\n {closure#0} (inlined)\n execute (inlined)\n call (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n call_with_borrowed_arguments (inlined)\n call_value_internal (inlined)\n call_internal (inlined)\n {closure#0} (inlined)\n execute_bytecode_callable (inlined)\n execute_published (inlined)\n execute (inlined)\n execute_inner (inlined)\n branch, quickjs_oxide::engine::api::error::Error> (inlined)\n execute_call_instruction (inlined)\n branch (inlined)\n call_from_stack (inlined)\n\n\n\n#\n# (Tip: For a higher level overview, try: perf report --sort comm,dso)\n#\n", + "children_stderr": "" + } + ] +} diff --git a/docs/reports/data-structure-hardware-final.md b/docs/reports/data-structure-hardware-final.md new file mode 100644 index 00000000..9a1321d2 --- /dev/null +++ b/docs/reports/data-structure-hardware-final.md @@ -0,0 +1,44 @@ +# Final hardware counters and remaining VM costs + +Ordinary release binaries and fixed counts match the final fixed-work report. +CPU 2, three interleaved repetitions per engine, user-space events only, +`perf stat -e instructions:u,cycles:u`. All 36 samples passed output admission; +both counters reported 100% scheduled time. No build or test overlapped collection. + +| Case | Before instructions (billions) | After | QuickJS | Before / after | +| --- | ---: | ---: | ---: | ---: | +| empty_loop | 12.039 | 11.047 | 0.562 | 1.09× | +| prop_write | 13.229 | 11.370 | 0.137 | 1.16× | +| array_write | 14.898 | 5.852 | 0.067 | 2.55× | +| map_set_string | 14.019 | 0.432 | 0.045 | 32.48× | + +The large Map and Array gains accompany fewer executed instructions, not just +a better wall-time sample. The fixed property-write case has four properties; +it is deliberately different from the width-2048 stress test. Startup, compilation +and teardown remain included in these process-wide event counts. QuickJS still +executes substantially less work on these programs; the data does not establish +that the remaining gap can be removed by another container change. + +A separate final-source release binary was built with debug information and +frame pointers, profiling feature disabled. Three `cycles:u` profiles per case +used `perf record -F 499 --call-graph fp`; this binary was not used for timing. +The six profiles have zero reported lost samples. Each covers the full fixed +program, including its source compilation. Percentages below are **self** cost +ranges across the three runs, not inclusive cost or predicted speedup. + +| Workload | Samples across runs | Remaining self-cost ranges | +| --- | ---: | --- | +| empty_loop | 1325 | `execute_hot_instruction` 19.8–24.9%; `execute_numeric_instruction` 19.3–22.6%; `read_frame_binding` 15.1–23.8%; `execute_inner` 10.3–13.3% | +| func_call | 1215 | `execute_bytecode_callable` 14.1–15.6%; `read_frame_binding` 6.2–7.3%; `release_raw_no_drain` 7.3–8.6% | + +Dispatch, frame binding reads, callee execution setup and reference management +remain visible. S17 did not remove local/TDZ/publication checks; S18 did not add a +frame pool. Further changes to those protocols need their own invariant argument +and evidence. The modest sample sizes and unisolated, unlocked-frequency host +do not support fine-grained percentage comparisons with earlier profiles that +used a different fixed source bundle. + +[Raw counters, self/inclusive reports and ELF identities](data-structure-hardware-final.json). +Workload paths, hashes and counts are in the [fixed-work report](data-structure-fixed-final.json). +The raw perf.data files remain under `target/final-hardware` with hashes recorded +in the JSON; no third-party benchmark source or ELF is vendored in the repository. diff --git a/docs/reports/data-structure-scaling-final.json b/docs/reports/data-structure-scaling-final.json new file mode 100644 index 00000000..292d0c7f --- /dev/null +++ b/docs/reports/data-structure-scaling-final.json @@ -0,0 +1,8682 @@ +{ + "final-scaling": { + "metadata": { + "schema": 1, + "metric": "whole-process wall nanoseconds; lower is better", + "instrumentation": "no profiling flags; verify ordinary builds via receipts", + "runner_sha256": "6f904f3124f6f05ba60fcf8f6a58a88b5d5301af4ad42bd06a143635f9dc3f03", + "generator_sha256": "67942ad6f48390d1793bda74684543a3dad09eadf6799ba42d6b72610984ec41", + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "0da4a1190208a3c353b376e30c8b8147029ea409", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "sha256": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "sha256": "e2d9f63260b741c6e6c1a6d9c7d17caffa424ad1f0d24b3b0e34e3398de4e2e6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "quickjs": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "sha256": "2a9c4dd56ce3e75e438e1bbb85858df87e05afdfabbd177ce2682c30e144f3fb", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "--version" + ], + "exit_code": 1, + "stdout": "QuickJS version 2026-06-04\nusage: qjs [options] [file [args]]\n-h --help list options\n-e --eval EXPR evaluate EXPR\n-i --interactive go to interactive mode\n-m --module load as ES6 module (default=autodetect)\n --script load as ES6 script (default=autodetect)\n --strict force strict mode\n-I --include file include an additional file\n --std make 'std' and 'os' available to the loaded script\n-T --trace trace memory allocation\n-d --dump dump the memory usage stats\n --memory-limit n limit the memory usage to 'n' bytes (SI suffixes allowed)\n --stack-size n limit the stack size to 'n' bytes (SI suffixes allowed)\n --no-unhandled-rejection ignore unhandled promise rejections\n-s strip all the debug info\n --strip-source strip the source code\n-q --quit just instantiate the interpreter and quit", + "stderr": "qjs: unknown option '--version'" + }, + "build": null + } + }, + "repeat": 3, + "timeout_seconds": 60, + "workloads": [ + { + "case": "map-int", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "16a7e7cbe5c6dff26459d438ab106e8e83d6f7f31d327e3d0fd50a24c0954a55" + } + }, + { + "case": "map-int", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "53b392bc070b88e06af00ba832f24ebd5b8aca5547a3bbeca54fa5fc082b9f19" + } + }, + { + "case": "map-string", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "d5cfee72bac4ed6b0f218a4282c19eaeba03bfcc50be157d3ef43f964f8a91ac" + } + }, + { + "case": "map-string", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "af4b9d0ab970a406d363f62351a4db1e6a9b915166c5e6fc33f9f32de86fcf7d" + } + }, + { + "case": "set", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "db996cef9d98fb3b9d21f9784bb64d5c620f539cea15d4fdc706dda378ec4c2a" + } + }, + { + "case": "set", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "e72296d63954eedbc46b4004a5f538d95da74e43478d4f11de39cf9e98cdb6be" + } + }, + { + "case": "map-churn", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "0d4a5fdd2df5c0357f17bfbe4ff8fe89b217dd4b3aa188c892cddff9d66694de" + } + }, + { + "case": "map-churn", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "5fa5d99d78a3b81e47067738156a3257bcd84d85dd7f7e82fe0fee280d8f377c" + } + }, + { + "case": "set-churn", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "7c30782124c953aeb554f7127cc1bf7958af292741c928c6c32b0ba8900ed219" + } + }, + { + "case": "set-churn", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "039e4801df2d0b483a561085ea79f9d470bcb7eac5a306e828a5cc108c2cf1a6" + } + }, + { + "case": "set-intersection", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "b3156264d64b7e1edd408527f169ea094a9ea6c9c7c1adde67c150f3493d3c1e" + } + }, + { + "case": "set-intersection", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "92476ac81288942217acf9298b08b805adefeb91641a810d7a745386c0488572" + } + }, + { + "case": "prop-write", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs", + "expected": "32799\n", + "files": { + "workload.mjs": "7c9db69cf1ee785b1b3fff822f28d75dc3174c188bc4e40d08a35c3af59f9ebb" + } + }, + { + "case": "prop-write", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs", + "expected": "34815\n", + "files": { + "workload.mjs": "467fe0810bb9663f0a55455b55403c8c0be4dda9a3f2fa48b42dda85e5c1aca7" + } + }, + { + "case": "prop-delete", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "4912b6d415c21b5a8a92b104e069ba546697b0563f257faebe3ae1eb5ec7506c" + } + }, + { + "case": "prop-delete", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "fffd35890b8c21b5969a4a734ce82ee313455e890e395efcfa81a5cd584e1ba3" + } + }, + { + "case": "array-truncate", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "d7e8549c7fc1ade0369d2714e556243b0e60b4986492dbf42e0e04860eb10c33" + } + }, + { + "case": "array-truncate", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "ce8b17c249a3e6ce2c1b107d91f7589bb0247dc0cef7efb02f4364f968f96bc8" + } + }, + { + "case": "scope", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs", + "expected": "496\n", + "files": { + "workload.mjs": "699b7186a66217d441cc637f097e25fb251a3b09c9db96dcce4e8fd6bae7c0c5" + } + }, + { + "case": "scope", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs", + "expected": "2096128\n", + "files": { + "workload.mjs": "2f316fac7febab731a16395dc66cc92b9ca51c04fac6fb00990f4c8534d466c9" + } + }, + { + "case": "constants", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs", + "expected": "32\n", + "files": { + "workload.mjs": "13d31b7c0f43d8003d1cd6bb85d18e164d2e7aaff24dd8ea255bba8b9e06bec7" + } + }, + { + "case": "constants", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs", + "expected": "2048\n", + "files": { + "workload.mjs": "eb5aa161baf0263a926f89707525d591c40186661efbf0dab9d9cbb17e2fd9cb" + } + }, + { + "case": "module", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs", + "expected": "496\n", + "files": { + "exports.mjs": "8c150bda2dc49462317bf9a3cfa326b562430bf60ee977eadbfbb7fefb958837", + "workload.mjs": "6babb0a1265bd5122452c953447883825d24d4171ba6c45edf7d5fa3b8a915ce" + } + }, + { + "case": "module", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs", + "expected": "2096128\n", + "files": { + "exports.mjs": "2f0d93715e141f526ad1a7ea48856e7ea64e0458dd494f66b71579a2dc6b4288", + "workload.mjs": "31bd84c65f74ec9ecd2340251da4083b07395e3cfdccbc9c64c7366f8c7c6ef4" + } + }, + { + "case": "module-imports", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs", + "expected": "496\n", + "files": { + "exports.mjs": "8c150bda2dc49462317bf9a3cfa326b562430bf60ee977eadbfbb7fefb958837", + "imports.mjs": "cc229fe9d5bd320da8c1d3e9ace209224cbeee481c3c7a3b100bcfe677b4c130", + "workload.mjs": "ba5bdda859529013bb3919dc4918c5c1313da1b7e6b3361ad007515cdabf0ccf" + } + }, + { + "case": "module-imports", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs", + "expected": "2096128\n", + "files": { + "exports.mjs": "2f0d93715e141f526ad1a7ea48856e7ea64e0458dd494f66b71579a2dc6b4288", + "imports.mjs": "6b4944bc3de9c568c4f34690dacc4ad55132260c740363cd3deead9dc583926f", + "workload.mjs": "c0242196e04a47828f5206da88a18ca9f296d9c4bb6ddb3187397f5af3fb46a8" + } + }, + { + "case": "long-key", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "64a4fab387932b3d2b032082fc55945a7ac4f67a47ade8fa996c901b7c76d3d9" + } + }, + { + "case": "long-key", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "6cdd49041bf988a9cdf0a881575853b9d3c7db9814301e6e8d0978e4c186ae7c" + } + }, + { + "case": "map-iterate-churn", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "252d1168836347a93f794f1986b4ef50080a1e33e2289f19e6e3e62bde58169a" + } + }, + { + "case": "map-iterate-churn", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "db536777e722a4372b40a22d9de944241b4a2c0e3694f82ddb3aeb5187bb8496" + } + }, + { + "case": "set-iterate-churn", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "ed2a4c0a8cf1b75682aae0f57c892ad12cb8ae2d702cf1d301915de811602d7a" + } + }, + { + "case": "set-iterate-churn", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs", + "expected": "32769\n", + "files": { + "workload.mjs": "a8e3e3e1b84e47a96ce6539911af49497b25e2c5bfc265b5c949900e91e25c20" + } + }, + { + "case": "array-index", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs", + "expected": "507904\n", + "files": { + "workload.mjs": "f68278ad16d7e3c0680b973decf344e051c2a9f734e360bb627f2b9456b76e59" + } + }, + { + "case": "array-index", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs", + "expected": "33538048\n", + "files": { + "workload.mjs": "4cf1d4731511c8a3a51bcf0d8e21040515783217f2416a47733229a92d01513d" + } + }, + { + "case": "array-holey", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "c203d74e33f47d0af020a69994fdf14d10d15ac2cc073504c5f98a7d258d090e" + } + }, + { + "case": "array-holey", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "bfda6198482cd0e8604f11e1d91f9e586c0a5eb93d006c609dc21845a42b0366" + } + }, + { + "case": "typed-index", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs", + "expected": "507904\n", + "files": { + "workload.mjs": "05e5249491bc3d7da002858fab1adbb28d09c8537384f5430a92d9f725a709fc" + } + }, + { + "case": "typed-index", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs", + "expected": "33538048\n", + "files": { + "workload.mjs": "cd651c737106bf07e99d4a1c0bee3058bfbef8d580dd04ea367586de87ef2963" + } + }, + { + "case": "arguments", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "b08a8b7c55aabf0d37b8420946fb34d2feaae53d49f8675b8e010cd2a1cd4f12" + } + }, + { + "case": "arguments", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "371c81b28a015ff43d118b5084af6db420f9275bda18334bee2b5c67aca8d288" + } + }, + { + "case": "mapped-arguments", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "93b6fd5661a2dea6a1274e38464897cfcb40a1e9ab83e9402f1ea1cf9f91a2fe" + } + }, + { + "case": "mapped-arguments", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "b0c24866a166938d3300978a9e11953594a84c95e9538588f23047350f0c250b" + } + } + ] + }, + "summary": [ + { + "case": "map-int", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 118972995, + 124195590, + 116428078 + ], + "failures": [], + "median_wall_ns": 118972995 + }, + { + "case": "map-int", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 75038117, + 77865971, + 76399174 + ], + "failures": [], + "median_wall_ns": 76399174 + }, + { + "case": "map-int", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 4251587, + 4468909, + 4380190 + ], + "failures": [], + "median_wall_ns": 4380190 + }, + { + "case": "map-int", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2806210876, + 2967622672, + 2992832332 + ], + "failures": [], + "median_wall_ns": 2967622672 + }, + { + "case": "map-int", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 77660241, + 78431480, + 77139313 + ], + "failures": [], + "median_wall_ns": 77660241 + }, + { + "case": "map-int", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 4707470, + 4592122, + 4615306 + ], + "failures": [], + "median_wall_ns": 4615306 + }, + { + "case": "map-string", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 182784440, + 181855791, + 183468535 + ], + "failures": [], + "median_wall_ns": 182784440 + }, + { + "case": "map-string", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 87380076, + 87160440, + 92049192 + ], + "failures": [], + "median_wall_ns": 87380076 + }, + { + "case": "map-string", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 6839114, + 6612776, + 6892074 + ], + "failures": [], + "median_wall_ns": 6839114 + }, + { + "case": "map-string", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5470392049, + 5650767948, + 5606474420 + ], + "failures": [], + "median_wall_ns": 5606474420 + }, + { + "case": "map-string", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 90706360, + 92472743, + 89343688 + ], + "failures": [], + "median_wall_ns": 90706360 + }, + { + "case": "map-string", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 7616656, + 7676981, + 7698731 + ], + "failures": [], + "median_wall_ns": 7676981 + }, + { + "case": "set", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 105495588, + 103646988, + 105383487 + ], + "failures": [], + "median_wall_ns": 105383487 + }, + { + "case": "set", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 72554922, + 72887221, + 72345666 + ], + "failures": [], + "median_wall_ns": 72554922 + }, + { + "case": "set", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 4355183, + 4380421, + 4319235 + ], + "failures": [], + "median_wall_ns": 4355183 + }, + { + "case": "set", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2053148002, + 2044385416, + 2049886757 + ], + "failures": [], + "median_wall_ns": 2049886757 + }, + { + "case": "set", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 72076226, + 72587133, + 73349725 + ], + "failures": [], + "median_wall_ns": 72587133 + }, + { + "case": "set", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 4345475, + 4414534, + 4435805 + ], + "failures": [], + "median_wall_ns": 4414534 + }, + { + "case": "map-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 40844485, + 43659271, + 40586115 + ], + "failures": [], + "median_wall_ns": 40844485 + }, + { + "case": "map-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 37849206, + 42002075, + 37412980 + ], + "failures": [], + "median_wall_ns": 37849206 + }, + { + "case": "map-churn", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2612605, + 2541571, + 2606374 + ], + "failures": [], + "median_wall_ns": 2606374 + }, + { + "case": "map-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 125226851, + 125398406, + 127279606 + ], + "failures": [], + "median_wall_ns": 125398406 + }, + { + "case": "map-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 42151528, + 41010418, + 41142048 + ], + "failures": [], + "median_wall_ns": 41142048 + }, + { + "case": "map-churn", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2587057, + 2609278, + 2660225 + ], + "failures": [], + "median_wall_ns": 2609278 + }, + { + "case": "set-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 40012299, + 39220440, + 37650229 + ], + "failures": [], + "median_wall_ns": 39220440 + }, + { + "case": "set-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 36443354, + 36162722, + 36937481 + ], + "failures": [], + "median_wall_ns": 36443354 + }, + { + "case": "set-churn", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2386798, + 2397128, + 2567008 + ], + "failures": [], + "median_wall_ns": 2397128 + }, + { + "case": "set-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 67094907, + 68147690, + 67235453 + ], + "failures": [], + "median_wall_ns": 67235453 + }, + { + "case": "set-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 40378212, + 41661922, + 39580342 + ], + "failures": [], + "median_wall_ns": 40378212 + }, + { + "case": "set-churn", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2540818, + 2777036, + 2520079 + ], + "failures": [], + "median_wall_ns": 2540818 + }, + { + "case": "set-intersection", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 148697072, + 147191532, + 147854737 + ], + "failures": [], + "median_wall_ns": 147854737 + }, + { + "case": "set-intersection", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 91904934, + 93217227, + 91172206 + ], + "failures": [], + "median_wall_ns": 91904934 + }, + { + "case": "set-intersection", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 5787996, + 5918511, + 5868536 + ], + "failures": [], + "median_wall_ns": 5868536 + }, + { + "case": "set-intersection", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4544205506, + 4515759290, + 4541675248 + ], + "failures": [], + "median_wall_ns": 4541675248 + }, + { + "case": "set-intersection", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 96592915, + 93056262, + 98153807 + ], + "failures": [], + "median_wall_ns": 96592915 + }, + { + "case": "set-intersection", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 6825458, + 6694842, + 6718225 + ], + "failures": [], + "median_wall_ns": 6718225 + }, + { + "case": "prop-write", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 40604980, + 41354087, + 39732448 + ], + "failures": [], + "median_wall_ns": 40604980 + }, + { + "case": "prop-write", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 31046949, + 30341044, + 31143643 + ], + "failures": [], + "median_wall_ns": 31046949 + }, + { + "case": "prop-write", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 1596642, + 1503926, + 1715107 + ], + "failures": [], + "median_wall_ns": 1596642 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 450176930, + 450937397, + 446456827 + ], + "failures": [], + "median_wall_ns": 450176930 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 35894314, + 35536606, + 35732948 + ], + "failures": [], + "median_wall_ns": 35732948 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 1983133, + 1891230, + 2154307 + ], + "failures": [], + "median_wall_ns": 1983133 + }, + { + "case": "prop-delete", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 185233334, + 188644629, + 187059029 + ], + "failures": [], + "median_wall_ns": 187059029 + }, + { + "case": "prop-delete", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 90587136, + 90369804, + 90339207 + ], + "failures": [], + "median_wall_ns": 90369804 + }, + { + "case": "prop-delete", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 6715989, + 6606083, + 6622985 + ], + "failures": [], + "median_wall_ns": 6622985 + }, + { + "case": "prop-delete", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4190428508, + 4170081943, + 4183765006 + ], + "failures": [], + "median_wall_ns": 4183765006 + }, + { + "case": "prop-delete", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 78494988, + 78033266, + 78242610 + ], + "failures": [], + "median_wall_ns": 78242610 + }, + { + "case": "prop-delete", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 7068628, + 6935807, + 7126949 + ], + "failures": [], + "median_wall_ns": 7068628 + }, + { + "case": "array-truncate", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 241099498, + 239391284, + 245540493 + ], + "failures": [], + "median_wall_ns": 241099498 + }, + { + "case": "array-truncate", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 99705169, + 100918796, + 96636852 + ], + "failures": [], + "median_wall_ns": 99705169 + }, + { + "case": "array-truncate", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2910809, + 2982495, + 3649677 + ], + "failures": [], + "median_wall_ns": 2982495 + }, + { + "case": "array-truncate", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4109610259, + 4355635290, + 4124785081 + ], + "failures": [], + "median_wall_ns": 4124785081 + }, + { + "case": "array-truncate", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 93503652, + 92678440, + 91253992 + ], + "failures": [], + "median_wall_ns": 92678440 + }, + { + "case": "array-truncate", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2485124, + 2600281, + 2561428 + ], + "failures": [], + "median_wall_ns": 2561428 + }, + { + "case": "scope", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4121740, + 3770286, + 3737143 + ], + "failures": [], + "median_wall_ns": 3770286 + }, + { + "case": "scope", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 3420013, + 3305787, + 3341263 + ], + "failures": [], + "median_wall_ns": 3341263 + }, + { + "case": "scope", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 943285, + 879215, + 865659 + ], + "failures": [], + "median_wall_ns": 879215 + }, + { + "case": "scope", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 147862785, + 148857989, + 147285392 + ], + "failures": [], + "median_wall_ns": 147862785 + }, + { + "case": "scope", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 17245247, + 17162100, + 17279662 + ], + "failures": [], + "median_wall_ns": 17245247 + }, + { + "case": "scope", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 11581769, + 11548756, + 11777400 + ], + "failures": [], + "median_wall_ns": 11581769 + }, + { + "case": "constants", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4469889, + 4162438, + 4064782 + ], + "failures": [], + "median_wall_ns": 4162438 + }, + { + "case": "constants", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 3678412, + 3598089, + 3630351 + ], + "failures": [], + "median_wall_ns": 3630351 + }, + { + "case": "constants", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 989122, + 912948, + 909771 + ], + "failures": [], + "median_wall_ns": 912948 + }, + { + "case": "constants", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 510954829, + 536089837, + 507466767 + ], + "failures": [], + "median_wall_ns": 510954829 + }, + { + "case": "constants", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 29240630, + 29386897, + 29256309 + ], + "failures": [], + "median_wall_ns": 29256309 + }, + { + "case": "constants", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 4844568, + 5293087, + 4975568 + ], + "failures": [], + "median_wall_ns": 4975568 + }, + { + "case": "module", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4656292, + 4179439, + 5596252 + ], + "failures": [], + "median_wall_ns": 4656292 + }, + { + "case": "module", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 3755958, + 3559457, + 3578372 + ], + "failures": [], + "median_wall_ns": 3578372 + }, + { + "case": "module", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 988150, + 940370, + 917026 + ], + "failures": [], + "median_wall_ns": 940370 + }, + { + "case": "module", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 357788546, + 376406100, + 378730628 + ], + "failures": [], + "median_wall_ns": 376406100 + }, + { + "case": "module", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 42235712, + 42206397, + 42892746 + ], + "failures": [], + "median_wall_ns": 42235712 + }, + { + "case": "module", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 6197920, + 6334197, + 6313469 + ], + "failures": [], + "median_wall_ns": 6313469 + }, + { + "case": "module-imports", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5087838, + 4638368, + 4392513 + ], + "failures": [], + "median_wall_ns": 4638368 + }, + { + "case": "module-imports", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4083570, + 3921802, + 3831102 + ], + "failures": [], + "median_wall_ns": 3921802 + }, + { + "case": "module-imports", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 1083951, + 1004912, + 930511 + ], + "failures": [], + "median_wall_ns": 1004912 + }, + { + "case": "module-imports", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 908948930, + 919556613, + 911015216 + ], + "failures": [], + "median_wall_ns": 911015216 + }, + { + "case": "module-imports", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 248960765, + 242342619, + 244610090 + ], + "failures": [], + "median_wall_ns": 244610090 + }, + { + "case": "module-imports", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 8453357, + 8626166, + 8374859 + ], + "failures": [], + "median_wall_ns": 8453357 + }, + { + "case": "long-key", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 49119831, + 47373365, + 46439648 + ], + "failures": [], + "median_wall_ns": 47373365 + }, + { + "case": "long-key", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 40553207, + 40421839, + 40359983 + ], + "failures": [], + "median_wall_ns": 40421839 + }, + { + "case": "long-key", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 3242407, + 3196890, + 3299164 + ], + "failures": [], + "median_wall_ns": 3242407 + }, + { + "case": "long-key", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 318483376, + 311295933, + 315518163 + ], + "failures": [], + "median_wall_ns": 315518163 + }, + { + "case": "long-key", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38866865, + 38289654, + 38853782 + ], + "failures": [], + "median_wall_ns": 38853782 + }, + { + "case": "long-key", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 60610767, + 61820116, + 60997649 + ], + "failures": [], + "median_wall_ns": 60997649 + }, + { + "case": "map-iterate-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 198055663, + 195495920, + 200485431 + ], + "failures": [], + "median_wall_ns": 198055663 + }, + { + "case": "map-iterate-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 171614975, + 168214278, + 170308190 + ], + "failures": [], + "median_wall_ns": 170308190 + }, + { + "case": "map-iterate-churn", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 5643590, + 5533903, + 5743529 + ], + "failures": [], + "median_wall_ns": 5643590 + }, + { + "case": "map-iterate-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 547877886, + 563552821, + 542543839 + ], + "failures": [], + "median_wall_ns": 547877886 + }, + { + "case": "map-iterate-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 175089779, + 170752411, + 176692161 + ], + "failures": [], + "median_wall_ns": 175089779 + }, + { + "case": "map-iterate-churn", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 5829401, + 5679749, + 5728982 + ], + "failures": [], + "median_wall_ns": 5728982 + }, + { + "case": "set-iterate-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 193859861, + 193067101, + 194681546 + ], + "failures": [], + "median_wall_ns": 193859861 + }, + { + "case": "set-iterate-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 168022585, + 170672689, + 169684148 + ], + "failures": [], + "median_wall_ns": 169684148 + }, + { + "case": "set-iterate-churn", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 5436809, + 5538602, + 5484279 + ], + "failures": [], + "median_wall_ns": 5484279 + }, + { + "case": "set-iterate-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 472021754, + 476993081, + 486022146 + ], + "failures": [], + "median_wall_ns": 476993081 + }, + { + "case": "set-iterate-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 172523521, + 173883186, + 171893048 + ], + "failures": [], + "median_wall_ns": 172523521 + }, + { + "case": "set-iterate-churn", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 5573688, + 6514178, + 7487491 + ], + "failures": [], + "median_wall_ns": 6514178 + }, + { + "case": "array-index", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 85471495, + 84972139, + 87313322 + ], + "failures": [], + "median_wall_ns": 85471495 + }, + { + "case": "array-index", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 51955305, + 51535791, + 51524570 + ], + "failures": [], + "median_wall_ns": 51535791 + }, + { + "case": "array-index", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2076731, + 2100145, + 2241201 + ], + "failures": [], + "median_wall_ns": 2100145 + }, + { + "case": "array-index", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 88122012, + 87729117, + 87027579 + ], + "failures": [], + "median_wall_ns": 87729117 + }, + { + "case": "array-index", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 52801055, + 52646835, + 54572509 + ], + "failures": [], + "median_wall_ns": 52801055 + }, + { + "case": "array-index", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2188802, + 2119351, + 2227465 + ], + "failures": [], + "median_wall_ns": 2188802 + }, + { + "case": "array-holey", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 257155527, + 259477239, + 256905274 + ], + "failures": [], + "median_wall_ns": 257155527 + }, + { + "case": "array-holey", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 69389509, + 68670930, + 70948370 + ], + "failures": [], + "median_wall_ns": 69389509 + }, + { + "case": "array-holey", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 3534139, + 3362033, + 3608579 + ], + "failures": [], + "median_wall_ns": 3534139 + }, + { + "case": "array-holey", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 8564104790, + 8550545747, + 8620598283 + ], + "failures": [], + "median_wall_ns": 8564104790 + }, + { + "case": "array-holey", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74640405, + 74587795, + 75171257 + ], + "failures": [], + "median_wall_ns": 74640405 + }, + { + "case": "array-holey", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 3530381, + 3387541, + 3602097 + ], + "failures": [], + "median_wall_ns": 3530381 + }, + { + "case": "typed-index", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 69980494, + 69191140, + 71179473 + ], + "failures": [], + "median_wall_ns": 69980494 + }, + { + "case": "typed-index", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 34328836, + 34330838, + 34577477 + ], + "failures": [], + "median_wall_ns": 34330838 + }, + { + "case": "typed-index", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2145360, + 1994094, + 2300765 + ], + "failures": [], + "median_wall_ns": 2145360 + }, + { + "case": "typed-index", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 67004792, + 68398029, + 66989864 + ], + "failures": [], + "median_wall_ns": 67004792 + }, + { + "case": "typed-index", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 34010773, + 34474121, + 33651744 + ], + "failures": [], + "median_wall_ns": 34010773 + }, + { + "case": "typed-index", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 2065849, + 1994935, + 2249978 + ], + "failures": [], + "median_wall_ns": 2065849 + }, + { + "case": "arguments", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 30455305, + 30455165, + 29879646 + ], + "failures": [], + "median_wall_ns": 30455165 + }, + { + "case": "arguments", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 15248506, + 15019894, + 14992533 + ], + "failures": [], + "median_wall_ns": 15019894 + }, + { + "case": "arguments", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 1197315, + 1095112, + 1726357 + ], + "failures": [], + "median_wall_ns": 1197315 + }, + { + "case": "arguments", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 21032612, + 21037180, + 21478467 + ], + "failures": [], + "median_wall_ns": 21037180 + }, + { + "case": "arguments", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 14863017, + 14731329, + 15100878 + ], + "failures": [], + "median_wall_ns": 14863017 + }, + { + "case": "arguments", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 1085715, + 1032554, + 1147722 + ], + "failures": [], + "median_wall_ns": 1085715 + }, + { + "case": "mapped-arguments", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 40736070, + 42411572, + 41018845 + ], + "failures": [], + "median_wall_ns": 41018845 + }, + { + "case": "mapped-arguments", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 23189706, + 22744393, + 23312578 + ], + "failures": [], + "median_wall_ns": 23189706 + }, + { + "case": "mapped-arguments", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 1364924, + 1270845, + 1597503 + ], + "failures": [], + "median_wall_ns": 1364924 + }, + { + "case": "mapped-arguments", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 29891197, + 29596739, + 29144004 + ], + "failures": [], + "median_wall_ns": 29596739 + }, + { + "case": "mapped-arguments", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 22231062, + 22022667, + 22422772 + ], + "failures": [], + "median_wall_ns": 22231062 + }, + { + "case": "mapped-arguments", + "size": 2048, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 1738149, + 1715025, + 1734933 + ], + "failures": [], + "median_wall_ns": 1734933 + } + ], + "samples": [ + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 118972995, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-before-0.stderr", + "case": "map-int", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 75038117, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-after-0.stderr", + "case": "map-int", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4251587, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-quickjs-0.stderr", + "case": "map-int", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 77865971, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-after-1.stderr", + "case": "map-int", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4468909, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-quickjs-1.stderr", + "case": "map-int", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 124195590, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-before-1.stderr", + "case": "map-int", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4380190, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-quickjs-2.stderr", + "case": "map-int", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 116428078, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-before-2.stderr", + "case": "map-int", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 76399174, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-32-after-2.stderr", + "case": "map-int", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2806210876, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-before-0.stderr", + "case": "map-int", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 77660241, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-after-0.stderr", + "case": "map-int", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4707470, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-quickjs-0.stderr", + "case": "map-int", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 78431480, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-after-1.stderr", + "case": "map-int", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4592122, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-quickjs-1.stderr", + "case": "map-int", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2967622672, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-before-1.stderr", + "case": "map-int", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4615306, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-quickjs-2.stderr", + "case": "map-int", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2992832332, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-before-2.stderr", + "case": "map-int", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-int-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 77139313, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-int-2048-after-2.stderr", + "case": "map-int", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 182784440, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-before-0.stderr", + "case": "map-string", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 87380076, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-after-0.stderr", + "case": "map-string", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6839114, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-quickjs-0.stderr", + "case": "map-string", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 87160440, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-after-1.stderr", + "case": "map-string", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6612776, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-quickjs-1.stderr", + "case": "map-string", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 181855791, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-before-1.stderr", + "case": "map-string", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6892074, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-quickjs-2.stderr", + "case": "map-string", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 183468535, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-before-2.stderr", + "case": "map-string", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 92049192, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-32-after-2.stderr", + "case": "map-string", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5470392049, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-before-0.stderr", + "case": "map-string", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 90706360, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-after-0.stderr", + "case": "map-string", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7616656, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-quickjs-0.stderr", + "case": "map-string", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 92472743, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-after-1.stderr", + "case": "map-string", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7676981, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-quickjs-1.stderr", + "case": "map-string", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5650767948, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-before-1.stderr", + "case": "map-string", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7698731, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-quickjs-2.stderr", + "case": "map-string", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5606474420, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-before-2.stderr", + "case": "map-string", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-string-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 89343688, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-string-2048-after-2.stderr", + "case": "map-string", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 105495588, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-before-0.stderr", + "case": "set", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 72554922, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-after-0.stderr", + "case": "set", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4355183, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-quickjs-0.stderr", + "case": "set", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 72887221, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-after-1.stderr", + "case": "set", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4380421, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-quickjs-1.stderr", + "case": "set", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 103646988, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-before-1.stderr", + "case": "set", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4319235, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-quickjs-2.stderr", + "case": "set", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 105383487, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-before-2.stderr", + "case": "set", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 72345666, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-32-after-2.stderr", + "case": "set", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2053148002, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-before-0.stderr", + "case": "set", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 72076226, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-after-0.stderr", + "case": "set", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4345475, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-quickjs-0.stderr", + "case": "set", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 72587133, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-after-1.stderr", + "case": "set", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4414534, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-quickjs-1.stderr", + "case": "set", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2044385416, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-before-1.stderr", + "case": "set", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4435805, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-quickjs-2.stderr", + "case": "set", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2049886757, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-before-2.stderr", + "case": "set", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 73349725, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-2048-after-2.stderr", + "case": "set", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40844485, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-before-0.stderr", + "case": "map-churn", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 37849206, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-after-0.stderr", + "case": "map-churn", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2612605, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-quickjs-0.stderr", + "case": "map-churn", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 42002075, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-after-1.stderr", + "case": "map-churn", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2541571, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-quickjs-1.stderr", + "case": "map-churn", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 43659271, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-before-1.stderr", + "case": "map-churn", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2606374, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-quickjs-2.stderr", + "case": "map-churn", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40586115, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-before-2.stderr", + "case": "map-churn", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 37412980, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-32-after-2.stderr", + "case": "map-churn", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 125226851, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-before-0.stderr", + "case": "map-churn", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 42151528, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-after-0.stderr", + "case": "map-churn", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2587057, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-quickjs-0.stderr", + "case": "map-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 41010418, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-after-1.stderr", + "case": "map-churn", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2609278, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-quickjs-1.stderr", + "case": "map-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 125398406, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-before-1.stderr", + "case": "map-churn", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2660225, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-quickjs-2.stderr", + "case": "map-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 127279606, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-before-2.stderr", + "case": "map-churn", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 41142048, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-churn-2048-after-2.stderr", + "case": "map-churn", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40012299, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-before-0.stderr", + "case": "set-churn", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 36443354, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-after-0.stderr", + "case": "set-churn", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2386798, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-quickjs-0.stderr", + "case": "set-churn", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 36162722, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-after-1.stderr", + "case": "set-churn", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2397128, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-quickjs-1.stderr", + "case": "set-churn", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 39220440, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-before-1.stderr", + "case": "set-churn", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2567008, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-quickjs-2.stderr", + "case": "set-churn", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 37650229, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-before-2.stderr", + "case": "set-churn", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 36937481, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-32-after-2.stderr", + "case": "set-churn", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 67094907, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-before-0.stderr", + "case": "set-churn", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40378212, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-after-0.stderr", + "case": "set-churn", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2540818, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-quickjs-0.stderr", + "case": "set-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 41661922, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-after-1.stderr", + "case": "set-churn", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2777036, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-quickjs-1.stderr", + "case": "set-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 68147690, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-before-1.stderr", + "case": "set-churn", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2520079, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-quickjs-2.stderr", + "case": "set-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 67235453, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-before-2.stderr", + "case": "set-churn", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 39580342, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-churn-2048-after-2.stderr", + "case": "set-churn", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 148697072, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-before-0.stderr", + "case": "set-intersection", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 91904934, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-after-0.stderr", + "case": "set-intersection", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5787996, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-quickjs-0.stderr", + "case": "set-intersection", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 93217227, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-after-1.stderr", + "case": "set-intersection", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5918511, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-quickjs-1.stderr", + "case": "set-intersection", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 147191532, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-before-1.stderr", + "case": "set-intersection", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5868536, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-quickjs-2.stderr", + "case": "set-intersection", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 147854737, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-before-2.stderr", + "case": "set-intersection", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 91172206, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-32-after-2.stderr", + "case": "set-intersection", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4544205506, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-before-0.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 96592915, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-after-0.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6825458, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-quickjs-0.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 93056262, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-after-1.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6694842, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-quickjs-1.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4515759290, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-before-1.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6718225, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-quickjs-2.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4541675248, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-before-2.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-intersection-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 98153807, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-intersection-2048-after-2.stderr", + "case": "set-intersection", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40604980, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-before-0.stderr", + "case": "prop-write", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31046949, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-after-0.stderr", + "case": "prop-write", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1596642, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-quickjs-0.stderr", + "case": "prop-write", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30341044, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-after-1.stderr", + "case": "prop-write", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1503926, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-quickjs-1.stderr", + "case": "prop-write", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 41354087, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-before-1.stderr", + "case": "prop-write", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1715107, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-quickjs-2.stderr", + "case": "prop-write", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 39732448, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-before-2.stderr", + "case": "prop-write", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 31143643, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-32-after-2.stderr", + "case": "prop-write", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 450176930, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-before-0.stderr", + "case": "prop-write", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 35894314, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-after-0.stderr", + "case": "prop-write", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1983133, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-quickjs-0.stderr", + "case": "prop-write", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 35536606, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-after-1.stderr", + "case": "prop-write", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1891230, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-quickjs-1.stderr", + "case": "prop-write", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 450937397, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-before-1.stderr", + "case": "prop-write", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2154307, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-quickjs-2.stderr", + "case": "prop-write", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 446456827, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-before-2.stderr", + "case": "prop-write", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-write-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 35732948, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-write-2048-after-2.stderr", + "case": "prop-write", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 185233334, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-before-0.stderr", + "case": "prop-delete", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 90587136, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-after-0.stderr", + "case": "prop-delete", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6715989, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-quickjs-0.stderr", + "case": "prop-delete", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 90369804, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-after-1.stderr", + "case": "prop-delete", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6606083, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-quickjs-1.stderr", + "case": "prop-delete", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 188644629, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-before-1.stderr", + "case": "prop-delete", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6622985, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-quickjs-2.stderr", + "case": "prop-delete", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 187059029, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-before-2.stderr", + "case": "prop-delete", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 90339207, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-32-after-2.stderr", + "case": "prop-delete", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4190428508, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-before-0.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 78494988, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-after-0.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7068628, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-quickjs-0.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 78033266, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-after-1.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6935807, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-quickjs-1.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4170081943, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-before-1.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7126949, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-quickjs-2.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4183765006, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-before-2.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/prop-delete-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 78242610, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/prop-delete-2048-after-2.stderr", + "case": "prop-delete", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 241099498, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-before-0.stderr", + "case": "array-truncate", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 99705169, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-after-0.stderr", + "case": "array-truncate", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2910809, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-quickjs-0.stderr", + "case": "array-truncate", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 100918796, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-after-1.stderr", + "case": "array-truncate", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2982495, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-quickjs-1.stderr", + "case": "array-truncate", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 239391284, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-before-1.stderr", + "case": "array-truncate", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3649677, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-quickjs-2.stderr", + "case": "array-truncate", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 245540493, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-before-2.stderr", + "case": "array-truncate", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 96636852, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-32-after-2.stderr", + "case": "array-truncate", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4109610259, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-before-0.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 93503652, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-after-0.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2485124, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-quickjs-0.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 92678440, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-after-1.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2600281, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-quickjs-1.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4355635290, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-before-1.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2561428, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-quickjs-2.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4124785081, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-before-2.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-truncate-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 91253992, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-truncate-2048-after-2.stderr", + "case": "array-truncate", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4121740, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-before-0.stderr", + "case": "scope", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3420013, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-after-0.stderr", + "case": "scope", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 943285, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-quickjs-0.stderr", + "case": "scope", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3305787, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-after-1.stderr", + "case": "scope", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 879215, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-quickjs-1.stderr", + "case": "scope", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3770286, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-before-1.stderr", + "case": "scope", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 865659, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-quickjs-2.stderr", + "case": "scope", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3737143, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-before-2.stderr", + "case": "scope", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3341263, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-32-after-2.stderr", + "case": "scope", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 147862785, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-before-0.stderr", + "case": "scope", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 17245247, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-after-0.stderr", + "case": "scope", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 11581769, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-quickjs-0.stderr", + "case": "scope", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 17162100, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-after-1.stderr", + "case": "scope", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 11548756, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-quickjs-1.stderr", + "case": "scope", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 148857989, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-before-1.stderr", + "case": "scope", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 11777400, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-quickjs-2.stderr", + "case": "scope", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 147285392, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-before-2.stderr", + "case": "scope", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/scope-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 17279662, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/scope-2048-after-2.stderr", + "case": "scope", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4469889, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-before-0.stderr", + "case": "constants", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3678412, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-after-0.stderr", + "case": "constants", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 989122, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-quickjs-0.stderr", + "case": "constants", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3598089, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-after-1.stderr", + "case": "constants", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 912948, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-quickjs-1.stderr", + "case": "constants", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4162438, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-before-1.stderr", + "case": "constants", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 909771, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-quickjs-2.stderr", + "case": "constants", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4064782, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-before-2.stderr", + "case": "constants", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3630351, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-32-after-2.stderr", + "case": "constants", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 510954829, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-before-0.stderr", + "case": "constants", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29240630, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-after-0.stderr", + "case": "constants", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4844568, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-quickjs-0.stderr", + "case": "constants", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29386897, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-after-1.stderr", + "case": "constants", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5293087, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-quickjs-1.stderr", + "case": "constants", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 536089837, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-before-1.stderr", + "case": "constants", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4975568, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-quickjs-2.stderr", + "case": "constants", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 507466767, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-before-2.stderr", + "case": "constants", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/constants-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29256309, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/constants-2048-after-2.stderr", + "case": "constants", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4656292, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-before-0.stderr", + "case": "module", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3755958, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-after-0.stderr", + "case": "module", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 988150, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-quickjs-0.stderr", + "case": "module", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3559457, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-after-1.stderr", + "case": "module", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 940370, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-quickjs-1.stderr", + "case": "module", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4179439, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-before-1.stderr", + "case": "module", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 917026, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-quickjs-2.stderr", + "case": "module", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5596252, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-before-2.stderr", + "case": "module", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3578372, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-32-after-2.stderr", + "case": "module", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 357788546, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-before-0.stderr", + "case": "module", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 42235712, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-after-0.stderr", + "case": "module", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6197920, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-quickjs-0.stderr", + "case": "module", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 42206397, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-after-1.stderr", + "case": "module", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6334197, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-quickjs-1.stderr", + "case": "module", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 376406100, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-before-1.stderr", + "case": "module", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6313469, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-quickjs-2.stderr", + "case": "module", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 378730628, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-before-2.stderr", + "case": "module", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 42892746, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-2048-after-2.stderr", + "case": "module", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5087838, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-before-0.stderr", + "case": "module-imports", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4083570, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-after-0.stderr", + "case": "module-imports", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1083951, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-quickjs-0.stderr", + "case": "module-imports", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3921802, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-after-1.stderr", + "case": "module-imports", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1004912, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-quickjs-1.stderr", + "case": "module-imports", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4638368, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-before-1.stderr", + "case": "module-imports", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 930511, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-quickjs-2.stderr", + "case": "module-imports", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 4392513, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-before-2.stderr", + "case": "module-imports", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3831102, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-32-after-2.stderr", + "case": "module-imports", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 908948930, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-before-0.stderr", + "case": "module-imports", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 248960765, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-after-0.stderr", + "case": "module-imports", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 8453357, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-quickjs-0.stderr", + "case": "module-imports", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 242342619, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-after-1.stderr", + "case": "module-imports", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 8626166, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-quickjs-1.stderr", + "case": "module-imports", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 919556613, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-before-1.stderr", + "case": "module-imports", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 8374859, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-quickjs-2.stderr", + "case": "module-imports", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 911015216, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-before-2.stderr", + "case": "module-imports", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/module-imports-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 244610090, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/module-imports-2048-after-2.stderr", + "case": "module-imports", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 49119831, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-before-0.stderr", + "case": "long-key", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40553207, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-after-0.stderr", + "case": "long-key", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3242407, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-quickjs-0.stderr", + "case": "long-key", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40421839, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-after-1.stderr", + "case": "long-key", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3196890, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-quickjs-1.stderr", + "case": "long-key", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 47373365, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-before-1.stderr", + "case": "long-key", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3299164, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-quickjs-2.stderr", + "case": "long-key", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 46439648, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-before-2.stderr", + "case": "long-key", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40359983, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-32-after-2.stderr", + "case": "long-key", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 318483376, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-before-0.stderr", + "case": "long-key", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 38866865, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-after-0.stderr", + "case": "long-key", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 60610767, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-quickjs-0.stderr", + "case": "long-key", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 38289654, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-after-1.stderr", + "case": "long-key", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 61820116, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-quickjs-1.stderr", + "case": "long-key", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 311295933, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-before-1.stderr", + "case": "long-key", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 60997649, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-quickjs-2.stderr", + "case": "long-key", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 315518163, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-before-2.stderr", + "case": "long-key", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/long-key-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 38853782, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/long-key-2048-after-2.stderr", + "case": "long-key", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 198055663, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-before-0.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 171614975, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-after-0.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5643590, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-quickjs-0.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 168214278, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-after-1.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5533903, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-quickjs-1.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 195495920, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-before-1.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5743529, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-quickjs-2.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 200485431, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-before-2.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 170308190, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-32-after-2.stderr", + "case": "map-iterate-churn", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 547877886, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-before-0.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 175089779, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-after-0.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5829401, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-quickjs-0.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 170752411, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-after-1.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5679749, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-quickjs-1.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 563552821, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-before-1.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5728982, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-quickjs-2.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 542543839, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-before-2.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/map-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 176692161, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/map-iterate-churn-2048-after-2.stderr", + "case": "map-iterate-churn", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 193859861, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-before-0.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 168022585, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-after-0.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5436809, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-quickjs-0.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 170672689, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-after-1.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5538602, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-quickjs-1.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 193067101, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-before-1.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5484279, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-quickjs-2.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 194681546, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-before-2.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 169684148, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-32-after-2.stderr", + "case": "set-iterate-churn", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 472021754, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-before-0.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 172523521, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-after-0.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 5573688, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-quickjs-0.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 173883186, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-after-1.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 6514178, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-quickjs-1.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 476993081, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-before-1.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 7487491, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-quickjs-2.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 486022146, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-before-2.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/set-iterate-churn-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 171893048, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/set-iterate-churn-2048-after-2.stderr", + "case": "set-iterate-churn", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 85471495, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-before-0.stderr", + "case": "array-index", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 51955305, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-after-0.stderr", + "case": "array-index", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2076731, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-quickjs-0.stderr", + "case": "array-index", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 51535791, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-after-1.stderr", + "case": "array-index", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2100145, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-quickjs-1.stderr", + "case": "array-index", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 84972139, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-before-1.stderr", + "case": "array-index", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2241201, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-quickjs-2.stderr", + "case": "array-index", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 87313322, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-before-2.stderr", + "case": "array-index", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 51524570, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-32-after-2.stderr", + "case": "array-index", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 88122012, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-before-0.stderr", + "case": "array-index", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 52801055, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-after-0.stderr", + "case": "array-index", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2188802, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-quickjs-0.stderr", + "case": "array-index", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 52646835, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-after-1.stderr", + "case": "array-index", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2119351, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-quickjs-1.stderr", + "case": "array-index", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 87729117, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-before-1.stderr", + "case": "array-index", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2227465, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-quickjs-2.stderr", + "case": "array-index", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 87027579, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-before-2.stderr", + "case": "array-index", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 54572509, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-index-2048-after-2.stderr", + "case": "array-index", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 257155527, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-before-0.stderr", + "case": "array-holey", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 69389509, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-after-0.stderr", + "case": "array-holey", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3534139, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-quickjs-0.stderr", + "case": "array-holey", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 68670930, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-after-1.stderr", + "case": "array-holey", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3362033, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-quickjs-1.stderr", + "case": "array-holey", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 259477239, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-before-1.stderr", + "case": "array-holey", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3608579, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-quickjs-2.stderr", + "case": "array-holey", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 256905274, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-before-2.stderr", + "case": "array-holey", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 70948370, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-32-after-2.stderr", + "case": "array-holey", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 8564104790, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-before-0.stderr", + "case": "array-holey", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 74640405, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-after-0.stderr", + "case": "array-holey", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3530381, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-quickjs-0.stderr", + "case": "array-holey", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 74587795, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-after-1.stderr", + "case": "array-holey", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3387541, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-quickjs-1.stderr", + "case": "array-holey", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 8550545747, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-before-1.stderr", + "case": "array-holey", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3602097, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-quickjs-2.stderr", + "case": "array-holey", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 8620598283, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-before-2.stderr", + "case": "array-holey", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/array-holey-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 75171257, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/array-holey-2048-after-2.stderr", + "case": "array-holey", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 69980494, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-before-0.stderr", + "case": "typed-index", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34328836, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-after-0.stderr", + "case": "typed-index", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2145360, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-quickjs-0.stderr", + "case": "typed-index", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34330838, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-after-1.stderr", + "case": "typed-index", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1994094, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-quickjs-1.stderr", + "case": "typed-index", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 69191140, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-before-1.stderr", + "case": "typed-index", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2300765, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-quickjs-2.stderr", + "case": "typed-index", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 71179473, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-before-2.stderr", + "case": "typed-index", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34577477, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-32-after-2.stderr", + "case": "typed-index", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 67004792, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-before-0.stderr", + "case": "typed-index", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34010773, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-after-0.stderr", + "case": "typed-index", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2065849, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-quickjs-0.stderr", + "case": "typed-index", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 34474121, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-after-1.stderr", + "case": "typed-index", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1994935, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-quickjs-1.stderr", + "case": "typed-index", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 68398029, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-before-1.stderr", + "case": "typed-index", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2249978, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-quickjs-2.stderr", + "case": "typed-index", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 66989864, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-before-2.stderr", + "case": "typed-index", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/typed-index-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 33651744, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/typed-index-2048-after-2.stderr", + "case": "typed-index", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30455305, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-before-0.stderr", + "case": "arguments", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15248506, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-after-0.stderr", + "case": "arguments", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1197315, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-quickjs-0.stderr", + "case": "arguments", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15019894, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-after-1.stderr", + "case": "arguments", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1095112, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-quickjs-1.stderr", + "case": "arguments", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 30455165, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-before-1.stderr", + "case": "arguments", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1726357, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-quickjs-2.stderr", + "case": "arguments", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29879646, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-before-2.stderr", + "case": "arguments", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14992533, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-32-after-2.stderr", + "case": "arguments", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 21032612, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-before-0.stderr", + "case": "arguments", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14863017, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-after-0.stderr", + "case": "arguments", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1085715, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-quickjs-0.stderr", + "case": "arguments", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 14731329, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-after-1.stderr", + "case": "arguments", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1032554, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-quickjs-1.stderr", + "case": "arguments", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 21037180, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-before-1.stderr", + "case": "arguments", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1147722, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-quickjs-2.stderr", + "case": "arguments", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 21478467, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-before-2.stderr", + "case": "arguments", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 15100878, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/arguments-2048-after-2.stderr", + "case": "arguments", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 40736070, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-before-0.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 23189706, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-after-0.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1364924, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-quickjs-0.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 22744393, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-after-1.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1270845, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-quickjs-1.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 42411572, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-before-1.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1597503, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-quickjs-2.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 41018845, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-before-2.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 23312578, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-32-after-2.stderr", + "case": "mapped-arguments", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29891197, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-before-0.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 22231062, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-after-0.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1738149, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-quickjs-0.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 22022667, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-after-1.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1715025, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-quickjs-1.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29596739, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-before-1.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 1734933, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-quickjs-2.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 29144004, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-before-2.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/workloads/mapped-arguments-2048/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 22422772, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling/raw/mapped-arguments-2048-after-2.stderr", + "case": "mapped-arguments", + "size": 2048, + "engine": "after", + "repetition": 2, + "status": "ok" + } + ] + }, + "final-scaling-regexp": { + "metadata": { + "schema": 1, + "metric": "whole-process wall nanoseconds; lower is better", + "instrumentation": "no profiling flags; verify ordinary builds via receipts", + "runner_sha256": "6f904f3124f6f05ba60fcf8f6a58a88b5d5301af4ad42bd06a143635f9dc3f03", + "generator_sha256": "67942ad6f48390d1793bda74684543a3dad09eadf6799ba42d6b72610984ec41", + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "fb23b9932310304303d5e8c1753913de504283c1", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "sha256": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "sha256": "e2d9f63260b741c6e6c1a6d9c7d17caffa424ad1f0d24b3b0e34e3398de4e2e6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "quickjs": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "sha256": "2a9c4dd56ce3e75e438e1bbb85858df87e05afdfabbd177ce2682c30e144f3fb", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "--version" + ], + "exit_code": 1, + "stdout": "QuickJS version 2026-06-04\nusage: qjs [options] [file [args]]\n-h --help list options\n-e --eval EXPR evaluate EXPR\n-i --interactive go to interactive mode\n-m --module load as ES6 module (default=autodetect)\n --script load as ES6 script (default=autodetect)\n --strict force strict mode\n-I --include file include an additional file\n --std make 'std' and 'os' available to the loaded script\n-T --trace trace memory allocation\n-d --dump dump the memory usage stats\n --memory-limit n limit the memory usage to 'n' bytes (SI suffixes allowed)\n --stack-size n limit the stack size to 'n' bytes (SI suffixes allowed)\n --no-unhandled-rejection ignore unhandled promise rejections\n-s strip all the debug info\n --strip-source strip the source code\n-q --quit just instantiate the interpreter and quit", + "stderr": "qjs: unknown option '--version'" + }, + "build": null + } + }, + "repeat": 3, + "timeout_seconds": 60, + "workloads": [ + { + "case": "regexp-groups", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "4618c2d80f7de5d29b1f96983db496af6ccabf9c89f05036ead0eb0c2288d15a" + } + }, + { + "case": "regexp-groups", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "6e23f2c0f6f672fa331394e6c798fddb077397224317697c920cc3b9b8d2230b" + } + } + ] + }, + "summary": [ + { + "case": "regexp-groups", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 176857030, + 176164550, + 180747813 + ], + "failures": [], + "median_wall_ns": 176857030 + }, + { + "case": "regexp-groups", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 98889112, + 98071244, + 101220764 + ], + "failures": [], + "median_wall_ns": 98889112 + }, + { + "case": "regexp-groups", + "size": 32, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 9575980, + 9779968, + 9844911 + ], + "failures": [], + "median_wall_ns": 9779968 + }, + { + "case": "regexp-groups", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 148767141, + 149149406, + 148623010 + ], + "failures": [], + "median_wall_ns": 148767141 + }, + { + "case": "regexp-groups", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 90762762, + 91960791, + 90473104 + ], + "failures": [], + "median_wall_ns": 90762762 + }, + { + "case": "regexp-groups", + "size": 128, + "engine": "quickjs", + "eligible": true, + "successful_wall_ns": [ + 12835311, + 12237107, + 12052948 + ], + "failures": [], + "median_wall_ns": 12237107 + } + ], + "samples": [ + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 176857030, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-before-0.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 98889112, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-after-0.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9575980, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-quickjs-0.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 98071244, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-after-1.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9779968, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-quickjs-1.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 176164550, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-before-1.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 9844911, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-quickjs-2.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 180747813, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-before-2.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-32/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 101220764, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-32-after-2.stderr", + "case": "regexp-groups", + "size": 32, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 148767141, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-before-0.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 90762762, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-after-0.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12835311, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-quickjs-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-quickjs-0.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "quickjs", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 91960791, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-after-1.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12237107, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-quickjs-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-quickjs-1.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "quickjs", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 149149406, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-before-1.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/oracle/quickjs-2026-06-04/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 12052948, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-quickjs-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-quickjs-2.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "quickjs", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 148623010, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-before-2.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-engine/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/workloads/regexp-groups-128/workload.mjs" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 90473104, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/final-scaling-regexp/raw/regexp-groups-128-after-2.stderr", + "case": "regexp-groups", + "size": 128, + "engine": "after", + "repetition": 2, + "status": "ok" + } + ] + } +} diff --git a/docs/reports/data-structure-scaling-final.md b/docs/reports/data-structure-scaling-final.md new file mode 100644 index 00000000..2ac54b2f --- /dev/null +++ b/docs/reports/data-structure-scaling-final.md @@ -0,0 +1,79 @@ +# Final data-structure scaling comparison + +Baseline engine `cdc35ec`; final engine semantics through `95013e9` (fingerprint +`b61a54ac6ff4469d1223fba670782e8a49ac9a3b612a810037748ff70c46e568`). +Three ordinary release binaries, CPU 2, three interleaved repetitions, +32768 operations per process; frequency unlocked, no overlapping builds/tests. +Every one of 396 samples passed exact-output admission. Times include startup, +compilation, execution, output and cleanup; they are not isolated operation costs. + +| Case | Size | Before ms | After ms | QuickJS ms | Before / after | +| --- | ---: | ---: | ---: | ---: | ---: | +| map-int | 32 | 118.97 | 76.40 | 4.38 | 1.56× | +| map-int | 2048 | 2967.62 | 77.66 | 4.62 | 38.21× | +| map-string | 32 | 182.78 | 87.38 | 6.84 | 2.09× | +| map-string | 2048 | 5606.47 | 90.71 | 7.68 | 61.81× | +| set | 32 | 105.38 | 72.55 | 4.36 | 1.45× | +| set | 2048 | 2049.89 | 72.59 | 4.41 | 28.24× | +| map-churn | 32 | 40.84 | 37.85 | 2.61 | 1.08× | +| map-churn | 2048 | 125.40 | 41.14 | 2.61 | 3.05× | +| set-churn | 32 | 39.22 | 36.44 | 2.40 | 1.08× | +| set-churn | 2048 | 67.24 | 40.38 | 2.54 | 1.67× | +| set-intersection | 32 | 147.85 | 91.90 | 5.87 | 1.61× | +| set-intersection | 2048 | 4541.68 | 96.59 | 6.72 | 47.02× | +| prop-write | 32 | 40.60 | 31.05 | 1.60 | 1.31× | +| prop-write | 2048 | 450.18 | 35.73 | 1.98 | 12.60× | +| prop-delete | 32 | 187.06 | 90.37 | 6.62 | 2.07× | +| prop-delete | 2048 | 4183.77 | 78.24 | 7.07 | 53.47× | +| array-truncate | 32 | 241.10 | 99.71 | 2.98 | 2.42× | +| array-truncate | 2048 | 4124.79 | 92.68 | 2.56 | 44.51× | +| scope | 32 | 3.77 | 3.34 | 0.88 | 1.13× | +| scope | 2048 | 147.86 | 17.25 | 11.58 | 8.57× | +| constants | 32 | 4.16 | 3.63 | 0.91 | 1.15× | +| constants | 2048 | 510.95 | 29.26 | 4.98 | 17.46× | +| module | 32 | 4.66 | 3.58 | 0.94 | 1.30× | +| module | 2048 | 376.41 | 42.24 | 6.31 | 8.91× | +| module-imports | 32 | 4.64 | 3.92 | 1.00 | 1.18× | +| module-imports | 2048 | 911.02 | 244.61 | 8.45 | 3.72× | +| long-key | 32 | 47.37 | 40.42 | 3.24 | 1.17× | +| long-key | 2048 | 315.52 | 38.85 | 61.00 | 8.12× | +| map-iterate-churn | 32 | 198.06 | 170.31 | 5.64 | 1.16× | +| map-iterate-churn | 2048 | 547.88 | 175.09 | 5.73 | 3.13× | +| set-iterate-churn | 32 | 193.86 | 169.68 | 5.48 | 1.14× | +| set-iterate-churn | 2048 | 476.99 | 172.52 | 6.51 | 2.76× | +| array-index | 32 | 85.47 | 51.54 | 2.10 | 1.66× | +| array-index | 2048 | 87.73 | 52.80 | 2.19 | 1.66× | +| array-holey | 32 | 257.16 | 69.39 | 3.53 | 3.71× | +| array-holey | 2048 | 8564.10 | 74.64 | 3.53 | 114.74× | +| typed-index | 32 | 69.98 | 34.33 | 2.15 | 2.04× | +| typed-index | 2048 | 67.00 | 34.01 | 2.07 | 1.97× | +| arguments | 32 | 30.46 | 15.02 | 1.20 | 2.03× | +| arguments | 2048 | 21.04 | 14.86 | 1.09 | 1.42× | +| mapped-arguments | 32 | 41.02 | 23.19 | 1.36 | 1.77× | +| mapped-arguments | 2048 | 29.60 | 22.23 | 1.73 | 1.33× | +| regexp-groups | 32 | 176.86 | 98.89 | 9.78 | 1.79× | +| regexp-groups | 128 | 148.77 | 90.76 | 12.24 | 1.64× | + +Size means live capacity/width for container cases, declaration/export count for +compiler/module cases, and historical insertion count for churn/cursor cases. +The generator documents each workload and independently computes its output. +Regexp uses sizes 32 and 128 because the pinned capture limit is below 255. +Small QuickJS processes are often shorter than 20 ms, so startup and scheduling +form a substantial part of their wall time. Do not read these ratios as ns/op. + +Map/Set hash lookup no longer scans all records. Ordered live-record maintenance +still uses BTreeSet O(log n) operations; dictionary deletion keeps compact slots +and separate insertion links. Whole-table enumeration and Array length truncation +still perform necessary linear work. The per-step reports retain intermediate +regressions and design tradeoffs; this table measures the net integrated change. + +Space validation is structural: live-record/capacity shrink tests, paused cursor +tests, and complete heap/GC regression tests. See [collection reclamation](collection-records.md) +and [dictionary storage](dictionary-objects.md). This does not establish lower +whole-application RSS, nor does it claim zero metadata overhead. + +[Raw samples, workload hashes and binary identities](data-structure-scaling-final.json). +Reproduce with `scripts/benchmark/scaling.py --operations 32768 --repeat 3`, +all cases except regexp-groups at `--sizes 32 2048`, then regexp-groups at +`--sizes 32 128`; pass each preserved binary with `--engine name=/absolute/qjs` +and use a fresh `--output` directory under `taskset -c 2`. diff --git a/docs/reports/data-structure-validation.json b/docs/reports/data-structure-validation.json new file mode 100644 index 00000000..d6cefa3c --- /dev/null +++ b/docs/reports/data-structure-validation.json @@ -0,0 +1,283 @@ +{ + "engine_semantics_sha256": "b61a54ac6ff4469d1223fba670782e8a49ac9a3b612a810037748ff70c46e568", + "baseline_engine_semantics_sha256": "f61afc7314c09e4b507468ca9bffdeb920d3e9c896068b3a9f39b4587caa0333", + "receipts": { + "tsv": { + "sha256": "649122d7eba613795b610d9c8bc007fa08378937b4649a4d1e6c14d14e786c68", + "normalized_sha256": "52a4288752e11855a5101c7a536717690bdcb2d582224defc58bbe1ebfd3da91", + "expected_baseline_sha256": "52a4288752e11855a5101c7a536717690bdcb2d582224defc58bbe1ebfd3da91", + "lines": 102050, + "differs_only_by_engine_fingerprint": true + }, + "jsonl": { + "sha256": "a8e6eadd165d4a1743f9a30445d8493e16f78312ddaf76a91117a28a9d73a625", + "normalized_sha256": "6886651883250c460dde168d85d1d44524f3b9f4dc5398859a0c2071604e6a3d", + "expected_baseline_sha256": "6886651883250c460dde168d85d1d44524f3b9f4dc5398859a0c2071604e6a3d", + "lines": 102039, + "differs_only_by_engine_fingerprint": true + } + }, + "focused": { + "variants": 6844, + "passes": 6844, + "outcome_rows_equal": true, + "sha256": "4fb4f3fb6f683fdc3de33cf95aaa6fe6064d346346d3a245bc0912166d67c5fb" + }, + "full_summary": "fail-parse=7 fail-runtime=43 pass=79982 skipped-config-exclude=6700 skipped-feature=11775 unsupported-feature=847 unsupported-module=121 unsupported-negative-provenance=2562", + "build": { + "commit": "6195e69adfddb36242141777cedac429915e9324", + "engine_semantics_sha256": "b61a54ac6ff4469d1223fba670782e8a49ac9a3b612a810037748ff70c46e568", + "toolchain": "rustc 1.94.1 (e408947bf 2026-03-25)\nbinary: rustc\ncommit-hash: e408947bfd200af42db322daf0fadfe7e26d3bd1\ncommit-date: 2026-03-25\nhost: x86_64-unknown-linux-gnu\nrelease: 1.94.1\nLLVM version: 21.1.8\n", + "binaries": { + "target/baseline/qjs": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "target/final-engine/qjs": "e2d9f63260b741c6e6c1a6d9c7d17caffa424ad1f0d24b3b0e34e3398de4e2e6", + "target/oracle/quickjs-2026-06-04/qjs": "2a9c4dd56ce3e75e438e1bbb85858df87e05afdfabbd177ce2682c30e144f3fb" + } + }, + "extra_checks": [ + { + "name": "profiling-cli", + "command": [ + "cargo", + "test", + "--locked", + "-p", + "quickjs-oxide-cli", + "--features", + "profiling", + "--test", + "profiling", + "--bin", + "qjs" + ], + "exit_code": 0 + }, + { + "name": "profiling-engine", + "command": [ + "cargo", + "test", + "--locked", + "-p", + "quickjs-oxide", + "--features", + "profiling", + "--lib", + "profiling_" + ], + "exit_code": 0 + }, + { + "name": "doc", + "command": [ + "cargo", + "test", + "--locked", + "--workspace", + "--doc" + ], + "exit_code": 0 + }, + { + "name": "test262-host", + "command": [ + "cargo", + "test", + "--locked", + "--workspace", + "--features", + "test262-host", + "--lib", + "--bins" + ], + "exit_code": 0 + }, + { + "name": "unsupported", + "command": [ + "cargo", + "test", + "--locked", + "--features", + "test262-host", + "--test", + "unsupported_diagnostics" + ], + "exit_code": 0 + }, + { + "name": "test262-oracle", + "command": [ + "cargo", + "test", + "--locked", + "--features", + "test262-host", + "--test", + "oracle", + "test262_" + ], + "exit_code": 0 + }, + { + "name": "compiled-registry", + "command": [ + "./scripts/checks/check-oracle-registry.sh", + "--compiled" + ], + "exit_code": 0 + }, + { + "name": "web", + "command": [ + "./scripts/web/test-web-playground.sh" + ], + "exit_code": 1 + }, + { + "name": "clippy-profiling", + "command": [ + "cargo", + "+1.88.0", + "clippy", + "--locked", + "-p", + "quickjs-oxide-cli", + "--features", + "profiling", + "--bin", + "qjs", + "--", + "-D", + "warnings" + ], + "exit_code": 0 + }, + { + "name": "clippy-oracle", + "command": [ + "cargo", + "+1.88.0", + "clippy", + "--locked", + "--test", + "oracle", + "--", + "-D", + "warnings" + ], + "exit_code": 0 + }, + { + "name": "clippy-host", + "command": [ + "cargo", + "+1.88.0", + "clippy", + "--locked", + "--workspace", + "--features", + "test262-host", + "--lib", + "--bins", + "--", + "-D", + "warnings" + ], + "exit_code": 0 + }, + { + "name": "clippy-host-oracle", + "command": [ + "cargo", + "+1.88.0", + "clippy", + "--locked", + "--workspace", + "--features", + "test262-host", + "--test", + "unsupported_diagnostics", + "--test", + "oracle", + "--", + "-D", + "warnings" + ], + "exit_code": 0 + }, + { + "name": "web-after-install", + "command": [ + "./scripts/web/test-web-playground.sh" + ], + "exit_code": 0, + "prerequisite": "wasm-bindgen-cli 0.2.126 installed; complete Node/WASM acceptance passed" + } + ], + "static_checks": [ + { + "command": [ + "./scripts/quickjs/test-quickjs-fixtures.sh", + "--validate" + ], + "exit_code": 0 + }, + { + "command": [ + "./scripts/quickjs/test-quickjs-c-oracles.sh", + "--validate" + ], + "exit_code": 0 + }, + { + "command": [ + "./scripts/quickjs/test-quickjs-dynamic-import-trace.sh", + "--validate" + ], + "exit_code": 0 + }, + { + "command": [ + "./scripts/test262/test-test262.sh", + "--spec", + "dev-support/test262/current.conf", + "--check" + ], + "exit_code": 0 + }, + { + "command": [ + "node", + "scripts/test262/current-test262-metrics.mjs", + "--check-docs" + ], + "exit_code": 0 + }, + { + "command": [ + "python3", + "scripts/checks/test-oracle-registry.py" + ], + "exit_code": 0 + } + ], + "workspace_tests": { + "command": "QJS_ORACLE= cargo test --locked --workspace --all-targets --jobs 2", + "exit_code": 0, + "engine_tests": 1952, + "cli_oracle_tests": 943, + "existing_ignored": 1, + "log_sha256": "595575e85ee71b5a45f46664e481cf6c2bb52528ab4d22a15ffbb9dde90516d1" + }, + "architecture": { + "command": "./scripts/checks/check-binary-object-boundary.sh", + "exit_code": 0, + "rejected_mutation_canaries": 694, + "log_sha256": "ed9e722dec60baab37f6227d92504dbf5cdb20fd0918437ab20570a514e9067c", + "unit_tests": 14, + "benchmark_tool_tests": 12, + "format_check": "passed", + "source_layout": "431 reachable Rust files; 65 directory READMEs" + } +} diff --git a/docs/reports/dictionary-objects.json b/docs/reports/dictionary-objects.json new file mode 100644 index 00000000..98cc78c9 --- /dev/null +++ b/docs/reports/dictionary-objects.json @@ -0,0 +1,363 @@ +{ + "metadata": { + "schema": 1, + "metric": "whole-process wall nanoseconds; lower is better", + "instrumentation": "no profiling flags; verify ordinary builds via receipts", + "runner_sha256": "6f904f3124f6f05ba60fcf8f6a58a88b5d5301af4ad42bd06a143635f9dc3f03", + "generator_sha256": "016e891a306683f3ffd768318020fd40cd049a3041cba8a1dae9f5de3ae9dfd7", + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "645283d2528fbed6b4267cfd8c027e2875d0bcd3", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/string-hash-memo/qjs", + "sha256": "f06bfdb0b05e6cd5c34a140af5d1f4a379f2e871c0f23cf84899d25cbbfcdad6", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/string-hash-memo/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/benchmark-binaries/dictionary-objects/qjs", + "sha256": "578b83194ab4663c682614dd11541f56bae4e8aaa3499538bb561ee8cacde05a", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/benchmark-binaries/dictionary-objects/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + } + }, + "repeat": 3, + "timeout_seconds": 60, + "workloads": [ + { + "case": "prop-delete", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-delete-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "4912b6d415c21b5a8a92b104e069ba546697b0563f257faebe3ae1eb5ec7506c" + } + }, + { + "case": "prop-delete", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-delete-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "02ab2679cf29f9117e52586e298d6aadd0d9576c6f6ecfc7c1fd0a2ae2391f81" + } + }, + { + "case": "prop-delete", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-delete-512/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "3bfa33739edc4e7b936fcab41570a25eb3458e8dd5e401b096423790164cb1b3" + } + }, + { + "case": "prop-delete", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-delete-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "fffd35890b8c21b5969a4a734ce82ee313455e890e395efcfa81a5cd584e1ba3" + } + }, + { + "case": "prop-write", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-write-32/workload.mjs", + "expected": "32799\n", + "files": { + "workload.mjs": "7c9db69cf1ee785b1b3fff822f28d75dc3174c188bc4e40d08a35c3af59f9ebb" + } + }, + { + "case": "prop-write", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-write-128/workload.mjs", + "expected": "32895\n", + "files": { + "workload.mjs": "56ce353a5ff9ea92446563fd64d2d37e10b9fb59ed53f3198b10f3c911bcf415" + } + }, + { + "case": "prop-write", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-write-512/workload.mjs", + "expected": "33279\n", + "files": { + "workload.mjs": "511d1bf434c93d33db1d2a136e2b35352eb8f7ad1944d1aacc04a167c61cf1e6" + } + }, + { + "case": "prop-write", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-dictionary/workloads/prop-write-2048/workload.mjs", + "expected": "34815\n", + "files": { + "workload.mjs": "467fe0810bb9663f0a55455b55403c8c0be4dda9a3f2fa48b42dda85e5c1aca7" + } + } + ] + }, + "summary": [ + { + "case": "prop-delete", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 171032495, + 174039010, + 171871428 + ], + "failures": [], + "median_wall_ns": 171871428 + }, + { + "case": "prop-delete", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 92712996, + 90923258, + 92208872 + ], + "failures": [], + "median_wall_ns": 92208872 + }, + { + "case": "prop-delete", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 363248411, + 358966881, + 359307375 + ], + "failures": [], + "median_wall_ns": 359307375 + }, + { + "case": "prop-delete", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 82915678, + 81968989, + 82581037 + ], + "failures": [], + "median_wall_ns": 82581037 + }, + { + "case": "prop-delete", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1101228072, + 1098738805, + 1102789664 + ], + "failures": [], + "median_wall_ns": 1101228072 + }, + { + "case": "prop-delete", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 80446236, + 78835519, + 82677024 + ], + "failures": [], + "median_wall_ns": 80446236 + }, + { + "case": "prop-delete", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4092845516, + 4112213022, + 4096728868 + ], + "failures": [], + "median_wall_ns": 4096728868 + }, + { + "case": "prop-delete", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 78163022, + 80224970, + 78656509 + ], + "failures": [], + "median_wall_ns": 78656509 + }, + { + "case": "prop-write", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 30951657, + 30284211, + 30535532 + ], + "failures": [], + "median_wall_ns": 30535532 + }, + { + "case": "prop-write", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 32114116, + 30936107, + 31511746 + ], + "failures": [], + "median_wall_ns": 31511746 + }, + { + "case": "prop-write", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 32957466, + 31689635, + 31700826 + ], + "failures": [], + "median_wall_ns": 31700826 + }, + { + "case": "prop-write", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 31771793, + 31344427, + 32213487 + ], + "failures": [], + "median_wall_ns": 31771793 + }, + { + "case": "prop-write", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 33431123, + 32696748, + 32271357 + ], + "failures": [], + "median_wall_ns": 32696748 + }, + { + "case": "prop-write", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 32950733, + 33015398, + 32739480 + ], + "failures": [], + "median_wall_ns": 32950733 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 36223224, + 39003083, + 36522345 + ], + "failures": [], + "median_wall_ns": 36522345 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 36553615, + 36611085, + 38794364 + ], + "failures": [], + "median_wall_ns": 36611085 + } + ] +} diff --git a/docs/reports/dictionary-objects.md b/docs/reports/dictionary-objects.md new file mode 100644 index 00000000..be1de130 --- /dev/null +++ b/docs/reports/dictionary-objects.md @@ -0,0 +1,41 @@ +# Ordinary object dictionary storage + +Before `383a2e1`; after `645283d`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, three interleaved repetitions, no overlapping builds/tests. Frequency was +not locked. Times include process startup, compilation and teardown. + +32768 operations per process, all 48 samples passed. The implementation passed +1926 library tests and 943 CLI/oracle tests, with 1 existing ignored test. + +| Workload | Width | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| prop-delete | 32 | 171.87 | 92.21 | 1.86× | +| prop-delete | 128 | 359.31 | 82.58 | 4.35× | +| prop-delete | 512 | 1101.23 | 80.45 | 13.69× | +| prop-delete | 2048 | 4096.73 | 78.66 | 52.08× | +| prop-write | 32 | 30.54 | 31.51 | 0.97× | +| prop-write | 128 | 31.70 | 31.77 | 1.00× | +| prop-write | 512 | 32.70 | 32.95 | 0.99× | +| prop-write | 2048 | 36.52 | 36.61 | 1.00× | + +Deleting a configurable property on an ordinary object of at least eight +properties enables dictionary mode. A shared shape is detached once; exclusive +shapes convert in place. The subsequent key lookup, unlink and last-slot move +are average constant time, with amortized resizing. Insertion order is explicit, +independent of physical slots. Reinsertion goes to the end of its key category. +There are no tombstones; slot, lookup and link capacity shrink geometrically. +Prototype changes and other rare full-layout replacements remain linear. + +Stable shapes pay one optional pointer (8 bytes on this host); dictionary layouts +also pay two optional slot links per live property plus vector head/tail metadata. +That cost buys compact deletion without a cursor registry or a second value store. +The small width-32 write control changed 30.54→31.51 ms in this three-sample run; +other write medians are nearly unchanged. Widths below 8 keep canonical shapes +and the existing deletion path. This is not a claim of zero memory overhead. + +Tests cover exclusive reuse, shared-shape separation, immediate release of a +removed object edge, descriptor/prototype transitions, symbol/string order and +4096 reference-model link mutations. Fresh focused/full Test262 remains pending +for this source. [Raw samples and binary identities](dictionary-objects.json) +include the complete results. Reproduce via scaling.py with the above cases and +sizes, `--operations 32768 --repeat 3`, under `taskset -c 2`. diff --git a/docs/reports/flat-strings.json b/docs/reports/flat-strings.json new file mode 100644 index 00000000..0adb3f2f --- /dev/null +++ b/docs/reports/flat-strings.json @@ -0,0 +1,453 @@ +{ + "before_commit": "6b8fb82", + "after_commit": "bb8032b", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "0dffe4eece69579e4fdfd77244b7ad564e7b55c7e9dd1af7aedf04ffc0e43c39", + "after": "073ca6140433fb9b4d7663a0e019d45fee031d15b45d9b598769cfcae81631fd" + }, + "summary": [ + { + "case": "constants", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5244394, + 7195785, + 7082031 + ], + "failures": [], + "median_wall_ns": 7082031 + }, + { + "case": "constants", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4888895, + 5867417, + 6815940 + ], + "failures": [], + "median_wall_ns": 5867417 + }, + { + "case": "constants", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 12091875, + 10618263, + 10617911 + ], + "failures": [], + "median_wall_ns": 10618263 + }, + { + "case": "constants", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 12177405, + 11148489, + 11321134 + ], + "failures": [], + "median_wall_ns": 11321134 + }, + { + "case": "constants", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 66265331, + 65113695, + 64645946 + ], + "failures": [], + "median_wall_ns": 65113695 + }, + { + "case": "constants", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 83767693, + 83315011, + 85738460 + ], + "failures": [], + "median_wall_ns": 83767693 + }, + { + "case": "constants", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 828328296, + 825147946, + 830747421 + ], + "failures": [], + "median_wall_ns": 828328296 + }, + { + "case": "constants", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 1150637498, + 1128324973, + 1031192214 + ], + "failures": [], + "median_wall_ns": 1128324973 + }, + { + "case": "module", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5114220, + 4614029, + 4478143 + ], + "failures": [], + "median_wall_ns": 4614029 + }, + { + "case": "module", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4316551, + 3969506, + 3963054 + ], + "failures": [], + "median_wall_ns": 3969506 + }, + { + "case": "module", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 9863854, + 10071895, + 9776419 + ], + "failures": [], + "median_wall_ns": 9863854 + }, + { + "case": "module", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 6341989, + 6234376, + 6415407 + ], + "failures": [], + "median_wall_ns": 6341989 + }, + { + "case": "module", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 102706478, + 102486524, + 102913126 + ], + "failures": [], + "median_wall_ns": 102706478 + }, + { + "case": "module", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 29870326, + 27887896, + 27306603 + ], + "failures": [], + "median_wall_ns": 27887896 + }, + { + "case": "module", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1259364555, + 1202689662, + 1222400373 + ], + "failures": [], + "median_wall_ns": 1222400373 + }, + { + "case": "module", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 285407393, + 286882810, + 286085813 + ], + "failures": [], + "median_wall_ns": 286085813 + }, + { + "case": "long-key", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 61736516, + 63128576, + 61120256 + ], + "failures": [], + "median_wall_ns": 61736516 + }, + { + "case": "long-key", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 44840243, + 44159934, + 45084153 + ], + "failures": [], + "median_wall_ns": 44840243 + }, + { + "case": "long-key", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 110188202, + 111030527, + 113914913 + ], + "failures": [], + "median_wall_ns": 111030527 + }, + { + "case": "long-key", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 60159720, + 59988918, + 59984539 + ], + "failures": [], + "median_wall_ns": 59988918 + }, + { + "case": "long-key", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 307675766, + 302784494, + 301969914 + ], + "failures": [], + "median_wall_ns": 302784494 + }, + { + "case": "long-key", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 122982560, + 120966667, + 120923196 + ], + "failures": [], + "median_wall_ns": 120966667 + }, + { + "case": "long-key", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1073414771, + 1071221312, + 1071960308 + ], + "failures": [], + "median_wall_ns": 1071960308 + }, + { + "case": "long-key", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 368421301, + 368203892, + 367699587 + ], + "failures": [], + "median_wall_ns": 368203892 + } + ], + "workloads": [ + { + "case": "constants", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/constants-64/workload.mjs", + "expected": "64\n", + "files": { + "workload.mjs": "f21bcf394ba06927c35ed906c4c632695ae6a6622e97ee395e1bf6f1d0c46c99" + } + }, + { + "case": "constants", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/constants-256/workload.mjs", + "expected": "256\n", + "files": { + "workload.mjs": "4ad0fc41b014de34dd71f8d0ee7e54f59f2ec01ed37e0a7ba4c23879939191e9" + } + }, + { + "case": "constants", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/constants-1024/workload.mjs", + "expected": "1024\n", + "files": { + "workload.mjs": "4b3e75bf7926e322a3a4fde48700aeafdadbb0e33ae10dc63d577f221227d94c" + } + }, + { + "case": "constants", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/constants-4096/workload.mjs", + "expected": "4096\n", + "files": { + "workload.mjs": "37146a010bc2dd4876086774269dd376ac5a627546dc308a844a16f37c1a9cd4" + } + }, + { + "case": "module", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/module-64/workload.mjs", + "expected": "2016\n", + "files": { + "exports.mjs": "234b0f8dbdcfdc94825dfb10c180776d9620f1fb109b9d42a2cd84dd2036e8fd", + "workload.mjs": "5b260880633b66de3dc94402c2bab21803d7461093a6aa5ec7e0787c8465dec2" + } + }, + { + "case": "module", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/module-256/workload.mjs", + "expected": "32640\n", + "files": { + "exports.mjs": "63bf527d3c29444088a42fed10ae16980c766269133b81d7e0e4ba02534c1f1a", + "workload.mjs": "c07caaf9de6e6cd74d041e07af9ac3221b4bdf063d07e0e491f43ae36d97106f" + } + }, + { + "case": "module", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/module-1024/workload.mjs", + "expected": "523776\n", + "files": { + "exports.mjs": "b23ee15ff23a5f4015b58ddc86ae40f26e13cd7b5821d6c521ad8a9e9337c587", + "workload.mjs": "93e77a65ed16d04575b4fe7f19f00d131c0698159fe2f770a666010042984a2f" + } + }, + { + "case": "module", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/module-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "exports.mjs": "7b2b8df4fbf521c033a4a9865d1e30be288c0e1940e4dd658f4a615548c39e0f", + "workload.mjs": "0f9a66ae3fb428bc5ead6159f9b5a710ba93de9bd7c2e3c5f6bb7a75e45f9315" + } + }, + { + "case": "long-key", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/long-key-64/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "cd71e6fe88bb47a07d555b064cd33b74ed32c8cb861c5154ca00261ba802bd5c" + } + }, + { + "case": "long-key", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/long-key-256/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "f2790edbe38b303723bf724d315c5432776b54cdf49ad12f4d311438f492d28f" + } + }, + { + "case": "long-key", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/long-key-1024/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "bdf54a3497bbf085e5bf441b40c58a320d1e8a9928462a4806dde68d046d87e4" + } + }, + { + "case": "long-key", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-flat-strings/workloads/long-key-4096/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "94fa94d85481e7119a6a2fbfee0fd628248c31cf9d21fb1813b80e919ed5a983" + } + } + ] +} diff --git a/docs/reports/flat-strings.md b/docs/reports/flat-strings.md new file mode 100644 index 00000000..bc923d1a --- /dev/null +++ b/docs/reports/flat-strings.md @@ -0,0 +1,40 @@ +# Flat string comparison and hashing + +Before `6b8fb82`; after `bb8032b`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, three interleaved repetitions, no overlapping builds/tests. Frequency +was not locked. Whole-process times include compilation and teardown. The long-key +case performs 32768 lookups; compiler workloads execute their generated source once. + +| Workload | Names / key units | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| constants | 64 | 7.08 | 5.87 | 1.21× | +| constants | 256 | 10.62 | 11.32 | 0.94× | +| constants | 1024 | 65.11 | 83.77 | 0.78× | +| constants | 4096 | 828.33 | 1128.32 | 0.73× | +| module | 64 | 4.61 | 3.97 | 1.16× | +| module | 256 | 9.86 | 6.34 | 1.56× | +| module | 1024 | 102.71 | 27.89 | 3.68× | +| module | 4096 | 1222.40 | 286.09 | 4.27× | +| long-key | 64 | 61.74 | 44.84 | 1.38× | +| long-key | 256 | 111.03 | 59.99 | 1.85× | +| long-key | 1024 | 302.78 | 120.97 | 2.50× | +| long-key | 4096 | 1071.96 | 368.20 | 2.91× | + +All 72 samples passed output validation. Large modules and repeated long keys +improve substantially, but the constant workload regresses by about 36%. A separate +CPU sample attributes about 95% of cycles to lower_unlinked_tree. Source inspection +found that debug coordinate generation scans from the source start for every PC; +this confirmed quadratic path will receive a source checkpoint index. That does +not establish why the same unchanged path became slower after this particular +build. Keep this regression visible in the integrated acceptance decision. + +No string representation memory was added. This change avoids rope traversal +state for flat inputs; it does not cache repeated content hashes. + +1914 existing library tests, the new mixed-width/rope key test, and 943 CLI/oracle +tests passed (1 ignored). Fresh focused/full Test262 remains pending. +See [samples and binary identities](flat-strings.json). + +Reproduce with scaling.py, the above binaries, +`--case constants --case module --case long-key --sizes 64 256 1024 4096`, +`--operations 32768 --repeat 3`, under `taskset -c 2`. diff --git a/docs/reports/holey-array-dictionary.json b/docs/reports/holey-array-dictionary.json new file mode 100644 index 00000000..86ea569f --- /dev/null +++ b/docs/reports/holey-array-dictionary.json @@ -0,0 +1,507 @@ +{ + "metadata": { + "schema": 1, + "metric": "whole-process wall nanoseconds; lower is better", + "instrumentation": "no profiling flags; verify ordinary builds via receipts", + "runner_sha256": "6f904f3124f6f05ba60fcf8f6a58a88b5d5301af4ad42bd06a143635f9dc3f03", + "generator_sha256": "67942ad6f48390d1793bda74684543a3dad09eadf6799ba42d6b72610984ec41", + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "529b248d41853f4047a944f54b89a1bea4eb72a6", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/batch-small-edges/qjs", + "sha256": "c7e87e2c6d3b65b1ffecffc0ac0e6f765d8e73b620f0ac7319a7e219bb7404ec", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/batch-small-edges/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "sha256": "7f154043bb26c9da7ebbbc670a59b2f38cb1019bdb368723a85f4e3897ffe2fd", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + } + }, + "repeat": 3, + "timeout_seconds": 60, + "workloads": [ + { + "case": "array-holey", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-holey-32/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "c203d74e33f47d0af020a69994fdf14d10d15ac2cc073504c5f98a7d258d090e" + } + }, + { + "case": "array-holey", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-holey-128/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "7fe1fd3937cf14d4c7184d3c72f3f1b16863bfd34163b6dfd9603ff565612005" + } + }, + { + "case": "array-holey", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-holey-512/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "6ddaf73ec3c406b103b6f994697f0b1b7eb2cfd50d6ffc5a970152f1377b79c4" + } + }, + { + "case": "array-holey", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-holey-2048/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "bfda6198482cd0e8604f11e1d91f9e586c0a5eb93d006c609dc21845a42b0366" + } + }, + { + "case": "array-truncate", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-truncate-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "d7e8549c7fc1ade0369d2714e556243b0e60b4986492dbf42e0e04860eb10c33" + } + }, + { + "case": "array-truncate", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-truncate-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "730c3f2ff4ca9d63a4dc057ce53b484af1827df342d38f81158205d24b8a4fdf" + } + }, + { + "case": "array-truncate", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-truncate-512/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "66148cca9934393ac70ba808581c284d49a0a7748819a040abdcd097ea8e5ce0" + } + }, + { + "case": "array-truncate", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-truncate-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "ce8b17c249a3e6ce2c1b107d91f7589bb0247dc0cef7efb02f4364f968f96bc8" + } + }, + { + "case": "array-index", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-index-32/workload.mjs", + "expected": "507904\n", + "files": { + "workload.mjs": "f68278ad16d7e3c0680b973decf344e051c2a9f734e360bb627f2b9456b76e59" + } + }, + { + "case": "array-index", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-index-128/workload.mjs", + "expected": "2080768\n", + "files": { + "workload.mjs": "68a7ab56e8cf1d53f0a9f08750b15f400607dee99f613e0156bca55d782a01c2" + } + }, + { + "case": "array-index", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-index-512/workload.mjs", + "expected": "8372224\n", + "files": { + "workload.mjs": "3483d16fd6ca44d39d6a71819763981e725bf01e9aeb63f4f2730c5e6b8d1326" + } + }, + { + "case": "array-index", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-holey-dictionary/workloads/array-index-2048/workload.mjs", + "expected": "33538048\n", + "files": { + "workload.mjs": "4cf1d4731511c8a3a51bcf0d8e21040515783217f2416a47733229a92d01513d" + } + } + ] + }, + "summary": [ + { + "case": "array-holey", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 221744594, + 217624306, + 218856623 + ], + "failures": [], + "median_wall_ns": 218856623 + }, + { + "case": "array-holey", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 68556694, + 69427367, + 68743373 + ], + "failures": [], + "median_wall_ns": 68743373 + }, + { + "case": "array-holey", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 578986943, + 584800386, + 587500341 + ], + "failures": [], + "median_wall_ns": 584800386 + }, + { + "case": "array-holey", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 71794485, + 70826078, + 69758077 + ], + "failures": [], + "median_wall_ns": 70826078 + }, + { + "case": "array-holey", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2042622031, + 2048684452, + 2047026432 + ], + "failures": [], + "median_wall_ns": 2047026432 + }, + { + "case": "array-holey", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 71440177, + 70630880, + 71176198 + ], + "failures": [], + "median_wall_ns": 71176198 + }, + { + "case": "array-holey", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 8452789405, + 8509977724, + 8458489140 + ], + "failures": [], + "median_wall_ns": 8458489140 + }, + { + "case": "array-holey", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 75507242, + 76061357, + 75024806 + ], + "failures": [], + "median_wall_ns": 75507242 + }, + { + "case": "array-truncate", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 102607230, + 101211275, + 100909102 + ], + "failures": [], + "median_wall_ns": 101211275 + }, + { + "case": "array-truncate", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 98433645, + 98883770, + 100980796 + ], + "failures": [], + "median_wall_ns": 98883770 + }, + { + "case": "array-truncate", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 94569010, + 96496117, + 98675950 + ], + "failures": [], + "median_wall_ns": 96496117 + }, + { + "case": "array-truncate", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 94788036, + 93872150, + 92122532 + ], + "failures": [], + "median_wall_ns": 93872150 + }, + { + "case": "array-truncate", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 93048927, + 100925501, + 94500831 + ], + "failures": [], + "median_wall_ns": 94500831 + }, + { + "case": "array-truncate", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 93656792, + 91686848, + 91919423 + ], + "failures": [], + "median_wall_ns": 91919423 + }, + { + "case": "array-truncate", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 96842344, + 99454207, + 96653193 + ], + "failures": [], + "median_wall_ns": 96842344 + }, + { + "case": "array-truncate", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 94582431, + 93363795, + 93809061 + ], + "failures": [], + "median_wall_ns": 93809061 + }, + { + "case": "array-index", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 52170420, + 51114129, + 53031688 + ], + "failures": [], + "median_wall_ns": 52170420 + }, + { + "case": "array-index", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 51973428, + 51790551, + 52223352 + ], + "failures": [], + "median_wall_ns": 51973428 + }, + { + "case": "array-index", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 51634993, + 51376826, + 51777606 + ], + "failures": [], + "median_wall_ns": 51634993 + }, + { + "case": "array-index", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 51346068, + 51784780, + 51045612 + ], + "failures": [], + "median_wall_ns": 51346068 + }, + { + "case": "array-index", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 52706145, + 51493521, + 56933068 + ], + "failures": [], + "median_wall_ns": 52706145 + }, + { + "case": "array-index", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 53776547, + 52737744, + 52239953 + ], + "failures": [], + "median_wall_ns": 52737744 + }, + { + "case": "array-index", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 53946851, + 52726877, + 52313694 + ], + "failures": [], + "median_wall_ns": 52726877 + }, + { + "case": "array-index", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 53158082, + 53339608, + 54859164 + ], + "failures": [], + "median_wall_ns": 53339608 + } + ] +} diff --git a/docs/reports/holey-array-dictionary.md b/docs/reports/holey-array-dictionary.md new file mode 100644 index 00000000..322d8a11 --- /dev/null +++ b/docs/reports/holey-array-dictionary.md @@ -0,0 +1,51 @@ +# Indexed dictionary storage for slow/holey Arrays + +Before `596c788`; after `529b248`. Ordinary release builds, CPU 2, three +interleaved repetitions, no overlapping builds/tests, frequency unlocked, +whole-process wall time. All 72 samples passed exact-output admission. + +| Workload | Width | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| array-holey | 32 | 218.86 | 68.74 | 3.18× | +| array-holey | 128 | 584.80 | 70.83 | 8.26× | +| array-holey | 512 | 2047.03 | 71.18 | 28.76× | +| array-holey | 2048 | 8458.49 | 75.51 | 112.02× | +| array-truncate | 32 | 101.21 | 98.88 | 1.02× | +| array-truncate | 128 | 96.50 | 93.87 | 1.03× | +| array-truncate | 512 | 94.50 | 91.92 | 1.03× | +| array-truncate | 2048 | 96.84 | 93.81 | 1.03× | +| array-index | 32 | 52.17 | 51.97 | 1.00× | +| array-index | 128 | 51.63 | 51.35 | 1.01× | +| array-index | 512 | 52.71 | 52.74 | 1.00× | +| array-index | 2048 | 52.73 | 53.34 | 0.99× | + +Each process performs 32768 operations. Repeated middle deletion/reinsertion is +approximately flat across width; packed-array access and batch truncation controls +are nearly unchanged. The first transition from packed elements is still linear: +it moves values into ordinary indexed slots once, then enables dictionary storage. +Subsequent key lookups and slot replacements/deletions are average O(1), with +amortized capacity management. Bulk own-key enumeration and length truncation still +process the relevant entries. + +This refines the original S08 representation proposal: reuse the existing indexed +dictionary and its insertion-order links instead of adding a second hole bitmap, +value owner, or property-order log. A separate packed-hole representation would +also have to preserve QuickJS's representation-sensitive for-in and diagnostic +property order, including deleted/reinserted indices and named properties. The +shared dictionary already owns those rules and reclaims absent properties. +`dense: None` remains the slow-form signal to existing language algorithms. + +The dictionary supports only genuine ordinary objects and slow Arrays. Array +length/index validation stays in the Array algorithm; a non-configurable length +cannot be removed or displaced from slot zero. Prototype setters, descriptors, +maximum indices, partial length failure and retained symbol properties preserve +their existing semantics. Sparse high indices consume live-property storage, +not memory proportional to the numeric index. There are no permanent tombstones. +Slow Arrays pay dictionary link metadata; no extra field was added to every Array. + +1931 library tests passed before the final targeted prototype/length case; both +holey-specific tests then passed. The complete 943 CLI/oracle tests passed with +1 existing ignored test. Fresh focused/full Test262 is pending for this source. +[Raw samples and binary identities](holey-array-dictionary.json). +Reproduce with scaling.py, the above cases and sizes, +`--operations 32768 --repeat 3`, under `taskset -c 2`. diff --git a/docs/reports/indexed-collections.json b/docs/reports/indexed-collections.json new file mode 100644 index 00000000..a5b25c95 --- /dev/null +++ b/docs/reports/indexed-collections.json @@ -0,0 +1,1035 @@ +{ + "before_commit": "4d5aa69", + "after_commit": "1ed4a35", + "before_engine_equivalent_to": "cdc35ec", + "cpu_affinity": [ + 2 + ], + "instrumentation": "ordinary release builds, default features; no profiling feature", + "build_command": "cargo build --release -p quickjs-oxide-cli --jobs 2", + "binaries": { + "before": { + "sha256": "f871f41241ff1fd7c843b30accd1b6b2c00b9485ac9146a374fb3eda8184be2c", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/baseline/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + } + }, + "after": { + "sha256": "edb96aedcf9b4b43114d7331e04f80f901af1145dbaf12e0cd0666f28c2bf71b", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/indexed-collections/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + } + } + }, + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced" + }, + "workloads": [ + { + "case": "map-int", + "size": 32, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "16a7e7cbe5c6dff26459d438ab106e8e83d6f7f31d327e3d0fd50a24c0954a55" + } + }, + { + "case": "map-int", + "size": 128, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "ec23c21ea28f982f0f7d599503edeac93eeff0b3154e76a05d1442b599cb11e0" + } + }, + { + "case": "map-int", + "size": 512, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "f4a64bb953cced88d56f2956456c9a032bb6bbab535014460cc3e8ac92e60fe6" + } + }, + { + "case": "map-int", + "size": 2048, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "53b392bc070b88e06af00ba832f24ebd5b8aca5547a3bbeca54fa5fc082b9f19" + } + }, + { + "case": "map-string", + "size": 32, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "d5cfee72bac4ed6b0f218a4282c19eaeba03bfcc50be157d3ef43f964f8a91ac" + } + }, + { + "case": "map-string", + "size": 128, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "665d918e9f8733460787778076ee5e4ca9e36bac93b7a6365d55931f66ae185b" + } + }, + { + "case": "map-string", + "size": 512, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "87b11f4f9100952d7b57202bda422d047accb407c7ca9ceaad9a6a3129935716" + } + }, + { + "case": "map-string", + "size": 2048, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "af4b9d0ab970a406d363f62351a4db1e6a9b915166c5e6fc33f9f32de86fcf7d" + } + }, + { + "case": "set", + "size": 32, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "db996cef9d98fb3b9d21f9784bb64d5c620f539cea15d4fdc706dda378ec4c2a" + } + }, + { + "case": "set", + "size": 128, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "f2b264a9ab76f8515c41c76735b02ad16d0eacd2b42a56d3ed009a1a018ecf89" + } + }, + { + "case": "set", + "size": 512, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "ef002d32c2c6885a3a686458d867fa8ee44d34e12ba2d24968ea3d1423436e50" + } + }, + { + "case": "set", + "size": 2048, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "e72296d63954eedbc46b4004a5f538d95da74e43478d4f11de39cf9e98cdb6be" + } + }, + { + "case": "map-churn", + "size": 32, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "0d4a5fdd2df5c0357f17bfbe4ff8fe89b217dd4b3aa188c892cddff9d66694de" + } + }, + { + "case": "map-churn", + "size": 128, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "2216fa55089ae7645cf017670c390a9d0af7838eda257349104751342fcfddc3" + } + }, + { + "case": "map-churn", + "size": 512, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "dbf04ccad98a2c923dd99c37f4afdc4f2925ced95859038b440643af4ad228bb" + } + }, + { + "case": "map-churn", + "size": 2048, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "5fa5d99d78a3b81e47067738156a3257bcd84d85dd7f7e82fe0fee280d8f377c" + } + }, + { + "case": "set-churn", + "size": 32, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "7c30782124c953aeb554f7127cc1bf7958af292741c928c6c32b0ba8900ed219" + } + }, + { + "case": "set-churn", + "size": 128, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "44058f1375959e051614b817dd0f8182be5dd7af05858c0ba5655daf831292ef" + } + }, + { + "case": "set-churn", + "size": 512, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "90631d6546b11c8fa89f1507f25643702ec1968ae6ef71b0eca2de216d2c31ac" + } + }, + { + "case": "set-churn", + "size": 2048, + "operations": 32768, + "expected": "32769\n", + "files": { + "workload.mjs": "039e4801df2d0b483a561085ea79f9d470bcb7eac5a306e828a5cc108c2cf1a6" + } + }, + { + "case": "set-intersection", + "size": 32, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "b3156264d64b7e1edd408527f169ea094a9ea6c9c7c1adde67c150f3493d3c1e" + } + }, + { + "case": "set-intersection", + "size": 128, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "857eed2e8f4c3d28dcb253f84160fe5850cece285fea8110c662e8f6a8d2fbdf" + } + }, + { + "case": "set-intersection", + "size": 512, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "daeb369f356d076b5f3d818a8fac12601dacd78c2b07c5b4e718a1e1a313f233" + } + }, + { + "case": "set-intersection", + "size": 2048, + "operations": 32768, + "expected": "32768\n", + "files": { + "workload.mjs": "92476ac81288942217acf9298b08b805adefeb91641a810d7a745386c0488572" + } + }, + { + "case": "prop-write", + "size": 32, + "operations": 32768, + "expected": "32799\n", + "files": { + "workload.mjs": "7c9db69cf1ee785b1b3fff822f28d75dc3174c188bc4e40d08a35c3af59f9ebb" + } + }, + { + "case": "prop-write", + "size": 128, + "operations": 32768, + "expected": "32895\n", + "files": { + "workload.mjs": "56ce353a5ff9ea92446563fd64d2d37e10b9fb59ed53f3198b10f3c911bcf415" + } + }, + { + "case": "prop-write", + "size": 512, + "operations": 32768, + "expected": "33279\n", + "files": { + "workload.mjs": "511d1bf434c93d33db1d2a136e2b35352eb8f7ad1944d1aacc04a167c61cf1e6" + } + }, + { + "case": "prop-write", + "size": 2048, + "operations": 32768, + "expected": "34815\n", + "files": { + "workload.mjs": "467fe0810bb9663f0a55455b55403c8c0be4dda9a3f2fa48b42dda85e5c1aca7" + } + } + ], + "summary": [ + { + "case": "map-int", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 115613397, + 117807660, + 117582455 + ], + "failures": [], + "median_wall_ns": 117582455 + }, + { + "case": "map-int", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74547991, + 74969226, + 75940589 + ], + "failures": [], + "median_wall_ns": 74969226 + }, + { + "case": "map-int", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 248359076, + 262855840, + 263978028 + ], + "failures": [], + "median_wall_ns": 262855840 + }, + { + "case": "map-int", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 72819678, + 76784573, + 72470780 + ], + "failures": [], + "median_wall_ns": 72819678 + }, + { + "case": "map-int", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 801606747, + 862581728, + 795558173 + ], + "failures": [], + "median_wall_ns": 801606747 + }, + { + "case": "map-int", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74820214, + 71375632, + 72508301 + ], + "failures": [], + "median_wall_ns": 72508301 + }, + { + "case": "map-int", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2819355497, + 2919248216, + 2949903205 + ], + "failures": [], + "median_wall_ns": 2919248216 + }, + { + "case": "map-int", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74436410, + 74987943, + 73347847 + ], + "failures": [], + "median_wall_ns": 74436410 + }, + { + "case": "map-string", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 189848945, + 182208382, + 184982879 + ], + "failures": [], + "median_wall_ns": 184982879 + }, + { + "case": "map-string", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 97222196, + 96315854, + 97328596 + ], + "failures": [], + "median_wall_ns": 97222196 + }, + { + "case": "map-string", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 461186065, + 469341551, + 473271501 + ], + "failures": [], + "median_wall_ns": 469341551 + }, + { + "case": "map-string", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 93907068, + 94745650, + 92784929 + ], + "failures": [], + "median_wall_ns": 93907068 + }, + { + "case": "map-string", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1684934972, + 1685831253, + 1682734925 + ], + "failures": [], + "median_wall_ns": 1684934972 + }, + { + "case": "map-string", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 92214373, + 94419346, + 95231059 + ], + "failures": [], + "median_wall_ns": 94419346 + }, + { + "case": "map-string", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5688094013, + 5704023333, + 5420604204 + ], + "failures": [], + "median_wall_ns": 5688094013 + }, + { + "case": "map-string", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 96579585, + 96962017, + 93907925 + ], + "failures": [], + "median_wall_ns": 96579585 + }, + { + "case": "set", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 103051345, + 103769331, + 105074726 + ], + "failures": [], + "median_wall_ns": 103769331 + }, + { + "case": "set", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74011416, + 73039230, + 72212981 + ], + "failures": [], + "median_wall_ns": 73039230 + }, + { + "case": "set", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 198969024, + 194108900, + 195569898 + ], + "failures": [], + "median_wall_ns": 195569898 + }, + { + "case": "set", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 70732676, + 70322983, + 70588554 + ], + "failures": [], + "median_wall_ns": 70588554 + }, + { + "case": "set", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 560438191, + 561890624, + 565454191 + ], + "failures": [], + "median_wall_ns": 561890624 + }, + { + "case": "set", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 69181488, + 69350367, + 70242211 + ], + "failures": [], + "median_wall_ns": 69350367 + }, + { + "case": "set", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2039364045, + 2041428854, + 2055055479 + ], + "failures": [], + "median_wall_ns": 2041428854 + }, + { + "case": "set", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 70894462, + 70631115, + 71831561 + ], + "failures": [], + "median_wall_ns": 70894462 + }, + { + "case": "map-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 40238913, + 40287644, + 42022379 + ], + "failures": [], + "median_wall_ns": 40287644 + }, + { + "case": "map-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 40652993, + 39590499, + 38924140 + ], + "failures": [], + "median_wall_ns": 39590499 + }, + { + "case": "map-churn", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 44492993, + 44347508, + 43744019 + ], + "failures": [], + "median_wall_ns": 44347508 + }, + { + "case": "map-churn", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38950470, + 38790819, + 38503296 + ], + "failures": [], + "median_wall_ns": 38790819 + }, + { + "case": "map-churn", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 63784180, + 61514896, + 60732310 + ], + "failures": [], + "median_wall_ns": 61514896 + }, + { + "case": "map-churn", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 40337799, + 39564058, + 40668693 + ], + "failures": [], + "median_wall_ns": 40337799 + }, + { + "case": "map-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 124761692, + 126076244, + 125421958 + ], + "failures": [], + "median_wall_ns": 125421958 + }, + { + "case": "map-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 42472699, + 42410001, + 42807923 + ], + "failures": [], + "median_wall_ns": 42472699 + }, + { + "case": "set-churn", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 37876151, + 38096318, + 38028109 + ], + "failures": [], + "median_wall_ns": 38028109 + }, + { + "case": "set-churn", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 37062085, + 37682206, + 37917830 + ], + "failures": [], + "median_wall_ns": 37682206 + }, + { + "case": "set-churn", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 43185065, + 39018729, + 39464880 + ], + "failures": [], + "median_wall_ns": 39464880 + }, + { + "case": "set-churn", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38499899, + 37874539, + 38977471 + ], + "failures": [], + "median_wall_ns": 38499899 + }, + { + "case": "set-churn", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 45253048, + 44820402, + 44840009 + ], + "failures": [], + "median_wall_ns": 44840009 + }, + { + "case": "set-churn", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38086980, + 39070155, + 38548190 + ], + "failures": [], + "median_wall_ns": 38548190 + }, + { + "case": "set-churn", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 68624157, + 66806405, + 67334444 + ], + "failures": [], + "median_wall_ns": 67334444 + }, + { + "case": "set-churn", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 41048721, + 40190371, + 42043278 + ], + "failures": [], + "median_wall_ns": 41048721 + }, + { + "case": "set-intersection", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 147990203, + 145832190, + 144937652 + ], + "failures": [], + "median_wall_ns": 145832190 + }, + { + "case": "set-intersection", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 87792714, + 86383062, + 87251722 + ], + "failures": [], + "median_wall_ns": 87251722 + }, + { + "case": "set-intersection", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 356373275, + 350981217, + 358164148 + ], + "failures": [], + "median_wall_ns": 356373275 + }, + { + "case": "set-intersection", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 80698512, + 83885197, + 80261526 + ], + "failures": [], + "median_wall_ns": 80698512 + }, + { + "case": "set-intersection", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1191539606, + 1177676599, + 1184748402 + ], + "failures": [], + "median_wall_ns": 1184748402 + }, + { + "case": "set-intersection", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 80628980, + 79636016, + 79713403 + ], + "failures": [], + "median_wall_ns": 79713403 + }, + { + "case": "set-intersection", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4505222379, + 4522036453, + 4532498846 + ], + "failures": [], + "median_wall_ns": 4522036453 + }, + { + "case": "set-intersection", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 83132068, + 80823399, + 82022434 + ], + "failures": [], + "median_wall_ns": 82022434 + }, + { + "case": "prop-write", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 39418345, + 40651674, + 39319919 + ], + "failures": [], + "median_wall_ns": 39418345 + }, + { + "case": "prop-write", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 42879980, + 40840730, + 39012499 + ], + "failures": [], + "median_wall_ns": 40840730 + }, + { + "case": "prop-write", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 60068068, + 60992734, + 60021090 + ], + "failures": [], + "median_wall_ns": 60068068 + }, + { + "case": "prop-write", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 60067607, + 61724326, + 62775750 + ], + "failures": [], + "median_wall_ns": 61724326 + }, + { + "case": "prop-write", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 139559906, + 140332063, + 138669526 + ], + "failures": [], + "median_wall_ns": 139559906 + }, + { + "case": "prop-write", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 140029543, + 139649415, + 139608186 + ], + "failures": [], + "median_wall_ns": 139649415 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 447706998, + 447040861, + 444285961 + ], + "failures": [], + "median_wall_ns": 447040861 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 471697477, + 449791534, + 447153584 + ], + "failures": [], + "median_wall_ns": 449791534 + } + ], + "raw_samples_sha256": "810f0c98e28d661a44b65976b5041bacb5fe8010ed52a4231c7d9f25ff215e1d", + "limitations": [ + "whole-process timing, including setup and output", + "frequency not locked, machine not isolated", + "raw stdout/stderr retained locally under target/scaling-indexed-collections; not publicly uploaded", + "churn includes history construction and does not measure memory reclamation" + ] +} diff --git a/docs/reports/indexed-collections.md b/docs/reports/indexed-collections.md new file mode 100644 index 00000000..5f7a5d40 --- /dev/null +++ b/docs/reports/indexed-collections.md @@ -0,0 +1,68 @@ +# Map/Set hash-index measurements + +Measured on eric-83am, CPU 2, three interleaved repetitions per engine and workload. +Before: `4d5aa69` (engine sources identical to `cdc35ec`); after: `1ed4a35`. +Both are ordinary Cargo release builds without the profiling feature. Frequency was +not locked and the machine was not isolated. Builds and tests finished before timing. + +Each capacity workload inserts 32768 entries in total and performs 32768 membership +checks. All times below are whole-process wall medians in milliseconds, including +startup, compilation, construction, output and cleanup. These are A/B improvements +over the previous Oxide implementation, not ratios against QuickJS. + +| Case | Size | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| map-int | 32 | 117.58 | 74.97 | 1.57× | +| map-int | 128 | 262.86 | 72.82 | 3.61× | +| map-int | 512 | 801.61 | 72.51 | 11.06× | +| map-int | 2048 | 2919.25 | 74.44 | 39.22× | +| map-string | 32 | 184.98 | 97.22 | 1.90× | +| map-string | 128 | 469.34 | 93.91 | 5.00× | +| map-string | 512 | 1684.93 | 94.42 | 17.85× | +| map-string | 2048 | 5688.09 | 96.58 | 58.90× | +| set | 32 | 103.77 | 73.04 | 1.42× | +| set | 128 | 195.57 | 70.59 | 2.77× | +| set | 512 | 561.89 | 69.35 | 8.10× | +| set | 2048 | 2041.43 | 70.89 | 28.80× | +| map-churn | 32 | 40.29 | 39.59 | 1.02× | +| map-churn | 128 | 44.35 | 38.79 | 1.14× | +| map-churn | 512 | 61.51 | 40.34 | 1.52× | +| map-churn | 2048 | 125.42 | 42.47 | 2.95× | +| set-churn | 32 | 38.03 | 37.68 | 1.01× | +| set-churn | 128 | 39.46 | 38.50 | 1.03× | +| set-churn | 512 | 44.84 | 38.55 | 1.16× | +| set-churn | 2048 | 67.33 | 41.05 | 1.64× | +| set-intersection | 32 | 145.83 | 87.25 | 1.67× | +| set-intersection | 128 | 356.37 | 80.70 | 4.42× | +| set-intersection | 512 | 1184.75 | 79.71 | 14.86× | +| set-intersection | 2048 | 4522.04 | 82.02 | 55.13× | +| prop-write | 32 | 39.42 | 40.84 | 0.97× | +| prop-write | 128 | 60.07 | 61.72 | 0.97× | +| prop-write | 512 | 139.56 | 139.65 | 1.00× | +| prop-write | 2048 | 447.04 | 449.79 | 0.99× | + +All 168 samples exited successfully with independently checked exact stdout. +The complete medians and three raw wall values per group, workload hashes, binary +hashes and limitations are in [the measurement data](indexed-collections.json). + +The Map/Set capacity curves are now approximately flat. The property-write control +retains its width-dependent cost: it is intentionally unchanged in these binaries. +Churn lookup improves, but history construction is included and this experiment +does not establish a memory bound. Stable record tombstones and BTreeSet live indices +remain for the next storage phase. + +Validation at the collection change: 1911 library tests; 16 map-filtered and 10 +set-filtered CLI/oracle tests using pinned QuickJS; source-layout checks. A current-source +Test262 runner authenticated fingerprint +`dfc08b43abdd6b8b1b8dea50be9763c43cbe4430a404a65c518e599ea7445b86` +and ran all 6844 focused variants successfully. Non-comment result rows matched the +frozen focused baseline. The stock focused gate rejects changed-source fingerprints, +so this was an independent current-source replay, not a byte-identical frozen-receipt +promotion. No full Test262 claim is made. + +Reproduce the performance run with the scaling runner, before/after binaries for +the above commits, `--sizes 32 128 512 2048 --operations 32768 --repeat 3`, and cases +`map-int`, `map-string`, `set`, `map-churn`, `set-churn`, `set-intersection`, `prop-write`. +Launch it with `taskset -c 2`; use a fresh output directory. Raw process artifacts and +the replay command are retained locally under target; they are not public download links. +The earlier exploratory baseline that overlapped compilation is excluded. diff --git a/docs/reports/integer-keys-builtin-batches.json b/docs/reports/integer-keys-builtin-batches.json new file mode 100644 index 00000000..cae0c5cd --- /dev/null +++ b/docs/reports/integer-keys-builtin-batches.json @@ -0,0 +1,723 @@ +{ + "metadata": { + "schema": 1, + "metric": "whole-process wall nanoseconds; lower is better", + "instrumentation": "no profiling flags; verify ordinary builds via receipts", + "runner_sha256": "6f904f3124f6f05ba60fcf8f6a58a88b5d5301af4ad42bd06a143635f9dc3f03", + "generator_sha256": "67942ad6f48390d1793bda74684543a3dad09eadf6799ba42d6b72610984ec41", + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "596c7886450fbc6d04011f90fd27095e02283ebb", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "M scripts/benchmark/scaling_workloads.py", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/benchmark-binaries/dictionary-objects/qjs", + "sha256": "578b83194ab4663c682614dd11541f56bae4e8aaa3499538bb561ee8cacde05a", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/benchmark-binaries/dictionary-objects/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/batch-small-edges/qjs", + "sha256": "c7e87e2c6d3b65b1ffecffc0ac0e6f765d8e73b620f0ac7319a7e219bb7404ec", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/batch-small-edges/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + } + }, + "repeat": 3, + "timeout_seconds": 60, + "workloads": [ + { + "case": "array-index", + "size": 8, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/array-index-8/workload.mjs", + "expected": "114688\n", + "files": { + "workload.mjs": "1fdcc1090ce26a2a6f9ec31ade83aca669ade17910074f6c6ca7e6b4604aee42" + } + }, + { + "case": "array-index", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/array-index-32/workload.mjs", + "expected": "507904\n", + "files": { + "workload.mjs": "f68278ad16d7e3c0680b973decf344e051c2a9f734e360bb627f2b9456b76e59" + } + }, + { + "case": "array-index", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/array-index-128/workload.mjs", + "expected": "2080768\n", + "files": { + "workload.mjs": "68a7ab56e8cf1d53f0a9f08750b15f400607dee99f613e0156bca55d782a01c2" + } + }, + { + "case": "array-holey", + "size": 8, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/array-holey-8/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "84aace4b7c8ae9f9e737ecca4f69f9b95bcf7c4eae44ef06e6815deaade73254" + } + }, + { + "case": "array-holey", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/array-holey-32/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "c203d74e33f47d0af020a69994fdf14d10d15ac2cc073504c5f98a7d258d090e" + } + }, + { + "case": "array-holey", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/array-holey-128/workload.mjs", + "expected": "536854528\n", + "files": { + "workload.mjs": "7fe1fd3937cf14d4c7184d3c72f3f1b16863bfd34163b6dfd9603ff565612005" + } + }, + { + "case": "typed-index", + "size": 8, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/typed-index-8/workload.mjs", + "expected": "114688\n", + "files": { + "workload.mjs": "d00371d2d5cedc14f8bd4d57d80afd3e4f2993305d87e97d01fe1ea97b4cd0cd" + } + }, + { + "case": "typed-index", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/typed-index-32/workload.mjs", + "expected": "507904\n", + "files": { + "workload.mjs": "05e5249491bc3d7da002858fab1adbb28d09c8537384f5430a92d9f725a709fc" + } + }, + { + "case": "typed-index", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/typed-index-128/workload.mjs", + "expected": "2080768\n", + "files": { + "workload.mjs": "51d6471f0d6a51a8163c098ee8ed7f9ff257480c36afdc0f47d914689857333e" + } + }, + { + "case": "arguments", + "size": 8, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/arguments-8/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "9becc35b547b8765df66762945f9d40126f1a1b2bc73a8df6ae57aec511cc110" + } + }, + { + "case": "arguments", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/arguments-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "b08a8b7c55aabf0d37b8420946fb34d2feaae53d49f8675b8e010cd2a1cd4f12" + } + }, + { + "case": "arguments", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/arguments-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "0188d30fa85f8f484186769a35dc8844cd48897c0a1d45fdc87a66e32482dcbf" + } + }, + { + "case": "mapped-arguments", + "size": 8, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/mapped-arguments-8/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "8724a1c47235b688baa69eac6ac43036f7974033fa98be09d89aafbf247a4ab5" + } + }, + { + "case": "mapped-arguments", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/mapped-arguments-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "93b6fd5661a2dea6a1274e38464897cfcb40a1e9ab83e9402f1ea1cf9f91a2fe" + } + }, + { + "case": "mapped-arguments", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/mapped-arguments-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "4e45f2cef44d799982243e1faf873c814c0a666f048770a589c57fa8ff2029c9" + } + }, + { + "case": "regexp-groups", + "size": 8, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/regexp-groups-8/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "23395ac00da89db3060b3900da2444ad2dda4a7ff9cdb13f47b55e3edf49c2a2" + } + }, + { + "case": "regexp-groups", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/regexp-groups-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "4618c2d80f7de5d29b1f96983db496af6ccabf9c89f05036ead0eb0c2288d15a" + } + }, + { + "case": "regexp-groups", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-builtin-batches/workloads/regexp-groups-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "6e23f2c0f6f672fa331394e6c798fddb077397224317697c920cc3b9b8d2230b" + } + } + ] + }, + "summary": [ + { + "case": "array-index", + "size": 8, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 69666818, + 69553263, + 69426967 + ], + "failures": [], + "median_wall_ns": 69553263 + }, + { + "case": "array-index", + "size": 8, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 50539527, + 50581554, + 52513338 + ], + "failures": [], + "median_wall_ns": 50581554 + }, + { + "case": "array-index", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 70114834, + 69050450, + 70742615 + ], + "failures": [], + "median_wall_ns": 70114834 + }, + { + "case": "array-index", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 52168747, + 52218197, + 50861896 + ], + "failures": [], + "median_wall_ns": 52168747 + }, + { + "case": "array-index", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 69345691, + 69706090, + 72396750 + ], + "failures": [], + "median_wall_ns": 69706090 + }, + { + "case": "array-index", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 51864942, + 51360013, + 53352328 + ], + "failures": [], + "median_wall_ns": 51864942 + }, + { + "case": "array-holey", + "size": 8, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 147003867, + 144409043, + 144227395 + ], + "failures": [], + "median_wall_ns": 144409043 + }, + { + "case": "array-holey", + "size": 8, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 119145584, + 117447551, + 119321744 + ], + "failures": [], + "median_wall_ns": 119145584 + }, + { + "case": "array-holey", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 241514934, + 240450829, + 243763670 + ], + "failures": [], + "median_wall_ns": 241514934 + }, + { + "case": "array-holey", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 214479966, + 216495864, + 216761842 + ], + "failures": [], + "median_wall_ns": 216495864 + }, + { + "case": "array-holey", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 609526146, + 609729186, + 608930323 + ], + "failures": [], + "median_wall_ns": 609526146 + }, + { + "case": "array-holey", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 588202673, + 573335770, + 590204103 + ], + "failures": [], + "median_wall_ns": 588202673 + }, + { + "case": "typed-index", + "size": 8, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 61239909, + 60021536, + 58868240 + ], + "failures": [], + "median_wall_ns": 60021536 + }, + { + "case": "typed-index", + "size": 8, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 34369980, + 34502979, + 34129947 + ], + "failures": [], + "median_wall_ns": 34369980 + }, + { + "case": "typed-index", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 60533537, + 61904567, + 60400748 + ], + "failures": [], + "median_wall_ns": 60533537 + }, + { + "case": "typed-index", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 34398370, + 34371883, + 34245161 + ], + "failures": [], + "median_wall_ns": 34371883 + }, + { + "case": "typed-index", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 59929740, + 60746661, + 60620684 + ], + "failures": [], + "median_wall_ns": 60620684 + }, + { + "case": "typed-index", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 34666420, + 35249569, + 34230164 + ], + "failures": [], + "median_wall_ns": 34666420 + }, + { + "case": "arguments", + "size": 8, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 70037496, + 71573643, + 71140552 + ], + "failures": [], + "median_wall_ns": 71140552 + }, + { + "case": "arguments", + "size": 8, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 27010176, + 29029432, + 27121096 + ], + "failures": [], + "median_wall_ns": 27121096 + }, + { + "case": "arguments", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 29157021, + 28920926, + 29579831 + ], + "failures": [], + "median_wall_ns": 29157021 + }, + { + "case": "arguments", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 14995256, + 14611766, + 15220672 + ], + "failures": [], + "median_wall_ns": 14995256 + }, + { + "case": "arguments", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 18950818, + 18838735, + 18782804 + ], + "failures": [], + "median_wall_ns": 18838735 + }, + { + "case": "arguments", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 11690186, + 11620751, + 11660814 + ], + "failures": [], + "median_wall_ns": 11660814 + }, + { + "case": "mapped-arguments", + "size": 8, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 89123330, + 86609346, + 87495771 + ], + "failures": [], + "median_wall_ns": 87495771 + }, + { + "case": "mapped-arguments", + "size": 8, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 38328498, + 35836140, + 36888245 + ], + "failures": [], + "median_wall_ns": 36888245 + }, + { + "case": "mapped-arguments", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 39268571, + 39479011, + 39083728 + ], + "failures": [], + "median_wall_ns": 39268571 + }, + { + "case": "mapped-arguments", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 22851994, + 22832146, + 22876558 + ], + "failures": [], + "median_wall_ns": 22851994 + }, + { + "case": "mapped-arguments", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 28587570, + 26641016, + 26729174 + ], + "failures": [], + "median_wall_ns": 26729174 + }, + { + "case": "mapped-arguments", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 19651562, + 19319132, + 19398457 + ], + "failures": [], + "median_wall_ns": 19398457 + }, + { + "case": "regexp-groups", + "size": 8, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 239142642, + 241993314, + 241281392 + ], + "failures": [], + "median_wall_ns": 241281392 + }, + { + "case": "regexp-groups", + "size": 8, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 132161770, + 134544711, + 133596755 + ], + "failures": [], + "median_wall_ns": 133596755 + }, + { + "case": "regexp-groups", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 146262250, + 147116883, + 146541026 + ], + "failures": [], + "median_wall_ns": 146541026 + }, + { + "case": "regexp-groups", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 98217802, + 100107418, + 98250698 + ], + "failures": [], + "median_wall_ns": 98250698 + }, + { + "case": "regexp-groups", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 122961565, + 120650404, + 119603655 + ], + "failures": [], + "median_wall_ns": 120650404 + }, + { + "case": "regexp-groups", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 91139500, + 89829372, + 90038554 + ], + "failures": [], + "median_wall_ns": 90038554 + } + ] +} diff --git a/docs/reports/integer-keys-builtin-batches.md b/docs/reports/integer-keys-builtin-batches.md new file mode 100644 index 00000000..6be91a34 --- /dev/null +++ b/docs/reports/integer-keys-builtin-batches.md @@ -0,0 +1,55 @@ +# Integer keys, builtin construction and small edge transactions + +Cumulative comparison: `645283d` → `596c788`, including integer-key creation, +TypedArray canonical-index classification, Arguments and RegExp batch publication, +and the 0/1/2-edge retain path. These measurements do not isolate individual +commit effects. Ordinary release builds, CPU 2, three interleaved repetitions, +no overlapping builds/tests, frequency unlocked, whole-process wall time. + +All 108 samples passed exact-output admission. 1930 library tests and 943 CLI/oracle +tests passed on the combined source, with 1 existing ignored CLI test. The 12 Python +runner tests now exercise 22 workloads at two sizes via an independent Node engine. + +| Workload | Size | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| array-index | 8 | 69.55 | 50.58 | 1.38× | +| array-index | 32 | 70.11 | 52.17 | 1.34× | +| array-index | 128 | 69.71 | 51.86 | 1.34× | +| array-holey | 8 | 144.41 | 119.15 | 1.21× | +| array-holey | 32 | 241.51 | 216.50 | 1.12× | +| array-holey | 128 | 609.53 | 588.20 | 1.04× | +| typed-index | 8 | 60.02 | 34.37 | 1.75× | +| typed-index | 32 | 60.53 | 34.37 | 1.76× | +| typed-index | 128 | 60.62 | 34.67 | 1.75× | +| arguments | 8 | 71.14 | 27.12 | 2.62× | +| arguments | 32 | 29.16 | 15.00 | 1.94× | +| arguments | 128 | 18.84 | 11.66 | 1.62× | +| mapped-arguments | 8 | 87.50 | 36.89 | 2.37× | +| mapped-arguments | 32 | 39.27 | 22.85 | 1.72× | +| mapped-arguments | 128 | 26.73 | 19.40 | 1.38× | +| regexp-groups | 8 | 241.28 | 133.60 | 1.81× | +| regexp-groups | 32 | 146.54 | 98.25 | 1.49× | +| regexp-groups | 128 | 120.65 | 90.04 | 1.34× | + +Each process performs 32768 indexed accesses or processes 32768 arguments/captures. +Arguments and RegExp batch count decreases as batch width grows; their decreasing +curves do not mean an individual larger object is cheaper. The mapped fixture uses +a Function constructor to create a non-strict body even though the harness is ESM. +RegExp fixtures stay below the pinned 255-capture limit and verify groups/indices +aliasing. Array/TypedArray integer access curves are approximately flat. + +The holey-array control still scales with width: repeated interior delete/reinsert +continues to rebuild Array layouts. That remaining evidence is the target for S08. +The numeric fast path deliberately excludes large/fractional/negative numbers, +while exact already-normalized u64 indices have a decimal-string fallback. Numeric +-0 and string "-0" remain distinct in the TypedArray conversion rules. + +Prepared object publication shares atom rollback and heap ownership, while +Arguments owns VarRef/strict-callee semantics and RegExp owns duplicate-name order +and participating-value selection. The small edge path preflights the full +multiset before changing any count, including duplicate accessor edges. + +[Raw samples, generators and binary identities](integer-keys-builtin-batches.json). +Reproduce with scaling.py, the above six cases, `--sizes 8 32 128`, +`--operations 32768 --repeat 3`, under `taskset -c 2`. +Fresh focused/full Test262 is still pending for this combined source. diff --git a/docs/reports/module-indexes.json b/docs/reports/module-indexes.json new file mode 100644 index 00000000..65618de4 --- /dev/null +++ b/docs/reports/module-indexes.json @@ -0,0 +1,317 @@ +{ + "before_commit": "5755719", + "after_commit": "2629e3e", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "3a20bd2b93b34b657153fda5b40148226942050e2b75fad38623b3e2abfa7a26", + "after": "c2544d0b2bf41a93b437646439670a342906f9a8970baaa54aa101eb03cbd51c" + }, + "summary": [ + { + "case": "module", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5121016, + 4772154, + 4717432 + ], + "failures": [], + "median_wall_ns": 4772154 + }, + { + "case": "module", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4619550, + 4389711, + 4448060 + ], + "failures": [], + "median_wall_ns": 4448060 + }, + { + "case": "module", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 12031719, + 12347370, + 11819403 + ], + "failures": [], + "median_wall_ns": 12031719 + }, + { + "case": "module", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 10926849, + 10650492, + 10754407 + ], + "failures": [], + "median_wall_ns": 10754407 + }, + { + "case": "module", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 147872890, + 148111396, + 140572428 + ], + "failures": [], + "median_wall_ns": 147872890 + }, + { + "case": "module", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 119982588, + 119170875, + 118828735 + ], + "failures": [], + "median_wall_ns": 119170875 + }, + { + "case": "module", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1859355718, + 1781639900, + 1765633225 + ], + "failures": [], + "median_wall_ns": 1781639900 + }, + { + "case": "module", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 1477654233, + 1431093883, + 1413239660 + ], + "failures": [], + "median_wall_ns": 1431093883 + }, + { + "case": "module-imports", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 6484853, + 6055011, + 5883139 + ], + "failures": [], + "median_wall_ns": 6055011 + }, + { + "case": "module-imports", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 5492601, + 5320409, + 5485587 + ], + "failures": [], + "median_wall_ns": 5485587 + }, + { + "case": "module-imports", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 22068266, + 22328770, + 22077062 + ], + "failures": [], + "median_wall_ns": 22077062 + }, + { + "case": "module-imports", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 18122472, + 17703499, + 17972452 + ], + "failures": [], + "median_wall_ns": 17972452 + }, + { + "case": "module-imports", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 351956135, + 340390348, + 344347644 + ], + "failures": [], + "median_wall_ns": 344347644 + }, + { + "case": "module-imports", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 253442649, + 252506463, + 247954764 + ], + "failures": [], + "median_wall_ns": 252506463 + }, + { + "case": "module-imports", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4578008345, + 4603581676, + 4542387000 + ], + "failures": [], + "median_wall_ns": 4578008345 + }, + { + "case": "module-imports", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 3300605373, + 3338785625, + 3644351449 + ], + "failures": [], + "median_wall_ns": 3338785625 + } + ], + "workloads": [ + { + "case": "module", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-64/workload.mjs", + "expected": "2016\n", + "files": { + "exports.mjs": "234b0f8dbdcfdc94825dfb10c180776d9620f1fb109b9d42a2cd84dd2036e8fd", + "workload.mjs": "5b260880633b66de3dc94402c2bab21803d7461093a6aa5ec7e0787c8465dec2" + } + }, + { + "case": "module", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-256/workload.mjs", + "expected": "32640\n", + "files": { + "exports.mjs": "63bf527d3c29444088a42fed10ae16980c766269133b81d7e0e4ba02534c1f1a", + "workload.mjs": "c07caaf9de6e6cd74d041e07af9ac3221b4bdf063d07e0e491f43ae36d97106f" + } + }, + { + "case": "module", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-1024/workload.mjs", + "expected": "523776\n", + "files": { + "exports.mjs": "b23ee15ff23a5f4015b58ddc86ae40f26e13cd7b5821d6c521ad8a9e9337c587", + "workload.mjs": "93e77a65ed16d04575b4fe7f19f00d131c0698159fe2f770a666010042984a2f" + } + }, + { + "case": "module", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "exports.mjs": "7b2b8df4fbf521c033a4a9865d1e30be288c0e1940e4dd658f4a615548c39e0f", + "workload.mjs": "0f9a66ae3fb428bc5ead6159f9b5a710ba93de9bd7c2e3c5f6bb7a75e45f9315" + } + }, + { + "case": "module-imports", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-imports-64/workload.mjs", + "expected": "2016\n", + "files": { + "exports.mjs": "234b0f8dbdcfdc94825dfb10c180776d9620f1fb109b9d42a2cd84dd2036e8fd", + "imports.mjs": "fd1eea91d7b5fb9af7de572d8996087805ce34a6e3b7f3ac5812bd70d1ff069e", + "workload.mjs": "e92c8876e073eabc8fe9b0e709f5e6462d54c4f217f86b62268de1439233671c" + } + }, + { + "case": "module-imports", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-imports-256/workload.mjs", + "expected": "32640\n", + "files": { + "exports.mjs": "63bf527d3c29444088a42fed10ae16980c766269133b81d7e0e4ba02534c1f1a", + "imports.mjs": "d0ddc9a36d0a401bd1dd25a9975d5de0c92a08afd3c061c589581a470f1e58ed", + "workload.mjs": "71b490a2a6da708517005b5d3f9219e6b4bb6f23ba07c7e64eeaff95cf308af6" + } + }, + { + "case": "module-imports", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-imports-1024/workload.mjs", + "expected": "523776\n", + "files": { + "exports.mjs": "b23ee15ff23a5f4015b58ddc86ae40f26e13cd7b5821d6c521ad8a9e9337c587", + "imports.mjs": "f7afa61c220453ba7600580a2307f8818a2177192f7d3bf99221c6cf53419dd5", + "workload.mjs": "0c74723dc30ea146935e96b481886610163e3ad4b6a9f323ed484238b22a726e" + } + }, + { + "case": "module-imports", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-module-indexes/workloads/module-imports-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "exports.mjs": "7b2b8df4fbf521c033a4a9865d1e30be288c0e1940e4dd658f4a615548c39e0f", + "imports.mjs": "aa9166eab3bd9cfd911f66b452d0297bc8bf416927d722c3efb043a7999ff186", + "workload.mjs": "b14f9edfddaeeef054f53c152fbe4f0880fab6fcc1d56ce742221e478dac64d6" + } + } + ] +} diff --git a/docs/reports/module-indexes.md b/docs/reports/module-indexes.md new file mode 100644 index 00000000..52caf9c3 --- /dev/null +++ b/docs/reports/module-indexes.md @@ -0,0 +1,37 @@ +# Module lookup indexes + +Module publication now builds export-name and import-closure indexes beside the +ordered tables. Table replacement rebuilds the indexes; state-only replacement +shares them. Read snapshots share binding slots, with copy-on-write on mutation. +Resolver behavior, export ordering and live binding cells keep their owners. + +Before `5755719`; after `2629e3e`. Ordinary release builds, Ryzen 7 7840HS, +CPU 2, three interleaved repetitions. Builds and tests finished before timing; +frequency was not locked and the host was not isolated. These are whole-process +measurements including parsing, compilation, linking, execution and teardown. + +| Workload | Exports | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| module | 64 | 4.77 | 4.45 | 1.07× | +| module | 256 | 12.03 | 10.75 | 1.12× | +| module | 1024 | 147.87 | 119.17 | 1.24× | +| module | 4096 | 1781.64 | 1431.09 | 1.24× | +| module-imports | 64 | 6.06 | 5.49 | 1.10× | +| module-imports | 256 | 22.08 | 17.97 | 1.23× | +| module-imports | 1024 | 344.35 | 252.51 | 1.36× | +| module-imports | 4096 | 4578.01 | 3338.79 | 1.37× | + +All 48 samples produced the independent expected output. Small cases are too +short to interpret small percentage differences confidently. The large cases +improve, but the end-to-end curves remain strongly superlinear: removing module +point-lookup scans does not remove compiler and layout work or slot copy-on-write +costs. This is not evidence that complete module loading is linear. + +Validation at the module change: 1912 library tests and 19 module-filtered +CLI/oracle tests passed. Fresh focused/full Test262 remains pending. +See [wall samples, workloads and binary hashes](module-indexes.json). + +Reproduce with `taskset -c 2 python3 scripts/benchmark/scaling.py`, the above +before/after binaries, `--case module --case module-imports`, +`--sizes 64 256 1024 4096 --operations 32768 --repeat 3`. These generated-source +workloads execute once; operations does not normalize their source sizes. diff --git a/docs/reports/property-slot-update.json b/docs/reports/property-slot-update.json new file mode 100644 index 00000000..eb5ddb24 --- /dev/null +++ b/docs/reports/property-slot-update.json @@ -0,0 +1,120 @@ +{ + "before_commit": "1ed4a35", + "after_commit": "5755719", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "operations": 131072, + "metric": "whole-process wall nanoseconds, ordinary release builds", + "binaries": { + "before": "edb96aedcf9b4b43114d7331e04f80f901af1145dbaf12e0cd0666f28c2bf71b", + "after": "3a20bd2b93b34b657153fda5b40148226942050e2b75fad38623b3e2abfa7a26" + }, + "summary": [ + { + "case": "prop-write", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 148357954, + 149562830, + 147700554 + ], + "failures": [], + "median_wall_ns": 148357954 + }, + { + "case": "prop-write", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 110846879, + 115250853, + 111241763 + ], + "failures": [], + "median_wall_ns": 111241763 + }, + { + "case": "prop-write", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 228985494, + 232976469, + 228066799 + ], + "failures": [], + "median_wall_ns": 228985494 + }, + { + "case": "prop-write", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 114288436, + 111383470, + 115367724 + ], + "failures": [], + "median_wall_ns": 114288436 + }, + { + "case": "prop-write", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 542495555, + 541547166, + 538125675 + ], + "failures": [], + "median_wall_ns": 541547166 + }, + { + "case": "prop-write", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 113836252, + 112509908, + 119866329 + ], + "failures": [], + "median_wall_ns": 113836252 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1759144105, + 1776455910, + 1755642106 + ], + "failures": [], + "median_wall_ns": 1759144105 + }, + { + "case": "prop-write", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 119237943, + 120262748, + 119032355 + ], + "failures": [], + "median_wall_ns": 119237943 + } + ] +} diff --git a/docs/reports/property-slot-update.md b/docs/reports/property-slot-update.md new file mode 100644 index 00000000..b58cee09 --- /dev/null +++ b/docs/reports/property-slot-update.md @@ -0,0 +1,32 @@ +# Existing-property slot update + +The same-flags slot replacement now runs before cloning shape entries or object +slots. It keeps the previous retain/replace/release transaction and structured +invariant error. Shared layouts and descriptor-changing operations keep their +existing paths. + +Before `1ed4a35`; after `5755719`. Ordinary release builds, eric-83am, CPU 2, +three interleaved repetitions, 131072 writes to p0 per process. Builds and tests +finished before timing; frequency was not locked and the host was not isolated. +Times include startup, compilation, object construction, output and teardown. + +| Object properties | Before ms | After ms | Before / after | +| ---: | ---: | ---: | ---: | +| 32 | 148.36 | 111.24 | 1.33× | +| 128 | 228.99 | 114.29 | 2.00× | +| 512 | 541.55 | 113.84 | 4.76× | +| 2048 | 1759.14 | 119.24 | 14.75× | + +All 24 samples produced the independently expected output. The new width curve is +approximately flat; small remaining growth includes object construction. This is +an A/B comparison of Oxide builds, not a comparison against QuickJS. See [raw wall +values and binary hashes](property-slot-update.json). + +Validation: 1911 library tests and 11 property-filtered CLI/oracle tests passed; +ordinary release build passed. A new focused/full Test262 replay for this property +change is still pending; the collection report covers an earlier source version. + +Reproduce using scaling.py with `--case prop-write --sizes 32 128 512 2048`, +`--operations 131072 --repeat 3`, the above binaries and `taskset -c 2`. +Raw stdout/stderr and workload metadata remain in the local target/scaling-property-slots +directory; they have not been published as downloadable artifacts. diff --git a/docs/reports/source-coordinate-index.json b/docs/reports/source-coordinate-index.json new file mode 100644 index 00000000..2007ceca --- /dev/null +++ b/docs/reports/source-coordinate-index.json @@ -0,0 +1,453 @@ +{ + "before_commit": "1d8c58c", + "after_commit": "e5c49a1", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "9163d80631804df0c1beeab84ad220cd0a7c4cbaf7446ce711754b73b8f9ba9e", + "after": "0a9a2a8d56fcbff20f3966419d65f72451ba29fca55aaaa7d668ad02c89f6cd9" + }, + "summary": [ + { + "case": "constants", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4753939, + 6103540, + 4804806 + ], + "failures": [], + "median_wall_ns": 4804806 + }, + { + "case": "constants", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4126548, + 3823257, + 4283294 + ], + "failures": [], + "median_wall_ns": 4126548 + }, + { + "case": "constants", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 8974335, + 8967913, + 9030139 + ], + "failures": [], + "median_wall_ns": 8974335 + }, + { + "case": "constants", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 6215220, + 6224147, + 6374851 + ], + "failures": [], + "median_wall_ns": 6224147 + }, + { + "case": "constants", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 61900541, + 64293957, + 61965754 + ], + "failures": [], + "median_wall_ns": 61965754 + }, + { + "case": "constants", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 15890705, + 15637430, + 15778333 + ], + "failures": [], + "median_wall_ns": 15778333 + }, + { + "case": "constants", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 809948321, + 809961287, + 806842556 + ], + "failures": [], + "median_wall_ns": 809948321 + }, + { + "case": "constants", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 63177886, + 63569112, + 66846774 + ], + "failures": [], + "median_wall_ns": 63569112 + }, + { + "case": "scope", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4138190, + 3784064, + 3508946 + ], + "failures": [], + "median_wall_ns": 3784064 + }, + { + "case": "scope", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4065834, + 4034876, + 3615526 + ], + "failures": [], + "median_wall_ns": 4034876 + }, + { + "case": "scope", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 5934613, + 5865252, + 6357949 + ], + "failures": [], + "median_wall_ns": 5934613 + }, + { + "case": "scope", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4747838, + 4589039, + 5036692 + ], + "failures": [], + "median_wall_ns": 4747838 + }, + { + "case": "scope", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 31806196, + 29534100, + 29733274 + ], + "failures": [], + "median_wall_ns": 29733274 + }, + { + "case": "scope", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 9308113, + 9057511, + 9465651 + ], + "failures": [], + "median_wall_ns": 9308113 + }, + { + "case": "scope", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 411260792, + 411172587, + 409125252 + ], + "failures": [], + "median_wall_ns": 411172587 + }, + { + "case": "scope", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 47322437, + 46606208, + 46678235 + ], + "failures": [], + "median_wall_ns": 46678235 + }, + { + "case": "module", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4316716, + 3872199, + 3884813 + ], + "failures": [], + "median_wall_ns": 3884813 + }, + { + "case": "module", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 4038142, + 3874273, + 6048867 + ], + "failures": [], + "median_wall_ns": 4038142 + }, + { + "case": "module", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 7216648, + 6013320, + 5978034 + ], + "failures": [], + "median_wall_ns": 6013320 + }, + { + "case": "module", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 5786754, + 5722573, + 5791092 + ], + "failures": [], + "median_wall_ns": 5786754 + }, + { + "case": "module", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 23891297, + 23975205, + 24001845 + ], + "failures": [], + "median_wall_ns": 23975205 + }, + { + "case": "module", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 18357148, + 18273139, + 18590257 + ], + "failures": [], + "median_wall_ns": 18357148 + }, + { + "case": "module", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 239715659, + 238494371, + 244354713 + ], + "failures": [], + "median_wall_ns": 239715659 + }, + { + "case": "module", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 146322861, + 145958655, + 144538641 + ], + "failures": [], + "median_wall_ns": 145958655 + } + ], + "workloads": [ + { + "case": "constants", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/constants-64/workload.mjs", + "expected": "64\n", + "files": { + "workload.mjs": "f21bcf394ba06927c35ed906c4c632695ae6a6622e97ee395e1bf6f1d0c46c99" + } + }, + { + "case": "constants", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/constants-256/workload.mjs", + "expected": "256\n", + "files": { + "workload.mjs": "4ad0fc41b014de34dd71f8d0ee7e54f59f2ec01ed37e0a7ba4c23879939191e9" + } + }, + { + "case": "constants", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/constants-1024/workload.mjs", + "expected": "1024\n", + "files": { + "workload.mjs": "4b3e75bf7926e322a3a4fde48700aeafdadbb0e33ae10dc63d577f221227d94c" + } + }, + { + "case": "constants", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/constants-4096/workload.mjs", + "expected": "4096\n", + "files": { + "workload.mjs": "37146a010bc2dd4876086774269dd376ac5a627546dc308a844a16f37c1a9cd4" + } + }, + { + "case": "scope", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/scope-64/workload.mjs", + "expected": "2016\n", + "files": { + "workload.mjs": "1bcbde34b092ec4307f4d9c1f734b574580a10a1e5eea1be28054201b6191068" + } + }, + { + "case": "scope", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/scope-256/workload.mjs", + "expected": "32640\n", + "files": { + "workload.mjs": "79e9e9df3069b021a53eecf8e48a3538f4bf2926360906654f43af571789558c" + } + }, + { + "case": "scope", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/scope-1024/workload.mjs", + "expected": "523776\n", + "files": { + "workload.mjs": "5ccc9e0dbe5692d6c723cff77e5398241dfe8b8d72c85918b5ee72ce2b4a4944" + } + }, + { + "case": "scope", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/scope-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "workload.mjs": "64bea7f8ad100176bbe40b605722289551999a58c9a2cea89da2479b736c0d93" + } + }, + { + "case": "module", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/module-64/workload.mjs", + "expected": "2016\n", + "files": { + "exports.mjs": "234b0f8dbdcfdc94825dfb10c180776d9620f1fb109b9d42a2cd84dd2036e8fd", + "workload.mjs": "5b260880633b66de3dc94402c2bab21803d7461093a6aa5ec7e0787c8465dec2" + } + }, + { + "case": "module", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/module-256/workload.mjs", + "expected": "32640\n", + "files": { + "exports.mjs": "63bf527d3c29444088a42fed10ae16980c766269133b81d7e0e4ba02534c1f1a", + "workload.mjs": "c07caaf9de6e6cd74d041e07af9ac3221b4bdf063d07e0e491f43ae36d97106f" + } + }, + { + "case": "module", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/module-1024/workload.mjs", + "expected": "523776\n", + "files": { + "exports.mjs": "b23ee15ff23a5f4015b58ddc86ae40f26e13cd7b5821d6c521ad8a9e9337c587", + "workload.mjs": "93e77a65ed16d04575b4fe7f19f00d131c0698159fe2f770a666010042984a2f" + } + }, + { + "case": "module", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-source-indexes/workloads/module-4096/workload.mjs", + "expected": "8386560\n", + "files": { + "exports.mjs": "7b2b8df4fbf521c033a4a9865d1e30be288c0e1940e4dd658f4a615548c39e0f", + "workload.mjs": "0f9a66ae3fb428bc5ead6159f9b5a710ba93de9bd7c2e3c5f6bb7a75e45f9315" + } + } + ] +} diff --git a/docs/reports/source-coordinate-index.md b/docs/reports/source-coordinate-index.md new file mode 100644 index 00000000..570fcda9 --- /dev/null +++ b/docs/reports/source-coordinate-index.md @@ -0,0 +1,28 @@ +# Source coordinate checkpoints + +Before `1d8c58c`; after `e5c49a1`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, three interleaved repetitions, no overlapping builds/tests. Frequency was +not locked. Times measure the whole process, including compilation and teardown. + +Generated source sizes vary; each program executes once. All 72 samples passed. 1917 library tests and 943 CLI/oracle tests passed, 1 ignored. + +| Workload | Size | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| constants | 64 | 4.80 | 4.13 | 1.16× | +| constants | 256 | 8.97 | 6.22 | 1.44× | +| constants | 1024 | 61.97 | 15.78 | 3.93× | +| constants | 4096 | 809.95 | 63.57 | 12.74× | +| scope | 64 | 3.78 | 4.03 | 0.94× | +| scope | 256 | 5.93 | 4.75 | 1.25× | +| scope | 1024 | 29.73 | 9.31 | 3.19× | +| scope | 4096 | 411.17 | 46.68 | 8.81× | +| module | 64 | 3.88 | 4.04 | 0.96× | +| module | 256 | 6.01 | 5.79 | 1.04× | +| module | 1024 | 23.98 | 18.36 | 1.31× | +| module | 4096 | 239.72 | 145.96 | 1.64× | + +The source index is built once and shared by all lowered functions. It stores one eight-byte position per 256 bytes and scans at most 255 bytes per query, including long single lines. StripDebug avoids construction. Other compiler/module costs remain; the full program is not proven linear. + +Fresh focused/full Test262 remains pending. See [samples and binary identities](source-coordinate-index.json). +Reproduce with scaling.py, the above binaries and workloads/sizes, +`--operations 32768 --repeat 3`, under `taskset -c 2`. diff --git a/docs/reports/sparse-array-truncation.json b/docs/reports/sparse-array-truncation.json new file mode 100644 index 00000000..acd570e3 --- /dev/null +++ b/docs/reports/sparse-array-truncation.json @@ -0,0 +1,161 @@ +{ + "before_commit": "bb8032b", + "after_commit": "1d8c58c", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "073ca6140433fb9b4d7663a0e019d45fee031d15b45d9b598769cfcae81631fd", + "after": "9163d80631804df0c1beeab84ad220cd0a7c4cbaf7446ce711754b73b8f9ba9e" + }, + "summary": [ + { + "case": "array-truncate", + "size": 32, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 209232472, + 206063649, + 209096397 + ], + "failures": [], + "median_wall_ns": 209096397 + }, + { + "case": "array-truncate", + "size": 32, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 111301567, + 114508633, + 115569981 + ], + "failures": [], + "median_wall_ns": 114508633 + }, + { + "case": "array-truncate", + "size": 128, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 395296355, + 397545359, + 391627463 + ], + "failures": [], + "median_wall_ns": 395296355 + }, + { + "case": "array-truncate", + "size": 128, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 108536203, + 108231010, + 108977284 + ], + "failures": [], + "median_wall_ns": 108536203 + }, + { + "case": "array-truncate", + "size": 512, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 1124055639, + 1128650931, + 1126572062 + ], + "failures": [], + "median_wall_ns": 1126572062 + }, + { + "case": "array-truncate", + "size": 512, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 107616694, + 105535727, + 107670204 + ], + "failures": [], + "median_wall_ns": 107616694 + }, + { + "case": "array-truncate", + "size": 2048, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 4261757061, + 4334877404, + 4149793704 + ], + "failures": [], + "median_wall_ns": 4261757061 + }, + { + "case": "array-truncate", + "size": 2048, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 107913905, + 107196756, + 109601803 + ], + "failures": [], + "median_wall_ns": 107913905 + } + ], + "workloads": [ + { + "case": "array-truncate", + "size": 32, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-sparse-truncation/workloads/array-truncate-32/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "d7e8549c7fc1ade0369d2714e556243b0e60b4986492dbf42e0e04860eb10c33" + } + }, + { + "case": "array-truncate", + "size": 128, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-sparse-truncation/workloads/array-truncate-128/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "730c3f2ff4ca9d63a4dc057ce53b484af1827df342d38f81158205d24b8a4fdf" + } + }, + { + "case": "array-truncate", + "size": 512, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-sparse-truncation/workloads/array-truncate-512/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "66148cca9934393ac70ba808581c284d49a0a7748819a040abdcd097ea8e5ce0" + } + }, + { + "case": "array-truncate", + "size": 2048, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-sparse-truncation/workloads/array-truncate-2048/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "ce8b17c249a3e6ce2c1b107d91f7589bb0247dc0cef7efb02f4364f968f96bc8" + } + } + ] +} diff --git a/docs/reports/sparse-array-truncation.md b/docs/reports/sparse-array-truncation.md new file mode 100644 index 00000000..6c164195 --- /dev/null +++ b/docs/reports/sparse-array-truncation.md @@ -0,0 +1,20 @@ +# Sparse Array length truncation + +Before `bb8032b`; after `1d8c58c`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, three interleaved repetitions, no overlapping builds/tests. Frequency was +not locked. Times measure the whole process, including compilation and teardown. + +32768 elements processed per process; sizes vary the number truncated at once. All 24 samples passed. 1916 library tests and 943 CLI/oracle tests passed, 1 ignored. + +| Workload | Size | Before ms | After ms | Before / after | +| --- | ---: | ---: | ---: | ---: | +| array-truncate | 32 | 209.10 | 114.51 | 1.83× | +| array-truncate | 128 | 395.30 | 108.54 | 3.64× | +| array-truncate | 512 | 1126.57 | 107.62 | 10.47× | +| array-truncate | 2048 | 4261.76 | 107.91 | 39.49× | + +The fixed-work truncation curve is approximately flat. The batch retains surviving slots before releasing the old layout, keeps named-property order, and stops at the highest non-configurable index. Integer-key optimization and holey storage are separate pending work. + +Fresh focused/full Test262 remains pending. See [samples and binary identities](sparse-array-truncation.json). +Reproduce with scaling.py, the above binaries and workloads/sizes, +`--operations 32768 --repeat 3`, under `taskset -c 2`. diff --git a/docs/reports/string-hash-integer-confirmation.json b/docs/reports/string-hash-integer-confirmation.json new file mode 100644 index 00000000..d9527f7f --- /dev/null +++ b/docs/reports/string-hash-integer-confirmation.json @@ -0,0 +1,61 @@ +{ + "before_commit": "cf54916", + "after_commit": "383a2e1", + "cpu_affinity": [ + 2 + ], + "repeat": 7, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "71871ac007dd0dadd3981efec15853fd34dabb5b4833d17d9ee84d90575146d7", + "after": "f06bfdb0b05e6cd5c34a140af5d1f4a379f2e871c0f23cf84899d25cbbfcdad6" + }, + "summary": [ + { + "case": "map-int", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 297690935, + 296645807, + 295576175, + 296137917, + 332122020, + 289060363, + 299018897 + ], + "failures": [], + "median_wall_ns": 296645807 + }, + { + "case": "map-int", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 304895566, + 291189697, + 287759407, + 294059202, + 287924402, + 285697332, + 293122959 + ], + "failures": [], + "median_wall_ns": 291189697 + } + ], + "workloads": [ + { + "case": "map-int", + "size": 4096, + "operations": 131072, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-integer-check/workloads/map-int-4096/workload.mjs", + "expected": "131072\n", + "files": { + "workload.mjs": "f67282d3e6fc07e84938bd47a4e72ea4e06b35c106abca34c6f90280d32c0c1f" + } + } + ] +} diff --git a/docs/reports/string-hash-memo.json b/docs/reports/string-hash-memo.json new file mode 100644 index 00000000..2924f2ea --- /dev/null +++ b/docs/reports/string-hash-memo.json @@ -0,0 +1,449 @@ +{ + "before_commit": "cf54916", + "after_commit": "383a2e1", + "cpu_affinity": [ + 2 + ], + "repeat": 3, + "metric": "whole-process wall nanoseconds; lower is better", + "binaries": { + "before": "71871ac007dd0dadd3981efec15853fd34dabb5b4833d17d9ee84d90575146d7", + "after": "f06bfdb0b05e6cd5c34a140af5d1f4a379f2e871c0f23cf84899d25cbbfcdad6" + }, + "summary": [ + { + "case": "map-int", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 72674586, + 74838466, + 75795045 + ], + "failures": [], + "median_wall_ns": 74838466 + }, + { + "case": "map-int", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 72640617, + 73037875, + 74599524 + ], + "failures": [], + "median_wall_ns": 73037875 + }, + { + "case": "map-int", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 76097716, + 75170796, + 75391161 + ], + "failures": [], + "median_wall_ns": 75391161 + }, + { + "case": "map-int", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 73334581, + 72299923, + 73197574 + ], + "failures": [], + "median_wall_ns": 73197574 + }, + { + "case": "map-int", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 80604863, + 75401070, + 74107854 + ], + "failures": [], + "median_wall_ns": 75401070 + }, + { + "case": "map-int", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 74231501, + 74091107, + 77155523 + ], + "failures": [], + "median_wall_ns": 74231501 + }, + { + "case": "map-int", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 88145399, + 77583647, + 76975169 + ], + "failures": [], + "median_wall_ns": 77583647 + }, + { + "case": "map-int", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 118662216, + 105878961, + 75936815 + ], + "failures": [], + "median_wall_ns": 105878961 + }, + { + "case": "map-string", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 90298684, + 85575172, + 85193974 + ], + "failures": [], + "median_wall_ns": 85575172 + }, + { + "case": "map-string", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 86520219, + 85565714, + 86765343 + ], + "failures": [], + "median_wall_ns": 86520219 + }, + { + "case": "map-string", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 88122291, + 87561280, + 86854434 + ], + "failures": [], + "median_wall_ns": 87561280 + }, + { + "case": "map-string", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 87089028, + 87195912, + 86091815 + ], + "failures": [], + "median_wall_ns": 87089028 + }, + { + "case": "map-string", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 88995674, + 88170347, + 86384155 + ], + "failures": [], + "median_wall_ns": 88170347 + }, + { + "case": "map-string", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 87354883, + 87504874, + 89358213 + ], + "failures": [], + "median_wall_ns": 87504874 + }, + { + "case": "map-string", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 96502297, + 91826233, + 91328750 + ], + "failures": [], + "median_wall_ns": 91826233 + }, + { + "case": "map-string", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 89654873, + 89483356, + 92738583 + ], + "failures": [], + "median_wall_ns": 89654873 + }, + { + "case": "long-key", + "size": 64, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 44191398, + 43988839, + 43041679 + ], + "failures": [], + "median_wall_ns": 43988839 + }, + { + "case": "long-key", + "size": 64, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 43259537, + 41922162, + 42368431 + ], + "failures": [], + "median_wall_ns": 42368431 + }, + { + "case": "long-key", + "size": 256, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 57380431, + 58349045, + 58321529 + ], + "failures": [], + "median_wall_ns": 58321529 + }, + { + "case": "long-key", + "size": 256, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 37327213, + 37385560, + 38127365 + ], + "failures": [], + "median_wall_ns": 37385560 + }, + { + "case": "long-key", + "size": 1024, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 112645937, + 111756022, + 113228602 + ], + "failures": [], + "median_wall_ns": 112645937 + }, + { + "case": "long-key", + "size": 1024, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 39308670, + 38485769, + 37962804 + ], + "failures": [], + "median_wall_ns": 38485769 + }, + { + "case": "long-key", + "size": 4096, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 331473093, + 328658268, + 329478700 + ], + "failures": [], + "median_wall_ns": 329478700 + }, + { + "case": "long-key", + "size": 4096, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 39560878, + 39083315, + 39391567 + ], + "failures": [], + "median_wall_ns": 39391567 + } + ], + "workloads": [ + { + "case": "map-int", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-int-64/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "0583e7043d14cea3ae460da74c97abbb67f76e6a5e9af4030031be43a3c7bb9a" + } + }, + { + "case": "map-int", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-int-256/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "734978221558d73d34794af500377e5e9b54bc4a3a837ec431edd06ec6dbc8ba" + } + }, + { + "case": "map-int", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-int-1024/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "86de6c323dfb1554adf0dc978fec465387eaab8752baf682c19b22a624af1886" + } + }, + { + "case": "map-int", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-int-4096/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "482ac5672acd3a6ff7784bf5b0c303a170b3f199ae7e588fbeac14cd0edb7c1e" + } + }, + { + "case": "map-string", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-string-64/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "9bdbabc68771d420c5ffbd87b9d7f6a4fc1bd0352c59fd722290d1774d97d594" + } + }, + { + "case": "map-string", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-string-256/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "5d224fc2a54613102d5768577335de253b9021d4793787de333d642ad62fd087" + } + }, + { + "case": "map-string", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-string-1024/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "a92765fbddd67254cb22cfe16ac1abc94bfce760c41cc8dbb847ead02640a201" + } + }, + { + "case": "map-string", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/map-string-4096/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "a396b7aa064f0e95ba9082988ad9aebd24b57066292aa589838c58d4a419b24b" + } + }, + { + "case": "long-key", + "size": 64, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/long-key-64/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "cd71e6fe88bb47a07d555b064cd33b74ed32c8cb861c5154ca00261ba802bd5c" + } + }, + { + "case": "long-key", + "size": 256, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/long-key-256/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "f2790edbe38b303723bf724d315c5432776b54cdf49ad12f4d311438f492d28f" + } + }, + { + "case": "long-key", + "size": 1024, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/long-key-1024/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "bdf54a3497bbf085e5bf441b40c58a320d1e8a9928462a4806dde68d046d87e4" + } + }, + { + "case": "long-key", + "size": 4096, + "operations": 32768, + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/scaling-string-hash-memo/workloads/long-key-4096/workload.mjs", + "expected": "32768\n", + "files": { + "workload.mjs": "94fa94d85481e7119a6a2fbfee0fd628248c31cf9d21fb1813b80e919ed5a983" + } + } + ] +} diff --git a/docs/reports/string-hash-memo.md b/docs/reports/string-hash-memo.md new file mode 100644 index 00000000..848791ee --- /dev/null +++ b/docs/reports/string-hash-memo.md @@ -0,0 +1,44 @@ +# Bounded, seed-local long-string hash memo + +Each collection index optionally remembers hashes for up to eight String identities +of at least 256 UTF-16 units. The FIFO cache owns Weak handles, so it does not keep +String payloads alive. It belongs to the index's randomized hasher seed; clone +preserves that seed and cache, clear releases the cache, and validation recomputes +hashes independently. Every bucket hit still checks actual key equality. + +Before `cf54916`; after `383a2e1`. Ordinary release builds on Ryzen 7 7840HS, +CPU 2, interleaved repetitions, no overlapping builds/tests, no locked frequency. +Whole-process times include setup and teardown. The long-key workload performs +32768 lookups with a separately constructed equal key. + +| Key units | Before ms | After ms | +| ---: | ---: | ---: | +| 64 | 43.99 | 42.37 | +| 256 | 58.32 | 37.39 | +| 1024 | 112.65 | 38.49 | +| 4096 | 329.48 | 39.39 | + +The main series contains 72 successful samples. Its size-4096 integer Map control +was noisy: after samples were 118.7, 105.9 and 75.9 ms versus before samples 88.1, +77.6 and 77.0 ms. This prompted a targeted confirmation with four times the work +and seven interleaved repetitions. Medians were 296.65 ms before and 291.19 ms +after; that series does not reproduce a systematic integer-key regression. +Both series are retained: [main samples](string-hash-memo.json), +[14 confirmation samples](string-hash-integer-confirmation.json). + +The cache adds an optional boxed-cache handle/borrow state per index and allocates +the cache only for long keys. Its maximum is eight weak/hash entries per collection, +independent of operation history. Weak control blocks can remain until eviction; +character payloads can be reclaimed immediately. No field was added to String +representations. Cache eviction affects performance only. Equality for distinct +but equal string identities may still traverse the key contents. + +1922 library tests and 943 CLI/oracle tests passed, 1 ignored. The memo test checks +one content-hash computation over repeated identity hits, independent seeds, +clone, bounded capacity and String payload reclamation. Fresh focused/full +Test262 is pending for this step. + +Reproduce with scaling.py, the above binaries, +`--case map-int --case map-string --case long-key --sizes 64 256 1024 4096`, +`--operations 32768 --repeat 3`, under `taskset -c 2`. The confirmation uses +`--case map-int --sizes 4096 --operations 131072 --repeat 7`. diff --git a/docs/reports/vm-stack-and-call.json b/docs/reports/vm-stack-and-call.json new file mode 100644 index 00000000..b6c6c4bb --- /dev/null +++ b/docs/reports/vm-stack-and-call.json @@ -0,0 +1,942 @@ +{ + "numeric-stack": { + "metadata": { + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "4dfaea424eb14bf350376cf41dd35a897cde6f6a", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "sha256": "7f154043bb26c9da7ebbbc670a59b2f38cb1019bdb368723a85f4e3897ffe2fd", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "sha256": "5693e374463c16fac22919f4778c44c5c745a46b962ff323b860f63604d3cbbf", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + } + }, + "workloads": { + "upstream": "QuickJS 2026-06-04/tests/microbench.js", + "upstream_sha256": "4abf0c34fd83cef925fd2f36009a1043f5009e98fdf6efe55e183a31dddd75f3", + "workloads": [ + { + "name": "empty_loop", + "count": 20000000, + "expected": "20000000\n", + "path": "target/vm-workloads/empty_loop.js", + "sha256": "78bc8a7d1ab468ada483bc9c3f0120413d022367affe37cb9dcd65907190956b" + }, + { + "name": "func_call", + "count": 300000, + "expected": "1200000\n", + "path": "target/vm-workloads/func_call.js", + "sha256": "9d92e906ebade7a0a5e272c3f17eed182b0de7e4c0766fde8962cf2f2206d378" + } + ] + }, + "repeat": 5, + "metric": "whole-process wall nanoseconds" + }, + "summary": [ + { + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 3029675148, + 3076621336, + 3110864042, + 3117964939, + 3019185877 + ], + "failures": [], + "median_wall_ns": 3076621336 + }, + { + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 2802744196, + 2777156493, + 2997264471, + 2793027854, + 2799685693 + ], + "failures": [], + "median_wall_ns": 2799685693 + }, + { + "case": "func_call", + "size": 300000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 612253371, + 616037517, + 628098741, + 613015155, + 605285479 + ], + "failures": [], + "median_wall_ns": 613015155 + }, + { + "case": "func_call", + "size": 300000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 570793425, + 568380041, + 574431981, + 565278006, + 568295617 + ], + "failures": [], + "median_wall_ns": 568380041 + } + ], + "samples": [ + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3029675148, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-0.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2802744196, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-0.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2777156493, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-1.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3076621336, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-1.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3110864042, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-2.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2997264471, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-2.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2793027854, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-3.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3117964939, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-3.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 3019185877, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-before-4.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 4, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2799685693, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/empty_loop-after-4.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 4, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 612253371, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-0.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 570793425, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-0.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 568380041, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-1.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 616037517, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-1.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 628098741, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-2.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 574431981, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-2.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 565278006, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-3.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 613015155, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-3.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/holey-dictionary/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 605285479, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-before-4.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 4, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 568295617, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-numeric-stack/raw/func_call-after-4.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 4, + "status": "ok" + } + ] + }, + "borrowed-call": { + "metadata": { + "machine": { + "platform": "Linux-6.18.44-1-lts-x86_64-with-glibc2.44", + "machine": "x86_64", + "cpu": "AMD Ryzen 7 7840HS with Radeon 780M Graphics", + "logical_cpus": 16, + "python": "3.14.7", + "runner_sha256": "5d4cb49562bd70b6e429c26f93c468239461cc4b17f1309c65b3dae249850ced", + "repository": { + "commit": { + "command": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "609e7f29148ee533bd29fcc0c89a3a4ef706253a", + "stderr": "" + }, + "status": { + "command": [ + "git", + "status", + "--porcelain" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "engines": { + "before": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "sha256": "5693e374463c16fac22919f4778c44c5c745a46b962ff323b860f63604d3cbbf", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + }, + "after": { + "path": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "sha256": "6600314d10bf46d7c6ef6e4a1c867dd26002028ccd09040e483a599c2c8dedfb", + "version": { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "--version" + ], + "exit_code": 0, + "stdout": "quickjs-oxide 0.0.1 (QuickJS 2026-06-04 compatibility target)", + "stderr": "" + }, + "build": null + } + }, + "workloads": { + "upstream": "QuickJS 2026-06-04/tests/microbench.js", + "upstream_sha256": "4abf0c34fd83cef925fd2f36009a1043f5009e98fdf6efe55e183a31dddd75f3", + "workloads": [ + { + "name": "empty_loop", + "count": 20000000, + "expected": "20000000\n", + "path": "target/vm-workloads/empty_loop.js", + "sha256": "78bc8a7d1ab468ada483bc9c3f0120413d022367affe37cb9dcd65907190956b" + }, + { + "name": "func_call", + "count": 300000, + "expected": "1200000\n", + "path": "target/vm-workloads/func_call.js", + "sha256": "9d92e906ebade7a0a5e272c3f17eed182b0de7e4c0766fde8962cf2f2206d378" + } + ] + }, + "repeat": 5, + "metric": "whole-process wall nanoseconds" + }, + "summary": [ + { + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 2783073720, + 2842598005, + 2796538532, + 2841832929, + 2783480231 + ], + "failures": [], + "median_wall_ns": 2796538532 + }, + { + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 2835127186, + 2833748536, + 2962924137, + 2811086216, + 2790865874 + ], + "failures": [], + "median_wall_ns": 2833748536 + }, + { + "case": "func_call", + "size": 300000, + "engine": "before", + "eligible": true, + "successful_wall_ns": [ + 575826725, + 571014304, + 569761472, + 574754316, + 574243477 + ], + "failures": [], + "median_wall_ns": 574243477 + }, + { + "case": "func_call", + "size": 300000, + "engine": "after", + "eligible": true, + "successful_wall_ns": [ + 573303678, + 574178916, + 565078650, + 567829540, + 572592011 + ], + "failures": [], + "median_wall_ns": 572592011 + } + ], + "samples": [ + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2783073720, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-0.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2835127186, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-0.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2833748536, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-1.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2842598005, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-1.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2796538532, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-2.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2962924137, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-2.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2811086216, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-3.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2841832929, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-3.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2783480231, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-before-4.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "before", + "repetition": 4, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/empty_loop.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 2790865874, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/empty_loop-after-4.stderr", + "case": "empty_loop", + "size": 20000000, + "engine": "after", + "repetition": 4, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 575826725, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-0.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 573303678, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-0.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-0.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 0, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 574178916, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-1.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 571014304, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-1.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-1.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 1, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 569761472, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-2.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 565078650, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-2.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-2.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 2, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 567829540, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-3.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 574754316, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-3.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-3.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 3, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/numeric-stack/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 574243477, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-before-4.stderr", + "case": "func_call", + "size": 300000, + "engine": "before", + "repetition": 4, + "status": "ok" + }, + { + "command": [ + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/borrowed-call/qjs", + "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/vm-workloads/func_call.js" + ], + "exit_code": 0, + "timed_out": false, + "process_wall_ns": 572592011, + "stdout": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-4.stdout", + "stderr": "/home/eric/.lody/repos/github---pocket-stack---quickjs-oxide/worktrees/3f2d5b2b-29f5-4704-9934-53dff8ae8163/target/timing-borrowed-call/raw/func_call-after-4.stderr", + "case": "func_call", + "size": 300000, + "engine": "after", + "repetition": 4, + "status": "ok" + } + ] + } +} diff --git a/docs/reports/vm-stack-and-call.md b/docs/reports/vm-stack-and-call.md new file mode 100644 index 00000000..465c1407 --- /dev/null +++ b/docs/reports/vm-stack-and-call.md @@ -0,0 +1,51 @@ +# Numeric stack updates and borrowed call arguments + +Fresh CPU sampling at `529b248` still identified numeric dispatch, frame binding +reads and numeric updates in `empty_loop`; `func_call` spread its cost across +callee creation, binding reads, reference management and dispatch. Three runs per +case used a separate release binary with frame pointers and debug information, +`perf record -e cycles:u -F 499 --call-graph fp`, pinned to CPU 2. These samples +guided scope; inclusive percentages are not estimates of possible speedup. + +S17 (`529b248` → `4dfaea4`) updates an already numeric stack value in place. +Integer overflow still promotes to Float, Float keeps its representation, and +postfix updates preserve the old value. Object conversion and BigInt retain their +existing paths. Local access, TDZ, bytecode verification and publication checks +were not removed: the profile did not establish that removing them was safe. + +S18 (`4dfaea4` → `609e7f2`) lends the caller's argument suffix to ordinary Call +and CallMethod. It removes the temporary caller-side Vec. The callee still owns +its frame arguments, including captured and suspended frames. Tail calls, eval, +construct and apply retain their existing paths. This is parameter storage reuse, +not frame pooling. The helper cleans up the suffix on Return, Throw and internal +error, and preserves lower stack operands. A default host implementation retains +the owned fallback; the runtime host directly accepts the slice. + +| Change | Fixed workload | Before ms | After ms | Change | +| --- | --- | ---: | ---: | ---: | +| Numeric update | empty_loop, 20,000,000 iterations | 3076.62 | 2799.69 | −9.0% | +| Numeric update | func_call, 300,000 iterations | 613.02 | 568.38 | −7.3% | +| Borrowed arguments | empty_loop, 20,000,000 iterations | 2796.54 | 2833.75 | +1.3% | +| Borrowed arguments | func_call, 300,000 iterations | 574.24 | 572.59 | −0.3% | + +Each row uses five interleaved repetitions per binary. Ordinary release builds, +CPU 2, unlocked frequency, no overlapping builds or tests, whole-process wall +time. All 40 samples passed exact-output admission. The borrowed-call result is +effectively flat: it demonstrates no material wall-time gain. Retaining this +small change is justified by eliminating a redundant allocation with one explicit +ownership boundary, not by a claimed benchmark speedup. No frame pool is added. + +The fixed functions come unchanged from pinned QuickJS 2026-06-04 +`tests/microbench.js`: extract the named function through the next top-level +function declaration, declare `var global_res` for func_call, call with the counts +above and print the result. func_call additionally checks global_res equals +1,200,000. Expected outputs are `20000000\n` and `1200000\n`. Source and generated +workload hashes, binary identities, individual samples and medians are retained +in [the raw report](vm-stack-and-call.json). Run samples with the benchmark +runner's `run_sample`, rotate binary order each repetition, and admit only exact +stdout, successful exit and empty stderr. + +At `609e7f2`, 1933 library tests and 943 CLI/oracle tests passed, with one existing +ignored test. The call-window regression test covers plain/method calls, +Return/Throw/internal error, exact receiver and arguments, and stack underflow. +Final integration validation is tracked in the data-structure plan. diff --git a/scripts/benchmark/README.md b/scripts/benchmark/README.md index 2cbb97de..83e8e9a1 100644 --- a/scripts/benchmark/README.md +++ b/scripts/benchmark/README.md @@ -1,5 +1,54 @@ # Performance tools +## Data structure scaling + +`scaling.py` generates project-authored diagnostic workloads and reuses the +process runner below. It records **whole-process wall time**, including startup, +compilation, setup, validation output and teardown. These are not upstream scores +or compile/link-only measurements. + +```sh +python3 scripts/benchmark/scaling.py \ + --engine before=/absolute/baseline/qjs --engine after=/absolute/changed/qjs \ + --sizes 32 128 512 2048 --operations 32768 --repeat 5 \ + --output target/scaling-comparison +``` + +Use `--case` repeatedly to select workloads. First pilot a workload, then freeze +its operations and sizes for both engines. Sizes must divide operations; the +runner never silently rounds the total work. Samples rotate engine order, retain +stdout/stderr and timeouts, and require an independently computed exact result. +Any failed repetition disqualifies its group. Metadata includes binary hashes, +available verified build receipts, workload files/hashes and generator identity. +Use ordinary builds and the build/provenance procedure below for formal timing. + +Only batched workloads require size to divide operations. History, width, key +length and generated-source sizes can vary independently of query counts. + +The scaling dimensions differ intentionally: + +| Cases | Size changes | Operations controls | +| --- | --- | --- | +| map-int, map-string, set | Entries per collection | Total inserts and membership checks | +| map-churn, set-churn | Prior delete/reinsert history, one live entry | Subsequent membership checks; setup grows with history | +| map-iterate-churn, set-iterate-churn | Prior delete/reinsert history with a paused iterator | New iterators over one live entry; also validate the paused cursor | +| set-intersection | Entries per pair | Total entries across pairs; includes construction | +| prop-write | Object width | Writes to the same existing property | +| prop-delete, array-truncate | Object/array width | Total constructed entries; includes construction and validation | +| scope, constants, module, module-imports | Declarations, names, exports or import/reexport bindings | Unused; each generated program executes once | +| long-key | String length | Repeated lookup of one separately constructed equal key | + +This initial runner measures time, not allocation counts or memory reclamation. +Churn timings include history creation and cannot alone prove a memory bound. +Use storage tests and a separate memory experiment for that acceptance criterion. +All generated programs live in the requested output directory. Results directories +must not already exist, protecting previous evidence from accidental overwrite. + +Run admission and workload smoke tests with +`python3 -m unittest discover -s scripts/benchmark -p 'test_*.py'`. +Node, when present, independently checks every generated workload at small sizes; +its absence skips only that check. Repeat a CLI smoke run against Oxide as well. + These tools orchestrate external workloads; they do not vendor benchmark code. Use Python 3.10+ on a Unix host. Run timing and heavier validation on PocketLab, serially, without competing builds or tests. `run.py` uses process-group timeout @@ -125,3 +174,5 @@ cargo test --locked -p quickjs-oxide --lib --features profiling profiling_ Run the broader Rust/QuickJS comparison tests and Test262 independently of benchmarking. Never revise conformance baselines to turn a performance change into an apparent pass. + +Scaling workloads also cover Array/TypedArray integer reads and writes, repeated interior Array deletion/reinsertion, strict and mapped Arguments construction, and RegExp named groups/indices. Use sizes below 255 for regexp-groups. Mapped arguments use a non-strict Function body explicitly because workload files are modules. diff --git a/scripts/benchmark/scaling.py b/scripts/benchmark/scaling.py new file mode 100644 index 00000000..62dc6354 --- /dev/null +++ b/scripts/benchmark/scaling.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +"""Fixed-work process timings for container, compiler and module scaling.""" +from pathlib import Path +import argparse +import json +import re +import statistics + +from scaling_workloads import BATCHED_CASES, CASES, prepare +from run import binary_metadata, digest, machine_metadata, run_sample + + +def admit(sample, expected): + """A successful process must also produce the independently known result.""" + if sample["timed_out"]: + return "timeout" + if sample["exit_code"]: + return "failed" + if Path(sample["stdout"]).read_bytes() != expected: + return "wrong-output" + return "ok" + + +def summarize(samples): + groups = {} + for sample in samples: + key = (sample["case"], sample["size"], sample["engine"]) + groups.setdefault(key, []).append(sample) + results = [] + for (case, size, engine), group in groups.items(): + values = [s["process_wall_ns"] for s in group if s["status"] == "ok"] + eligible = len(values) == len(group) + results.append({"case": case, "size": size, "engine": engine, + "eligible": eligible, "successful_wall_ns": values, + "failures": [s["status"] for s in group if s["status"] != "ok"], + "median_wall_ns": statistics.median(values) if eligible else None}) + return results + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--engine", action="append", required=True, help="unique name=/absolute/binary") + parser.add_argument("--case", choices=CASES, action="append") + parser.add_argument("--sizes", type=int, nargs="+", default=[32, 128, 512, 2048]) + parser.add_argument("--operations", type=int, default=32768) + parser.add_argument("--repeat", type=int, default=3) + parser.add_argument("--timeout", type=float, default=60) + parser.add_argument("--output", type=Path, required=True) + args = parser.parse_args() + if args.repeat < 1 or args.timeout <= 0 or args.operations < 1: + parser.error("repeat, timeout and operations must be positive") + if len(set(args.sizes)) != len(args.sizes) or any(s < 1 for s in args.sizes): + parser.error("sizes must be unique positive integers") + cases = args.case or list(CASES) + if any(case in BATCHED_CASES for case in cases) and any(args.operations % s for s in args.sizes): + parser.error("batched workload sizes must divide operations") + if len(set(cases)) != len(cases): + parser.error("cases must be unique") + engines = {} + for entry in args.engine: + name, separator, binary = entry.partition("=") + if not separator or not re.fullmatch(r"[a-zA-Z0-9_-]+", name) or name in engines: + parser.error("engines require unique safe names and name=path syntax") + engines[name] = Path(binary).resolve() + # Authenticate binaries before creating the output directory or starting samples. + metadata = {"schema": 1, "metric": "whole-process wall nanoseconds; lower is better", + "instrumentation": "no profiling flags; verify ordinary builds via receipts", + "runner_sha256": digest(__file__), + "generator_sha256": digest(Path(__file__).with_name("scaling_workloads.py")), + "machine": machine_metadata(), + "engines": {name: binary_metadata(path) for name, path in engines.items()}, + "repeat": args.repeat, "timeout_seconds": args.timeout} + output = args.output.resolve() + output.mkdir(parents=True, exist_ok=False) + (output / "raw").mkdir() + workloads = [prepare(output / "workloads" / f"{case}-{size}", case, size, args.operations) + for case in cases for size in args.sizes] + metadata["workloads"] = workloads + (output / "metadata.json").write_text(json.dumps(metadata, indent=2) + "\n") + samples = [] + with (output / "samples.jsonl").open("w") as journal: + for workload in workloads: + for repetition in range(args.repeat): + names = list(engines) + offset = repetition % len(names) + for name in names[offset:] + names[:offset]: + prefix = output / "raw" / f"{workload['case']}-{workload['size']}-{name}-{repetition}" + sample = run_sample([str(engines[name]), workload["path"]], output, prefix, args.timeout) + sample.update(case=workload["case"], size=workload["size"], engine=name, + repetition=repetition, status=admit(sample, workload["expected"].encode())) + samples.append(sample) + journal.write(json.dumps(sample) + "\n") + journal.flush() + print(f"{prefix.name}: {sample['status']}", flush=True) + summary = summarize(samples) + (output / "results.json").write_text(json.dumps({"metadata": metadata, "summary": summary}, indent=2) + "\n") + return 0 if all(row["eligible"] for row in summary) else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/benchmark/scaling_workloads.py b/scripts/benchmark/scaling_workloads.py new file mode 100644 index 00000000..95bfe0ff --- /dev/null +++ b/scripts/benchmark/scaling_workloads.py @@ -0,0 +1,161 @@ +"""Project-authored scaling workloads; counts are fixed before timing begins. + +Each generator returns JavaScript and an independently calculated stdout value. +These are diagnostic whole-process workloads, not upstream benchmark scores. +""" +from pathlib import Path + +from run import digest + +CASES = ("map-int", "map-string", "set", "map-churn", "set-churn", + "set-intersection", "prop-write", "prop-delete", "array-truncate", + "scope", "constants", "module", "module-imports", "long-key", + "map-iterate-churn", "set-iterate-churn", "array-index", "array-holey", + "typed-index", "arguments", "mapped-arguments", "regexp-groups") + + +BATCHED_CASES = ("map-int", "map-string", "set", "set-intersection", "prop-delete", "array-truncate", + "array-index", "typed-index", "arguments", "mapped-arguments", "regexp-groups") + +def prepare(directory, case, size, operations): + if case not in CASES or size < 1 or operations < 1: + raise ValueError("known case and positive size/operations required") + if case in BATCHED_CASES and operations % size: + raise ValueError("size must divide operations to preserve fixed work") + directory = Path(directory) + directory.mkdir(parents=True, exist_ok=True) + path = directory / "workload.mjs" + files = [] + prefix = f"const size = {size}, operations = {operations};\nlet sum = 0;\n" + if case in ("map-int", "map-string", "set"): + key = '"key" + i' if case == "map-string" else "i" + constructor = "Set" if case == "set" else "Map" + insert = f"c.add({key})" if case == "set" else f"c.set({key}, i)" + body = f"""for (let batch = 0; batch < operations / size; batch++) {{ + const c = new {constructor}(); + for (let i = 0; i < size; i++) {insert}; + for (let i = 0; i < size; i++) sum += c.has({key}) ? 1 : 0; +}}""" + expected = operations + elif case in ("map-churn", "set-churn"): + # size controls history; live size stays one. Query work stays fixed. + constructor = "Set" if case == "set-churn" else "Map" + insert = "c.add(0)" if case == "set-churn" else "c.set(0, 0)" + body = f"""const c = new {constructor}(); +for (let i = 0; i < size; i++) {{ {insert}; c.delete(0); }} +{insert}; +for (let i = 0; i < operations; i++) sum += c.has(0) ? 1 : 0; +sum += c.size;""" + expected = operations + 1 + elif case in ("map-iterate-churn", "set-iterate-churn"): + constructor = "Set" if case.startswith("set") else "Map" + insert = "c.add(i)" if constructor == "Set" else "c.set(i, i)" + first = "c.add(-1)" if constructor == "Set" else "c.set(-1, -1)" + last = "c.add(1)" if constructor == "Set" else "c.set(1, 1)" + body = f"""const c = new {constructor}(); +{first}; +const paused = c.keys(); +paused.next(); +c.delete(-1); +for (let i = 0; i < size; i++) {{ {insert}; c.delete(i); }} +{last}; +sum = paused.next().value; +for (let i = 0; i < operations; i++) sum += c.keys().next().value; +if (!paused.next().done) throw Error('paused cursor did not finish');""" + expected = operations + 1 + elif case == "set-intersection": + body = """for (let batch = 0; batch < operations / size; batch++) { + const a = new Set(), b = new Set(); + for (let i = 0; i < size; i++) { a.add(i); b.add(i); } + sum += a.intersection(b).size; +}""" + expected = operations + elif case == "prop-write": + body = """const o = {}; +for (let i = 0; i < size; i++) o['p' + i] = i; +for (let i = 0; i < operations; i++) o.p0 = i; +sum = o.p0 + Object.keys(o).length;""" + expected = operations - 1 + size + elif case == "prop-delete": + body = """for (let batch = 0; batch < operations / size; batch++) { + const o = {}; + for (let i = 0; i < size; i++) o['p' + i] = i; + for (let i = 0; i < size; i++) sum += delete o['p' + i] ? 1 : 0; + if (Object.keys(o).length !== 0) throw Error('delete failed'); +}""" + expected = operations + elif case == "array-truncate": + body = """for (let batch = 0; batch < operations / size; batch++) { + const a = []; + for (let i = 0; i < size; i++) a.push(i); + delete a[0]; + a.length = 0; + if (Object.keys(a).length !== 0) throw Error('truncate failed'); + sum += size; +}""" + expected = operations + elif case in ("array-index", "typed-index"): + constructor = "new Array(size).fill(0)" if case == "array-index" else "new Uint32Array(size)" + body = f"""const a = {constructor}; +for (let i = 0; i < operations; i++) {{ const index = i % size; a[index] = index; sum += a[index]; }}""" + expected = operations * (size - 1) // 2 + elif case == "array-holey": + body = """const a = []; +for (let i = 0; i < size; i++) a.push(i); +const index = Math.floor(size / 2); +for (let i = 0; i < operations; i++) { delete a[index]; a[index] = i; sum += a[index]; } +if (a.length !== size) throw Error('length changed');""" + expected = operations * (operations - 1) // 2 + elif case in ("arguments", "mapped-arguments"): + function = ('function f() { "use strict"; return arguments.length; }' if case == "arguments" + else 'const f = Function("first", "first = 1; if (arguments[0] !== 1) throw Error(\'alias lost\'); return arguments.length;");') + body = f"""{function} +const args = new Array(size).fill(0); +for (let i = 0; i < operations / size; i++) sum += f.apply(null, args);""" + expected = operations + elif case == "regexp-groups": + if size >= 255: + raise ValueError("regexp-groups size must fit the pinned capture limit (<255)") + body = """let pattern = ''; +for (let i = 0; i < size; i++) pattern += '(?a)'; +const re = new RegExp(pattern, 'd'), input = 'a'.repeat(size); +for (let i = 0; i < operations / size; i++) { + const result = re.exec(input); + if (result.groups.g0 !== 'a' || result.indices.groups.g0 !== result.indices[1]) throw Error('capture mismatch'); + sum += Object.keys(result.groups).length; +}""" + expected = operations + elif case == "scope": + declarations = "".join(f"let v{i} = {i};\n" for i in range(size)) + references = "+".join(f"v{i}" for i in range(size)) + body = f"function f() {{\n{declarations}\nreturn {references};\n}}\nsum = f();" + expected = size * (size - 1) // 2 + elif case == "constants": + # typeof unresolved globals exercises compiler name constants without throwing. + terms = "\n".join(f"sum += typeof global_{i} === 'undefined' ? 1 : 0;" for i in range(size)) + body = f"function f() {{\n{terms}\n}}\nf();" + expected = size + elif case in ("module", "module-imports"): + dependency = directory / "exports.mjs" + dependency.write_text("".join(f"export const v{i} = {i};\n" for i in range(size))) + files.append(dependency) + entry = "exports.mjs" + if case == "module-imports": + entry = "imports.mjs" + names = ", ".join(f"v{i}" for i in range(size)) + reexport = directory / entry + reexport.write_text(f"import {{ {names} }} from './exports.mjs';\nexport {{ {names} }};\n") + files.append(reexport) + body = f"import * as ns from './{entry}';\nfor (const key of Object.keys(ns)) sum += ns[key];" + expected = size * (size - 1) // 2 + else: # long-key: repeated content lookup; the two strings are built separately. + body = """const a = 'x'.repeat(size) + '!', b = 'x'.repeat(size) + '!'; +const c = new Map([[a, 1]]); +for (let i = 0; i < operations; i++) sum += c.get(b); +""" + expected = operations + path.write_text(prefix + body + "\nconsole.log(String(sum));\n") + files.append(path) + return {"case": case, "size": size, "operations": operations, + "path": str(path.resolve()), "expected": f"{expected}\n", + "files": {f.name: digest(f) for f in files}} diff --git a/scripts/benchmark/test_scaling.py b/scripts/benchmark/test_scaling.py new file mode 100644 index 00000000..f003a5af --- /dev/null +++ b/scripts/benchmark/test_scaling.py @@ -0,0 +1,60 @@ +"""Admission checks for the fixed-work data structure runner.""" +import tempfile +import unittest +import shutil +import subprocess +from pathlib import Path + +import scaling + + +class Admission(unittest.TestCase): + def test_successful_exit_with_wrong_output_is_not_a_measurement(self): + with tempfile.TemporaryDirectory() as directory: + stdout = Path(directory) / "sample.stdout" + stdout.write_text("wrong\n") + sample = {"exit_code": 0, "timed_out": False, "stdout": str(stdout)} + self.assertEqual(scaling.admit(sample, b"42\n"), "wrong-output") + stdout.write_bytes(b"42\n") + self.assertEqual(scaling.admit(sample, b"42\n"), "ok") + + def test_one_failure_disqualifies_the_entire_group(self): + samples = [ + {"case": "map-int", "size": 32, "engine": "before", "status": "ok", "process_wall_ns": 100}, + {"case": "map-int", "size": 32, "engine": "before", "status": "timeout", "process_wall_ns": 900}, + ] + result = scaling.summarize(samples)[0] + self.assertFalse(result["eligible"]) + self.assertEqual(result["successful_wall_ns"], [100]) + self.assertIsNone(result["median_wall_ns"]) + + +class Workloads(unittest.TestCase): + def test_import_reexport_workload_checks_the_exported_values(self): + with tempfile.TemporaryDirectory() as directory: + workload = scaling.prepare(Path(directory), "module-imports", 4, 16) + self.assertEqual(workload["expected"], "6\n") + + @unittest.skipUnless(shutil.which("node"), "Node is required for independent workload smoke checks") + def test_every_workload_has_the_expected_observable_result(self): + for case in scaling.CASES: + for size in [4, 8]: + with self.subTest(case=case, size=size), tempfile.TemporaryDirectory() as directory: + workload = scaling.prepare(Path(directory), case, size, 16) + result = subprocess.run(["node", workload["path"]], capture_output=True, timeout=10) + self.assertEqual(result.returncode, 0, result.stderr) + self.assertEqual(result.stdout.decode(), workload["expected"]) + + def test_history_size_is_independent_of_iteration_work(self): + with tempfile.TemporaryDirectory() as directory: + workload = scaling.prepare(Path(directory), "map-iterate-churn", 256, 8) + self.assertEqual(workload["expected"], "9\n") + + def test_capacity_cannot_silently_change_total_operations(self): + with tempfile.TemporaryDirectory() as directory: + with self.assertRaises(ValueError): + scaling.prepare(Path(directory), "map-int", 7, 16) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/checks/binary_object/canaries/stage3c_canaries.txt b/scripts/checks/binary_object/canaries/stage3c_canaries.txt index 1d0a2b08..26c72eed 100644 --- a/scripts/checks/binary_object/canaries/stage3c_canaries.txt +++ b/scripts/checks/binary_object/canaries/stage3c_canaries.txt @@ -9,3 +9,6 @@ stage3c-tail-throw-skips-backtrace|stage3c-tail-completion|src/engine/vm/mod.rs| stage3c-runtime-evidence-not-ignored|stage3c-runtime-evidence|src/engine/heap/runtime/tests.rs|#[test]\nfn trusted_quickjs_ordinary_tail_invocations_use_exact_bc5_wires_and_semantics() {|#[test]\n#[ignore = "gate mutation"]\nfn trusted_quickjs_ordinary_tail_invocations_use_exact_bc5_wires_and_semantics() { stage3c-vm-evidence-not-cfg-excluded|stage3c-runtime-evidence|src/engine/vm/mod.rs| #[test]\n fn tail_invocation_throws_use_the_activation_backtrace_and_catch_path() {| #[cfg(any())]\n #[test]\n fn tail_invocation_throws_use_the_activation_backtrace_and_catch_path() { stage3c-translate-evidence-not-cfg-ignored|stage3c-runtime-evidence|src/engine/code/binary_object/function_translate/mod.rs| #[test]\n fn tail_invocation_lowering_preserves_the_npop_operand_and_kind() {| #[cfg_attr(test, ignore)]\n #[test]\n fn tail_invocation_lowering_preserves_the_npop_operand_and_kind() { +borrowed-call-keeps-lower-stack|stage3c-tail-vm|src/engine/vm/mod.rs| self.stack.truncate(base);| self.stack.clear(); +borrowed-call-cleans-errors|stage3c-tail-vm|src/engine/vm/mod.rs| self.stack.truncate(base);| if result.is_ok() { self.stack.truncate(base); } +borrowed-call-exact-arguments|stage3c-tail-vm|src/engine/vm/mod.rs|&self.stack[arguments_start..]);|&self.stack[arguments_start + 1..]); diff --git a/scripts/checks/binary_object/canaries/stage3d_canaries.txt b/scripts/checks/binary_object/canaries/stage3d_canaries.txt index 880d301f..a98f8793 100644 --- a/scripts/checks/binary_object/canaries/stage3d_canaries.txt +++ b/scripts/checks/binary_object/canaries/stage3d_canaries.txt @@ -7,3 +7,4 @@ stage3d-runtime-evidence-ignored|stage3d-runtime-evidence|src/engine/heap/runtim stage3d-runtime-evidence-cfg-excluded|stage3d-runtime-evidence|src/engine/heap/runtime/tests.rs|#[test]\nfn trusted_quickjs_ordinary_throw_reenters_caller_catch_backtrace_and_iterator_close() {|#[cfg(any())]\n#[test]\nfn trusted_quickjs_ordinary_throw_reenters_caller_catch_backtrace_and_iterator_close() { stage3d-runtime-evidence-early-return|stage3d-runtime-evidence|src/engine/heap/runtime/tests.rs|fn trusted_quickjs_ordinary_throw_is_terminal_and_branch_targetable() {\n let runtime = Runtime::new();|fn trusted_quickjs_ordinary_throw_is_terminal_and_branch_targetable() {\n return;\n let runtime = Runtime::new(); stage3d-c-oracle-disabled|stage3d-c-oracle|apps/cli/tests/fixtures/inputs/function_bytecode_wire.c| if (expect_ordinary_throw_completion(compile_context))| if (0 && expect_ordinary_throw_completion(compile_context)) +borrowed-call-preserves-completion|stage3d-throw-critical-route|src/engine/vm/host_bridge.rs| .call_value_internal(self.current_realm, function, this_value, arguments)| .call_value_internal(self.current_realm, function, this_value, arguments).map(|_| Completion::Return(Value::Undefined)) diff --git a/scripts/checks/binary_object/canaries/stage3i.sh b/scripts/checks/binary_object/canaries/stage3i.sh index d55ee096..c4b20dab 100644 --- a/scripts/checks/binary_object/canaries/stage3i.sh +++ b/scripts/checks/binary_object/canaries/stage3i.sh @@ -322,8 +322,8 @@ expect_full_rewrite_rejected stage3d-call-internal-cleanup-throw-return \ $' frame_error.map_or(result, Err).map(|completion| match completion {\n Completion::Throw(value) => Completion::Return(value),\n completion => completion,\n })' expect_full_rewrite_rejected stage3d-vm-host-call-throw-return \ stage3d-throw-critical-route src/engine/vm/host_bridge.rs \ - $' self.runtime\n .call_value_internal(self.current_realm, function, this_value, &arguments)\n .map_err(runtime_error_to_vm_error)' \ - $' self.runtime\n .call_value_internal(self.current_realm, function, this_value, &arguments)\n .map(|completion| match completion {\n Completion::Throw(value) => Completion::Return(value),\n completion => completion,\n })\n .map_err(runtime_error_to_vm_error)' + $' self.runtime\n .call_value_internal(self.current_realm, function, this_value, arguments)\n .map_err(runtime_error_to_vm_error)' \ + $' self.runtime\n .call_value_internal(self.current_realm, function, this_value, arguments)\n .map(|completion| match completion {\n Completion::Throw(value) => Completion::Return(value),\n completion => completion,\n })\n .map_err(runtime_error_to_vm_error)' expect_full_rewrite_rejected stage3d-call-value-throw-return \ stage3d-throw-critical-route src/engine/object/internal_methods.rs \ $' DirectCallTarget::Callable(callable) => {\n self.call_internal(caller_realm, &callable, this_value, arguments)\n }' \ diff --git a/scripts/checks/binary_object/rules/runtime_protocols.py b/scripts/checks/binary_object/rules/runtime_protocols.py index c5fb4cf4..fbf4afaa 100644 --- a/scripts/checks/binary_object/rules/runtime_protocols.py +++ b/scripts/checks/binary_object/rules/runtime_protocols.py @@ -204,7 +204,17 @@ def stage3j_source_function(relative: str, name: str, diagnostic: str) -> str: "stage3c-tail-vm", "execute_call_instruction must retain its alias-free exhaustive call-family dispatch", call_dispatch_item, - "f6b13bdb02ab06e2177beba9cd3bda2f626c6baa97fa09420cbfa2459ef5a97d", + "a3bd9bbdd07df461a0f2fcbf0b5129bf3b5432eb668629384ccedb9a4a73d978", + ) + + # Ordinary calls now borrow the activation suffix. Tail/eval/construct + # retain their owned-vector path. Authenticate cleanup on every host exit, + # checked operand counts, and exact callee/receiver positions separately. + ctx.require_normalized_code_sha256( + "stage3c-tail-vm", + "call_from_stack must keep its checked, nonescaping suffix and unconditional operand cleanup", + ctx.stage3b_function("src/engine/vm/mod.rs", "call_from_stack", "stage3c-tail-vm"), + "f53a3bca472b7aed011405d2e7e3da46e53b34e5a2163d260b688edf600f89f9", ) tail_call_arm = ctx.unique_braced_item( @@ -820,7 +830,13 @@ def stage3j_source_function(relative: str, name: str, diagnostic: str) -> str: runtime_vm_host_relative, "call", "RuntimeVmHost::call must forward nested callable completions without remapping Throw before caller catch", - "c1970423cb9f5a75f26e5c309dcc724ee92f74bd48a6e8d24311a3fc94bb6a14", + "ecdfa0d7291697c269e3bdfaefedd491bec7415540122677e3bae5bfe3235f49", + ), + ( + runtime_vm_host_relative, + "call_with_borrowed_arguments", + "borrowed call entry must forward the unchanged completion and argument slice into the runtime", + "ed0307d5eb9f2f7dcc84c5bfe650bbcb3aa673840f57517a329597c6830b935d", ), ( "src/engine/object/internal_methods.rs", diff --git a/scripts/checks/test262-host-metadata.py b/scripts/checks/test262-host-metadata.py index 1d6945ef..618ab13f 100644 --- a/scripts/checks/test262-host-metadata.py +++ b/scripts/checks/test262-host-metadata.py @@ -54,7 +54,7 @@ def fail(message: str) -> None: fail("unreviewed path dependency is outside engine fingerprint coverage") for name, expected in { "quickjs-oxide": {"checked_string_construction", "rust_only", "unsupported_diagnostics"}, - "quickjs-oxide-cli": {"cli", "oracle"}, + "quickjs-oxide-cli": {"cli", "oracle", "profiling"}, }.items(): targets = [t for t in packages[name]["targets"] if t.get("kind") == ["test"]] if {t["name"] for t in targets} != expected or any(t.get("required-features") for t in targets): diff --git a/src/engine/atom/runtime.rs b/src/engine/atom/runtime.rs index 1396c0c4..de7b6064 100644 --- a/src/engine/atom/runtime.rs +++ b/src/engine/atom/runtime.rs @@ -2,9 +2,9 @@ use crate::engine::api::error::{Error, ErrorKind, NativeErrorMessage}; use crate::engine::api::runtime::Runtime; use crate::engine::api::runtime_error::RuntimeError; -use crate::engine::atom::{AtomError, AtomKind, AtomSpelling}; +use crate::engine::atom::{Atom, AtomError, AtomKind, AtomSpelling}; use crate::engine::object::{PropertyKey, SymbolRef, WellKnownSymbol}; -use crate::engine::value::JsString; +use crate::engine::value::{JsString, Value}; impl Runtime { /// Intern an exact ECMAScript string as a runtime-owned property key. @@ -25,6 +25,34 @@ impl Runtime { self.intern_property_key_js_string(&JsString::try_from_utf8(text)?) } + /// Construct an already-normalized nonnegative integer index. This is not + /// general Number-to-key conversion: large JS numbers use scientific spelling. + pub(crate) fn property_key_for_index(&self, index: u64) -> Result { + if let Some(atom) = u32::try_from(index) + .ok() + .and_then(Atom::from_immediate_integer) + { + return Ok(PropertyKey::from_owned_atom(self.clone(), atom)); + } + self.intern_property_key(&index.to_string()) + } + + /// Allocation-free numeric subset of ToPropertyKey, including numeric -0. + /// Larger, negative and fractional numbers retain the full conversion path. + pub(crate) fn immediate_numeric_property_key(&self, value: &Value) -> Option { + let index = match value { + Value::Int(value) => u32::try_from(*value).ok()?, + Value::Float(value) + if *value >= 0.0 && *value <= u32::MAX as f64 && value.fract() == 0.0 => + { + *value as u32 + } + _ => return None, + }; + Atom::from_immediate_integer(index) + .map(|atom| PropertyKey::from_owned_atom(self.clone(), atom)) + } + /// Create a unique ECMAScript Symbol primitive. pub fn new_symbol(&self, description: Option) -> Result { let _operation = self.operation(); @@ -128,3 +156,41 @@ impl Runtime { Ok(Error::from_native_message(kind, message)) } } + +#[cfg(test)] +mod integer_key_tests { + use super::*; + + #[test] + fn integer_keys_preserve_immediate_boundary_and_exact_large_spelling() { + let runtime = Runtime::new(); + for index in [ + 0, + 1, + 2_147_483_647, + 2_147_483_648, + u32::MAX as u64, + 9_007_199_254_740_991, + u64::MAX, + ] { + let key = runtime.property_key_for_index(index).unwrap(); + assert_eq!(key.atom().is_immediate_integer(), index <= 2_147_483_647); + assert_eq!( + runtime.property_key_to_js_string(&key).unwrap(), + JsString::try_from_utf8(&index.to_string()).unwrap() + ); + } + let zero = runtime + .immediate_numeric_property_key(&Value::Float(-0.0)) + .unwrap(); + assert_eq!(zero, runtime.intern_property_key("0").unwrap()); + assert_ne!(zero, runtime.intern_property_key("-0").unwrap()); + for number in [f64::NAN, f64::INFINITY, -1.0, 0.5, 2_147_483_648.0, 1e21] { + assert!( + runtime + .immediate_numeric_property_key(&Value::Float(number)) + .is_none() + ); + } + } +} diff --git a/src/engine/builtins/array.rs b/src/engine/builtins/array.rs index 7b379d2b..452f7706 100644 --- a/src/engine/builtins/array.rs +++ b/src/engine/builtins/array.rs @@ -854,7 +854,7 @@ impl Runtime { index: u32, value: Value, ) -> Result, RuntimeError> { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; self.set_property_or_throw(realm, object, &key, value) } @@ -876,7 +876,7 @@ impl Runtime { )?)) } NativeConversion::Value(InternalDefineResult::RejectedOrdinary(target)) => { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; let array_length_read_only = if let ArrayOwnKey::Index(index) = self.array_own_key(&target, &key)? { let (length, writable) = self.array_length_state(&target)?; @@ -909,7 +909,7 @@ impl Runtime { index: u64, value: Value, ) -> Result, RuntimeError> { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; let descriptor = OrdinaryPropertyDescriptor { value: DescriptorField::Present(value), writable: DescriptorField::Present(true), @@ -1152,7 +1152,7 @@ impl Runtime { Completion::Throw(value) => return Ok(Completion::Throw(value)), }; for index in 0..length { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; let mut value = match self.get_property_in_realm(realm, &source, &key)? { Completion::Return(value) => value, Completion::Throw(value) => return Ok(Completion::Throw(value)), @@ -1365,7 +1365,7 @@ impl Runtime { if index < 0 || index >= length { return Ok(Completion::Return(Value::Undefined)); } - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; let present = match self.has_property_in_realm(realm, &object, &key)? { Completion::Return(Value::Bool(value)) => value, Completion::Return(_) => { @@ -1457,7 +1457,7 @@ impl Runtime { *slot = replacement.clone(); continue; } - let key = self.intern_property_key(&position.to_string())?; + let key = self.property_key_for_index(position as u64)?; let present = match self.has_property_in_realm(realm, &object, &key)? { Completion::Return(Value::Bool(value)) => value, Completion::Return(_) => { @@ -1555,7 +1555,7 @@ impl Runtime { )?)); } for source_index in 0..length { - let key = self.intern_property_key(&source_index.to_string())?; + let key = self.property_key_for_index(source_index)?; let present = match self.has_property_in_realm(realm, &element, &key)? { Completion::Return(Value::Bool(value)) => value, Completion::Return(_) => { @@ -1663,7 +1663,7 @@ impl Runtime { ))?; while start < end { - let key = self.intern_property_key(&start.to_string())?; + let key = self.property_key_for_index(start as u64)?; if let Some(value) = self.set_property_or_throw(realm, &object, &key, fill_value.clone())? { @@ -1737,7 +1737,7 @@ impl Runtime { let mut selected_count = 0_u64; for index in 0..length { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; let present = match self.has_property_in_realm(realm, &object, &key)? { Completion::Return(Value::Bool(value)) => value, Completion::Return(_) => { @@ -1944,7 +1944,7 @@ impl Runtime { ArrayReduceKind::ReduceRight => length - step - 1, }; step += 1; - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; let present = match self.has_property_in_realm(realm, &object, &key)? { Completion::Return(Value::Bool(value)) => value, Completion::Return(_) => { @@ -1978,7 +1978,7 @@ impl Runtime { ArrayReduceKind::ReduceRight => length - step - 1, }; step += 1; - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; let present = match self.has_property_in_realm(realm, &object, &key)? { Completion::Return(Value::Bool(value)) => value, Completion::Return(_) => { @@ -2058,7 +2058,7 @@ impl Runtime { }; while index != end { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; let value = match self.get_property_in_realm(realm, &object, &key)? { Completion::Return(value) => value, Completion::Throw(value) => return Ok(Completion::Throw(value)), @@ -2454,7 +2454,7 @@ impl Runtime { }; while index != end { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; let value = match kind { ArraySearchKind::Includes => { match self.get_property_in_realm(realm, &object, &key)? { @@ -2593,7 +2593,7 @@ impl Runtime { } // Pinned QuickJS passes its Int64 loop index through // JS_GetPropertyUint32, including Uint32 wraparound above 2^32. - let key = self.intern_property_key(&(index as u32).to_string())?; + let key = self.property_key_for_index(u64::from(index as u32))?; let element = match self.get_property_in_realm(realm, &object, &key)? { Completion::Return(value) => value, Completion::Throw(value) => return Ok(Completion::Throw(value)), @@ -2680,7 +2680,7 @@ impl Runtime { object: &ObjectRef, index: u64, ) -> Result>, RuntimeError> { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; let present = match self.has_property_in_realm(realm, object, &key)? { Completion::Return(Value::Bool(value)) => value, Completion::Return(_) => { @@ -2728,7 +2728,7 @@ impl Runtime { NativeConversion::Value(value) => value, NativeConversion::Throw(value) => return Ok(Some(value)), }; - let to_key = self.intern_property_key(&to.to_string())?; + let to_key = self.property_key_for_index(to)?; if let Some(value) = value { if let Some(value) = self.set_property_or_throw(realm, object, &to_key, value)? { return Ok(Some(value)); @@ -2756,7 +2756,7 @@ impl Runtime { object: &ObjectRef, index: u64, ) -> Result, RuntimeError> { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; match self.internal_delete_property(realm, object, &key)? { NativeConversion::Value(true) => Ok(None), NativeConversion::Value(false) => Ok(Some(self.new_native_error( @@ -2871,7 +2871,7 @@ impl Runtime { let index = from .checked_add(offset) .ok_or(RuntimeError::Invariant("Array push index overflowed"))?; - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; if let Some(value) = self.set_property_or_throw(realm, &object, &key, value)? { return Ok(Completion::Throw(value)); } @@ -2924,14 +2924,14 @@ impl Runtime { match (lower_value, upper_value) { (lower_value, Some(upper_value)) => { - let lower_key = self.intern_property_key(&lower.to_string())?; + let lower_key = self.property_key_for_index(lower)?; if let Some(value) = self.set_property_or_throw(realm, &object, &lower_key, upper_value)? { return Ok(Completion::Throw(value)); } if let Some(lower_value) = lower_value { - let upper_key = self.intern_property_key(&upper.to_string())?; + let upper_key = self.property_key_for_index(upper)?; if let Some(value) = self.set_property_or_throw(realm, &object, &upper_key, lower_value)? { @@ -2949,7 +2949,7 @@ impl Runtime { { return Ok(Completion::Throw(value)); } - let upper_key = self.intern_property_key(&upper.to_string())?; + let upper_key = self.property_key_for_index(upper)?; if let Some(value) = self.set_property_or_throw(realm, &object, &upper_key, lower_value)? { @@ -3237,7 +3237,7 @@ impl Runtime { slot.value = Value::Undefined; continue; } - let key = self.intern_property_key(&position.to_string())?; + let key = self.property_key_for_index(position)?; let value = std::mem::replace(&mut slot.value, Value::Undefined); if let Some(value) = self.set_property_or_throw(realm, object, &key, value)? { return Ok(Some(value)); @@ -3247,7 +3247,7 @@ impl Runtime { let mut index = defined_count; for _ in 0..undefined_count { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; if let Some(value) = self.set_property_or_throw(realm, object, &key, Value::Undefined)? { @@ -3543,7 +3543,7 @@ impl Runtime { let index = start.checked_add(offset).ok_or(RuntimeError::Invariant( "Array.splice item index overflowed", ))?; - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; if let Some(value) = self.set_property_or_throw(realm, &object, &key, value)? { return Ok(Completion::Throw(value)); } @@ -3797,7 +3797,7 @@ impl Runtime { let value = match kind { ArrayIteratorKind::Key => key_value, ArrayIteratorKind::Value | ArrayIteratorKind::KeyAndValue => { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; let value = match self.get_property_in_realm(realm, &source, &key)? { Completion::Return(value) => value, Completion::Throw(value) => { diff --git a/src/engine/builtins/array_buffer/typed_array.rs b/src/engine/builtins/array_buffer/typed_array.rs index 97c59fb0..42482460 100644 --- a/src/engine/builtins/array_buffer/typed_array.rs +++ b/src/engine/builtins/array_buffer/typed_array.rs @@ -853,7 +853,7 @@ impl Runtime { NativeConversion::Throw(value) => return Ok(Completion::Throw(value)), }; for index in 0..length { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; let value = match self.get_property_in_realm(realm, source, &key)? { Completion::Return(value) => value, Completion::Throw(value) => return Ok(Completion::Throw(value)), @@ -1076,7 +1076,7 @@ impl Runtime { NativeConversion::Throw(value) => return Ok(Completion::Throw(value)), }; for index in 0..length { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; let mut value = match self.get_property_in_realm(realm, &source, &key)? { Completion::Return(value) => value, Completion::Throw(value) => return Ok(Completion::Throw(value)), @@ -1290,7 +1290,7 @@ impl Runtime { )?)); } for index in 0..length { - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index)?; let value = match self.get_property_in_realm(realm, &source, &key)? { Completion::Return(value) => value, Completion::Throw(value) => return Ok(Completion::Throw(value)), @@ -1753,6 +1753,14 @@ impl Runtime { &self, key: &PropertyKey, ) -> Result, RuntimeError> { + if !key.belongs_to(self) { + return Err(RuntimeError::WrongRuntime("property key")); + } + // Immediate atoms are canonical nonnegative integer strings. Numeric + // -0 has already become the zero atom; the string "-0" falls through. + if let Some(index) = key.atom().immediate_integer() { + return Ok(Some(CanonicalNumericIndex::Valid(u64::from(index)))); + } if self.0.state.borrow().atoms.property_key_kind(key.atom())? != PropertyKeyKind::String { return Ok(None); } diff --git a/src/engine/builtins/array_buffer/typed_array/iteration.rs b/src/engine/builtins/array_buffer/typed_array/iteration.rs index 9fb42b1b..c43f2336 100644 --- a/src/engine/builtins/array_buffer/typed_array/iteration.rs +++ b/src/engine/builtins/array_buffer/typed_array/iteration.rs @@ -124,7 +124,7 @@ impl Runtime { let selected = selected.as_ref().ok_or(RuntimeError::Invariant( "TypedArray filter temporary Array was not allocated", ))?; - let key = self.intern_property_key(&selected_length.to_string())?; + let key = self.property_key_for_index(selected_length)?; if !self.define_own_property( selected, &key, diff --git a/src/engine/builtins/array_buffer/typed_array/tests.rs b/src/engine/builtins/array_buffer/typed_array/tests.rs index ba4dc708..7e3627c3 100644 --- a/src/engine/builtins/array_buffer/typed_array/tests.rs +++ b/src/engine/builtins/array_buffer/typed_array/tests.rs @@ -1433,3 +1433,36 @@ fn context_free_host_definition_converts_primitive_typed_array_values() { ))) ); } + +#[test] +fn typed_array_integer_key_fast_path_keeps_domains_and_noncanonical_strings() { + use crate::engine::builtins::CanonicalNumericIndex; + let runtime = Runtime::new(); + for index in [0, 1, 2_147_483_647] { + let key = runtime.property_key_for_index(index).unwrap(); + assert!( + matches!(runtime.typed_array_canonical_numeric_index(&key).unwrap(), Some(CanonicalNumericIndex::Valid(value)) if value == index) + ); + } + for text in ["-0", "NaN", "Infinity", "-1", "0.5"] { + let key = runtime.intern_property_key(text).unwrap(); + assert!(matches!( + runtime.typed_array_canonical_numeric_index(&key).unwrap(), + Some(CanonicalNumericIndex::Invalid) + )); + } + for text in ["01", "1.0", "+0", " 0", "1e0"] { + let key = runtime.intern_property_key(text).unwrap(); + assert!( + runtime + .typed_array_canonical_numeric_index(&key) + .unwrap() + .is_none() + ); + } + let foreign = Runtime::new().property_key_for_index(0).unwrap(); + assert!(matches!( + runtime.typed_array_canonical_numeric_index(&foreign), + Err(RuntimeError::WrongRuntime(_)) + )); +} diff --git a/src/engine/builtins/map.rs b/src/engine/builtins/map.rs index 60b2bf9e..af40934c 100644 --- a/src/engine/builtins/map.rs +++ b/src/engine/builtins/map.rs @@ -496,28 +496,19 @@ impl Runtime { map: &ObjectRef, key: &Value, ) -> Result, RuntimeError> { - let records = self - .0 - .state - .borrow() - .heap + let raw_key = self.raw_property_value(key)?; + let state = self.0.state.borrow(); + let heap = &state.heap; + let Some(index) = heap.map_find_record(map.object_id(), &raw_key)? else { + return Ok(None); + }; + let value = heap .map_records(map.object_id())? - .iter() - .enumerate() - .filter_map(|(index, record)| { - record - .key - .as_ref() - .map(|key| (index, key.clone(), record.value.clone())) - }) - .collect::>(); - for (index, candidate, value) in records { - let candidate = self.root_raw_value(&candidate)?; - if candidate.same_value_zero(key) { - return Ok(Some((index, value))); - } - } - Ok(None) + .get(index) + .expect("indexed Map record exists") + .value + .clone(); + Ok(Some((index, value))) } fn set_map_record( @@ -788,24 +779,20 @@ impl Runtime { .unwrap_or(Value::Undefined); let mut index = 0_usize; loop { - let record_index = index; let record = self .0 .state .borrow() .heap .map_records(map.object_id())? - .get(index) - .map(|record| (record.key.clone(), record.value.clone())); - let Some((key, value)) = record else { + .next_at_or_after(index) + .map(|(id, record)| (id, record.key.clone(), record.value.clone())); + let Some((record_index, key, value)) = record else { break; }; - index = index.checked_add(1).ok_or(RuntimeError::Invariant( + index = record_index.checked_add(1).ok_or(RuntimeError::Invariant( "Map forEach record index overflowed", ))?; - let Some(key) = key else { - continue; - }; let key = self.root_raw_value(&key)?; let value = self.root_raw_value(&value)?; let active_record = self.push_active_collection_record(ActiveCollectionRecord::Map { @@ -928,51 +915,45 @@ impl Runtime { done: true, }); }; - loop { - let record_index = index; - let record = self - .0 - .state - .borrow() - .heap - .map_records(map_id)? - .get(index) - .map(|record| (record.key.clone(), record.value.clone())); - let Some((key, value)) = record else { - let mut state = self.0.state.borrow_mut(); - let cleanup = state.heap.finish_map_iterator(iterator.object_id())?; - state.apply_cleanup(cleanup)?; - return Ok(NativeInvokeOutcome::IteratorNextRaw { - value: Value::Undefined, - done: true, - }); - }; - index = index.checked_add(1).ok_or(RuntimeError::Invariant( - "Map Iterator record index overflowed", - ))?; - self.0 - .state - .borrow_mut() - .heap - .set_map_iterator_index(iterator.object_id(), index)?; - let Some(key) = key else { - continue; - }; - self.0 - .state - .borrow_mut() - .heap - .set_map_iterator_current(iterator.object_id(), record_index)?; - let key = self.root_raw_value(&key)?; - let value = match kind { - MapIteratorKind::Key => key, - MapIteratorKind::Value => self.root_raw_value(&value)?, - MapIteratorKind::KeyAndValue => Value::Object( - self.new_array_from_values(realm, vec![key, self.root_raw_value(&value)?])?, - ), - }; - return Ok(NativeInvokeOutcome::IteratorNextRaw { value, done: false }); - } + let record = self + .0 + .state + .borrow() + .heap + .map_records(map_id)? + .next_at_or_after(index) + .map(|(id, record)| (id, record.key.clone(), record.value.clone())); + let Some((record_index, key, value)) = record else { + let mut state = self.0.state.borrow_mut(); + let cleanup = state.heap.finish_map_iterator(iterator.object_id())?; + state.apply_cleanup(cleanup)?; + return Ok(NativeInvokeOutcome::IteratorNextRaw { + value: Value::Undefined, + done: true, + }); + }; + index = record_index.checked_add(1).ok_or(RuntimeError::Invariant( + "Map Iterator record index overflowed", + ))?; + self.0 + .state + .borrow_mut() + .heap + .set_map_iterator_index(iterator.object_id(), index)?; + self.0 + .state + .borrow_mut() + .heap + .set_map_iterator_current(iterator.object_id(), record_index)?; + let key = self.root_raw_value(&key)?; + let value = match kind { + MapIteratorKind::Key => key, + MapIteratorKind::Value => self.root_raw_value(&value)?, + MapIteratorKind::KeyAndValue => Value::Object( + self.new_array_from_values(realm, vec![key, self.root_raw_value(&value)?])?, + ), + }; + Ok(NativeInvokeOutcome::IteratorNextRaw { value, done: false }) } fn call_map_group_by( diff --git a/src/engine/builtins/qjs_value_printer.rs b/src/engine/builtins/qjs_value_printer.rs index e2e37b2f..bf8ab1cf 100644 --- a/src/engine/builtins/qjs_value_printer.rs +++ b/src/engine/builtins/qjs_value_printer.rs @@ -709,7 +709,9 @@ impl QjsValuePrinter<'_, '_> { ObjectPayload::Arguments { fast_len, .. } => *fast_len, _ => None, }; - for (entry, slot) in shape.entries().iter().zip(&object_data.slots) { + for index in shape.ordered_indices() { + let entry = &shape.entries()[index]; + let slot = &object_data.slots[index]; if !entry.flags.enumerable { continue; } @@ -801,44 +803,26 @@ impl QjsValuePrinter<'_, '_> { ObjectPayload::RegExpStringIterator { .. } => { ("RegExp String Iterator", PrintableBody::Ordinary) } - ObjectPayload::Map { - records: source, - live_indices, - size, - } => { - let records = self.snapshot_collection_records( - &state, - object, - source, - live_indices, - CollectionKind::Map, - ); + ObjectPayload::Map { records: source } => { + let records = + self.snapshot_collection_records(&state, object, source, CollectionKind::Map); ( "Map", PrintableBody::Map { records, - size: *size, + size: source.len(), }, ) } ObjectPayload::MapIterator { .. } => ("Map Iterator", PrintableBody::Ordinary), - ObjectPayload::Set { - records: source, - live_indices, - size, - } => { - let records = self.snapshot_collection_records( - &state, - object, - source, - live_indices, - CollectionKind::Set, - ); + ObjectPayload::Set { records: source } => { + let records = + self.snapshot_collection_records(&state, object, source, CollectionKind::Set); ( "Set", PrintableBody::Set { records, - size: *size, + size: source.len(), }, ) } @@ -907,19 +891,12 @@ impl QjsValuePrinter<'_, '_> { &self, state: &RuntimeState, object: ObjectId, - source: &[crate::engine::heap::MapRecord], - live_indices: &BTreeSet, + source: &crate::engine::heap::CollectionRecords, kind: CollectionKind, ) -> Vec { - // QuickJS unlinks ordinary deleted records. Oxide keeps stable slots - // for iterator mutation semantics, so use the live index plus the - // small set of genuinely retained zombies instead of walking all - // historical tombstones. - let mut visible_indices = live_indices - .iter() - .copied() - .take(MAX_ITEM_COUNT) - .collect::>(); + // A retained current ID denotes a printer-visible empty record after + // deletion. IDs are never reused, so no physical tombstone is needed. + let mut visible_indices = source.ids().take(MAX_ITEM_COUNT).collect::>(); let iterator_indices = self .collection_iterator_current_indices .get_or_init(|| state.heap.collection_iterator_current_indices()); @@ -958,14 +935,15 @@ impl QjsValuePrinter<'_, '_> { let mut records = Vec::new(); let mut live = 0; for index in visible_indices { - let Some(record) = source.get(index) else { + let record = source.get(index); + if record.is_none() && index >= source.next_id() { continue; - }; + } records.push(CollectionEntry { - key: record.key.clone(), - value: record.value.clone(), + key: record.map(|record| record.key.clone()), + value: record.map_or(RawValue::Undefined, |record| record.value.clone()), }); - if record.key.is_some() { + if record.is_some() { live += 1; if live >= MAX_ITEM_COUNT { break; diff --git a/src/engine/builtins/regexp/result.rs b/src/engine/builtins/regexp/result.rs index a48c23a1..5dddbc7b 100644 --- a/src/engine/builtins/regexp/result.rs +++ b/src/engine/builtins/regexp/result.rs @@ -2,13 +2,38 @@ use crate::engine::api::runtime::Runtime; use crate::engine::api::runtime_error::RuntimeError; -use crate::engine::heap::ContextId; +use crate::engine::atom::Atom; +use crate::engine::heap::{ContextId, ObjectData, ObjectPayload, PropertySlot}; +use crate::engine::object::shape::{PropertyFlags, ShapeEntry}; +use std::collections::HashMap; -use crate::engine::object::{DescriptorField, ObjectRef, OrdinaryPropertyDescriptor, PropertyKey}; +use crate::engine::object::{ObjectRef, PropertyKey}; use crate::engine::value::{JsString, Value}; use crate::regexp::{CompiledRegExp, RegExpFlags, RegExpMatch}; use std::rc::Rc; +/// First-occurrence order and the participating value are separate rules for +/// duplicate group names. Keep their resolution here, before heap publication. +#[derive(Default)] +struct NamedCaptures { + positions: HashMap, + values: Vec<(PropertyKey, Value, Value)>, +} + +impl NamedCaptures { + fn record(&mut self, key: PropertyKey, capture: Value, indices: Value) { + if let Some(&position) = self.positions.get(&key.atom()) { + if !matches!(capture, Value::Undefined) { + self.values[position].1 = capture; + self.values[position].2 = indices; + } + } else { + self.positions.insert(key.atom(), self.values.len()); + self.values.push((key, capture, indices)); + } + } +} + impl Runtime { pub(crate) fn build_regexp_result( &self, @@ -32,13 +57,8 @@ impl Runtime { )); } - let groups = group_names.map(|_| self.new_object(None)).transpose()?; let has_indices = program.flags().contains(RegExpFlags::HAS_INDICES); - let indices_groups = if has_indices && group_names.is_some() { - Some(self.new_object(None)?) - } else { - None - }; + let mut named = NamedCaptures::default(); let mut captures = Vec::with_capacity(capture_count); let mut indices_values = has_indices.then(|| Vec::with_capacity(capture_count)); @@ -78,22 +98,11 @@ impl Runtime { group_names.and_then(|names| names.get(capture_index - 1)) { let key = self.intern_property_key_js_string(group_name)?; - self.define_named_capture_result( - groups.as_ref().ok_or(RuntimeError::Invariant( - "compiled RegExp names had no groups result object", - ))?, - &key, + named.record( + key, capture, - )?; - if let Some(index_value) = &index_value { - self.define_named_capture_result( - indices_groups.as_ref().ok_or(RuntimeError::Invariant( - "compiled RegExp names had no indices groups object", - ))?, - &key, - index_value.clone(), - )?; - } + index_value.clone().unwrap_or(Value::Undefined), + ); } if let (Some(values), Some(value)) = (&mut indices_values, index_value) { @@ -101,84 +110,110 @@ impl Runtime { } } + let groups = if group_names.is_some() { + Value::Object(self.new_regexp_groups(&named, false)?) + } else { + Value::Undefined + }; + let indices_groups = if has_indices && group_names.is_some() { + Value::Object(self.new_regexp_groups(&named, true)?) + } else { + Value::Undefined + }; let result = self.new_array_from_values(realm, captures)?; let complete = matched.capture(0).ok_or(RuntimeError::Invariant( "successful RegExp result omitted capture zero", ))?; - self.define_regexp_result_property( - &result, - "index", - Value::Int(i32::try_from(complete.start).map_err(|_| { - RuntimeError::Invariant("RegExp match start exceeded signed String range") - })?), - )?; - self.define_regexp_result_property(&result, "input", Value::String(input))?; - self.define_regexp_result_property( - &result, - "groups", - groups.map_or(Value::Undefined, Value::Object), - )?; - + let mut properties = vec![ + ( + "index", + Value::Int(i32::try_from(complete.start).map_err(|_| { + RuntimeError::Invariant("RegExp match start exceeded signed String range") + })?), + ), + ("input", Value::String(input)), + ("groups", groups), + ]; if let Some(values) = indices_values { let indices = self.new_array_from_values(realm, values)?; - self.define_regexp_result_property( - &indices, - "groups", - indices_groups.map_or(Value::Undefined, Value::Object), - )?; - self.define_regexp_result_property(&result, "indices", Value::Object(indices))?; + self.initialize_regexp_array_properties(&indices, &[("groups", indices_groups)])?; + properties.push(("indices", Value::Object(indices))); } + self.initialize_regexp_array_properties(&result, &properties)?; Ok(Value::Object(result)) } - /// QuickJS lets a participating duplicate-named capture replace an - /// earlier `undefined`, while an unmatched duplicate never erases an - /// already-defined value. Defining an existing property also preserves - /// the first capture's insertion order. - fn define_named_capture_result( + fn new_regexp_groups( &self, - object: &ObjectRef, - key: &PropertyKey, - value: Value, - ) -> Result<(), RuntimeError> { - if matches!(value, Value::Undefined) && self.has_own_property(object, key)? { - return Ok(()); - } - self.define_regexp_result_property_with_key(object, key, value) - } - - fn define_regexp_result_property( - &self, - object: &ObjectRef, - name: &str, - value: Value, - ) -> Result<(), RuntimeError> { - let key = self.intern_property_key(name)?; - self.define_regexp_result_property_with_key(object, &key, value) + named: &NamedCaptures, + indices: bool, + ) -> Result { + let entries = named + .values + .iter() + .map(|(key, _, _)| ShapeEntry { + atom: key.atom(), + flags: PropertyFlags::data(true, true, true), + }) + .collect::>(); + let slots = named + .values + .iter() + .map(|(_, capture, range)| { + self.raw_property_value(if indices { range } else { capture }) + .map(PropertySlot::Data) + }) + .collect::, _>>()?; + let id = self.0.state.borrow_mut().allocate_object_with_layout( + None, + &entries, + slots, + ObjectData::ordinary, + )?; + Ok(ObjectRef::from_owned_handle(self.clone(), id)) } - fn define_regexp_result_property_with_key( + /// Only called for privately held result Arrays. All keys are new named + /// C/W/E properties, so no Array index/length rule or JS callback is skipped. + fn initialize_regexp_array_properties( &self, object: &ObjectRef, - key: &PropertyKey, - value: Value, + properties: &[(&str, Value)], ) -> Result<(), RuntimeError> { - if !self.define_own_property( - object, - key, - &OrdinaryPropertyDescriptor { - value: DescriptorField::Present(value), - writable: DescriptorField::Present(true), - enumerable: DescriptorField::Present(true), - configurable: DescriptorField::Present(true), - ..OrdinaryPropertyDescriptor::new() - }, - )? { + let keys = properties + .iter() + .map(|(name, _)| self.intern_property_key(name)) + .collect::, _>>()?; + let values = properties + .iter() + .map(|(_, value)| self.raw_property_value(value)) + .collect::, _>>()?; + let mut state = self.0.state.borrow_mut(); + let data = state.heap.object(object.object_id())?; + if !matches!(data.payload, ObjectPayload::Array { .. }) || !data.extensible { return Err(RuntimeError::Invariant( - "fresh RegExp result property definition was rejected", + "RegExp result initialization requires a fresh Array", )); } - Ok(()) + let shape = state.heap.shape(data.shape)?; + let prototype = shape.prototype(); + let mut entries = shape.entries().to_vec(); + let mut slots = data.slots.clone(); + for (key, value) in keys.iter().zip(values) { + if state.atoms.array_index(key.atom())?.is_some() + || entries.iter().any(|entry| entry.atom == key.atom()) + { + return Err(RuntimeError::Invariant( + "RegExp result initialization requires new named keys", + )); + } + entries.push(ShapeEntry { + atom: key.atom(), + flags: PropertyFlags::data(true, true, true), + }); + slots.push(PropertySlot::Data(value)); + } + state.replace_layout(object.object_id(), prototype, &entries, slots) } } diff --git a/src/engine/builtins/set.rs b/src/engine/builtins/set.rs index 690f7351..55c11f4a 100644 --- a/src/engine/builtins/set.rs +++ b/src/engine/builtins/set.rs @@ -513,23 +513,13 @@ impl Runtime { } fn find_set_record(&self, set: &ObjectRef, key: &Value) -> Result, RuntimeError> { - let records = self + let raw_key = self.raw_property_value(key)?; + Ok(self .0 .state .borrow() .heap - .set_records(set.object_id())? - .iter() - .enumerate() - .filter_map(|(index, record)| record.key.as_ref().map(|key| (index, key.clone()))) - .collect::>(); - for (index, candidate) in records { - let candidate = self.root_raw_value(&candidate)?; - if candidate.same_value_zero(key) { - return Ok(Some(index)); - } - } - Ok(None) + .set_find_record(set.object_id(), &raw_key)?) } fn insert_set_record(&self, set: &ObjectRef, key: Value) -> Result { @@ -574,27 +564,21 @@ impl Runtime { set: &ObjectRef, index: &mut usize, ) -> Result, RuntimeError> { - loop { - let record_index = *index; - let record = self - .0 - .state - .borrow() - .heap - .set_records(set.object_id())? - .get(*index) - .map(|record| record.key.clone()); - let Some(key) = record else { - return Ok(None); - }; - *index = index - .checked_add(1) - .ok_or(RuntimeError::Invariant("Set record index overflowed"))?; - let Some(key) = key else { - continue; - }; - return Ok(Some((record_index, self.root_raw_value(&key)?))); - } + let record = self + .0 + .state + .borrow() + .heap + .set_records(set.object_id())? + .next_at_or_after(*index) + .map(|(id, record)| (id, record.key.clone())); + let Some((record_index, key)) = record else { + return Ok(None); + }; + *index = record_index + .checked_add(1) + .ok_or(RuntimeError::Invariant("Set record index overflowed"))?; + Ok(Some((record_index, self.root_raw_value(&key)?))) } fn next_live_set_value( @@ -851,50 +835,44 @@ impl Runtime { done: true, }); }; - loop { - let record_index = index; - let record = self - .0 - .state - .borrow() - .heap - .set_records(set_id)? - .get(index) - .map(|record| record.key.clone()); - let Some(key) = record else { - let mut state = self.0.state.borrow_mut(); - let cleanup = state.heap.finish_set_iterator(iterator.object_id())?; - state.apply_cleanup(cleanup)?; - return Ok(NativeInvokeOutcome::IteratorNextRaw { - value: Value::Undefined, - done: true, - }); - }; - index = index.checked_add(1).ok_or(RuntimeError::Invariant( - "Set Iterator record index overflowed", - ))?; - self.0 - .state - .borrow_mut() - .heap - .set_set_iterator_index(iterator.object_id(), index)?; - let Some(key) = key else { - continue; - }; - self.0 - .state - .borrow_mut() - .heap - .set_set_iterator_current(iterator.object_id(), record_index)?; - let value = self.root_raw_value(&key)?; - let value = match kind { - SetIteratorKind::Value => value, - SetIteratorKind::KeyAndValue => { - Value::Object(self.new_array_from_values(realm, vec![value.clone(), value])?) - } - }; - return Ok(NativeInvokeOutcome::IteratorNextRaw { value, done: false }); - } + let record = self + .0 + .state + .borrow() + .heap + .set_records(set_id)? + .next_at_or_after(index) + .map(|(id, record)| (id, record.key.clone())); + let Some((record_index, key)) = record else { + let mut state = self.0.state.borrow_mut(); + let cleanup = state.heap.finish_set_iterator(iterator.object_id())?; + state.apply_cleanup(cleanup)?; + return Ok(NativeInvokeOutcome::IteratorNextRaw { + value: Value::Undefined, + done: true, + }); + }; + index = record_index.checked_add(1).ok_or(RuntimeError::Invariant( + "Set Iterator record index overflowed", + ))?; + self.0 + .state + .borrow_mut() + .heap + .set_set_iterator_index(iterator.object_id(), index)?; + self.0 + .state + .borrow_mut() + .heap + .set_set_iterator_current(iterator.object_id(), record_index)?; + let value = self.root_raw_value(&key)?; + let value = match kind { + SetIteratorKind::Value => value, + SetIteratorKind::KeyAndValue => { + Value::Object(self.new_array_from_values(realm, vec![value.clone(), value])?) + } + }; + Ok(NativeInvokeOutcome::IteratorNextRaw { value, done: false }) } fn get_set_like_record( @@ -1371,9 +1349,7 @@ impl Runtime { } ObjectIteratorStep::Throw(value) => return Ok(Completion::Throw(value)), }; - if self.find_set_record(&set, &value)?.is_some() - && self.find_set_record(&result, &value)?.is_none() - { + if self.find_set_record(&set, &value)?.is_some() { self.insert_set_record(&result, value)?; } } @@ -1392,7 +1368,7 @@ impl Runtime { NativeConversion::Value(present) => present, NativeConversion::Throw(value) => return Ok(Completion::Throw(value)), }; - if present && self.find_set_record(&result, &value)?.is_none() { + if present { self.insert_set_record(&result, value)?; } } @@ -1501,7 +1477,7 @@ impl Runtime { // not the copy. Mutating foreign iterators make this observable. if self.find_set_record(&set, &value)?.is_some() { self.delete_set_record(&result, &value)?; - } else if self.find_set_record(&result, &value)?.is_none() { + } else { self.insert_set_record(&result, value)?; } } diff --git a/src/engine/compiler/README.md b/src/engine/compiler/README.md index a007d146..de2f9045 100644 --- a/src/engine/compiler/README.md +++ b/src/engine/compiler/README.md @@ -25,3 +25,13 @@ - [template.rs](template.rs):QuickJS-shaped template literal and tagged-template lowering.。 - [tests/](tests/README.md):子模块职责与文件说明。 - [tests.rs](tests.rs):模块回归测试。 + +作用域的 `bindings` 保留声明顺序和稳定 BindingId;名称索引仅用于选择该 +顺序中最后一个同名绑定。正常声明通过 `FunctionIr::add_binding` 同步索引, +晚插入的函数私有名称在调整顺序后重建索引。遮蔽、重复声明是否合法以及 +参数环境边界仍由解析和验证逻辑决定,不能依赖 HashMap 的覆盖行为判定。 + +常量池仍按追加顺序决定字节码编号。所有追加通过 +`FunctionIr::append_constant`;字符串索引记录第一个 primitive string, +仅供 `ensure_string_constant` 复用名称。普通字面量追加不会去重,AtomString +和模板常量也不会混入这个索引。模板后处理只修改模板载荷。 diff --git a/src/engine/compiler/lowering.rs b/src/engine/compiler/lowering.rs index ea1ca816..5a72aeb1 100644 --- a/src/engine/compiler/lowering.rs +++ b/src/engine/compiler/lowering.rs @@ -1,5 +1,7 @@ //! Lower resolved IR to verified bytecode and source debug information. +use crate::source::coordinates::QuickJsSourceIndex; + #[cfg(test)] use super::DetachedBytecode; use super::{ @@ -225,6 +227,15 @@ pub(super) fn lower_unlinked_tree( module: _, pending_unsupported: _, } = tree; + let source_index = if debug_info == DebugInfoMode::StripDebug { + None + } else { + Some( + QuickJsSourceLocator::from_bytes(source.raw_bytes()) + .index() + .map_err(|error| Error::internal(error.to_string()))?, + ) + }; let function_count = tree_functions.len(); let captured_locals = captured_locals_by_function(&tree_functions)?; // A descendant eval descriptor names bindings owned by each ancestor and @@ -558,6 +569,9 @@ pub(super) fn lower_unlinked_tree( let debug = match debug_info { DebugInfoMode::Full | DebugInfoMode::StripSource => Some(build_unlinked_debug( &source, + source_index + .as_ref() + .ok_or_else(|| Error::internal("debug lowering has no source index"))?, filename.clone(), function.source.definition, if debug_info == DebugInfoMode::Full { @@ -1383,13 +1397,13 @@ fn fold_quickjs_constant_branches(code: &mut [Instruction]) { fn build_unlinked_debug( source: &SourceText, + locator: &QuickJsSourceIndex<'_>, filename: JsString, definition: SourceOffset, source_range: Option>, pc_sites: &[Option], ) -> Result { let carrier = source.carrier(); - let locator = QuickJsSourceLocator::from_bytes(source.raw_bytes()); let definition = locator .locate(definition) .map_err(|error| Error::internal(error.to_string()))?; @@ -1480,6 +1494,7 @@ mod tests { kind: ScopeKind::With, is_parameter_initializer: false, bindings: Vec::new(), + bindings_by_name: Default::default(), }); function.locals.push(WITH_OBJECT_LOCAL_NAME.to_owned()); function.add_binding( diff --git a/src/engine/compiler/mod.rs b/src/engine/compiler/mod.rs index 83192dcf..f074f233 100644 --- a/src/engine/compiler/mod.rs +++ b/src/engine/compiler/mod.rs @@ -624,6 +624,15 @@ struct IrScope { /// initializer, but must never be mistaken for authored body lexicals. is_parameter_initializer: bool, bindings: Vec, + /// Last binding in declaration order for each name. The ordered list remains + /// authoritative for validation, lowering and observable declaration order. + bindings_by_name: HashMap, +} + +impl IrScope { + fn binding_named(&self, name: &str) -> Option { + self.bindings_by_name.get(name).copied() + } } #[derive(Clone, Copy, Debug, PartialEq, Eq)] @@ -1431,6 +1440,8 @@ struct FunctionIr { /// an outer operation. Parentheses deliberately preserve this marker. last_optional_chain: Option, constants: Vec, + /// First primitive string occurrence; constant ordinals remain append-only. + string_constants: HashMap, closure_variables: Vec, /// Exact flattened caller bindings imported by a synthetic direct-eval /// root. Entries retain their original R1w descriptor indices even though @@ -1554,6 +1565,7 @@ impl FunctionIr { kind: ScopeKind::FunctionRoot, is_parameter_initializer: false, bindings: Vec::new(), + bindings_by_name: Default::default(), }, IrScope { parent: Some(function_root), @@ -1567,6 +1579,7 @@ impl FunctionIr { }, is_parameter_initializer: false, bindings: Vec::new(), + bindings_by_name: Default::default(), }, ]; let current_scope = body; @@ -1645,6 +1658,7 @@ impl FunctionIr { last_identifier_reference: None, last_optional_chain: None, constants: Vec::new(), + string_constants: HashMap::new(), closure_variables: Vec::new(), external_bindings: Vec::new(), eval_caller_profile: EvalCallerProfile { @@ -1724,6 +1738,18 @@ impl FunctionIr { Ok(()) } + /// Preserve every authored constant and its ordinal. Only name-constant + /// reuse consults the derived first-occurrence index. + fn append_constant(&mut self, constant: IrConstant) -> Result { + let index = u32::try_from(self.constants.len()) + .map_err(|_| Error::new(ErrorKind::JsInternal, "out of memory"))?; + if let IrConstant::Primitive(Value::String(value)) = &constant { + self.string_constants.entry(value.clone()).or_insert(index); + } + self.constants.push(constant); + Ok(index) + } + fn add_binding( &mut self, storage_scope: ScopeId, @@ -1746,6 +1772,9 @@ impl FunctionIr { declaration_span, }); self.scopes[storage_scope.0].bindings.push(binding); + self.scopes[storage_scope.0] + .bindings_by_name + .insert(self.bindings[binding.0].name.clone(), binding); binding } @@ -1769,12 +1798,19 @@ impl FunctionIr { } fn binding_id_in_scope(&self, scope: ScopeId, name: &str) -> Option { - self.scopes[scope.0] - .bindings - .iter() - .rev() - .copied() - .find(|binding| self.bindings[binding.0].name == name) + self.scopes[scope.0].binding_named(name) + } + + /// Rare late function-name insertion changes order after normal appends. + /// Rebuild once there, rather than burdening every name lookup with a scan. + fn rebuild_scope_name_index(&mut self, scope: ScopeId) { + let scope = &mut self.scopes[scope.0]; + scope.bindings_by_name.clear(); + for &binding in &scope.bindings { + scope + .bindings_by_name + .insert(self.bindings[binding.0].name.clone(), binding); + } } fn binding_id_from_scope( @@ -7360,12 +7396,8 @@ impl<'source> Parser<'source> { self.register_var_binding(&name, declaration_span, conflict_span)?; let function = &mut self.functions[self.current_function]; - let binding = function.scopes[function.var_scope.0] - .bindings - .iter() - .rev() - .copied() - .find(|binding| function.bindings[binding.0].name == name) + let binding = function + .binding_id_in_scope(function.var_scope, &name) .ok_or_else(|| Error::internal("function declaration binding was not registered"))?; let metadata = &function.bindings[binding.0]; if metadata.kind != BindingKind::Normal @@ -7829,11 +7861,7 @@ impl<'source> Parser<'source> { } fn add_constant(&mut self, constant: IrConstant) -> Result { - let function = self.current_ir_mut(); - let index = u32::try_from(function.constants.len()) - .map_err(|_| Error::new(ErrorKind::JsInternal, "out of memory"))?; - function.constants.push(constant); - Ok(index) + self.current_ir_mut().append_constant(constant) } fn emit_instruction(&mut self, instruction: Instruction) -> Result { @@ -8819,6 +8847,7 @@ impl<'source> Parser<'source> { kind: ScopeKind::Parameter, is_parameter_initializer: true, bindings: Vec::new(), + bindings_by_name: Default::default(), }); function.parameter_scope = Some(parameter_scope); function.current_scope = parameter_scope; @@ -8866,6 +8895,7 @@ impl<'source> Parser<'source> { kind: ScopeKind::Parameter, is_parameter_initializer: true, bindings: Vec::new(), + bindings_by_name: Default::default(), }); function.parameter_scope = Some(parameter_scope); function.current_scope = parameter_scope; @@ -9114,6 +9144,7 @@ impl<'source> Parser<'source> { kind, is_parameter_initializer, bindings: Vec::new(), + bindings_by_name: HashMap::new(), }); function.ops.push(SpannedIrOp { op: IrOp::EnterScope(scope), diff --git a/src/engine/compiler/resolution.rs b/src/engine/compiler/resolution.rs index ad55d0e8..a797e237 100644 --- a/src/engine/compiler/resolution.rs +++ b/src/engine/compiler/resolution.rs @@ -2793,18 +2793,10 @@ fn capture_global_path( pub(super) fn ensure_string_constant(function: &mut FunctionIr, name: &str) -> Result { let name = JsString::try_from_utf8(name)?; - if let Some(index) = function.constants.iter().position( - |constant| matches!(constant, IrConstant::Primitive(Value::String(value)) if value == &name), - ) { - return u32::try_from(index) - .map_err(|_| Error::new(ErrorKind::JsInternal, "out of memory")); - } - let index = u32::try_from(function.constants.len()) - .map_err(|_| Error::new(ErrorKind::JsInternal, "out of memory"))?; - function - .constants - .push(IrConstant::Primitive(Value::String(name))); - Ok(index) + if let Some(&index) = function.string_constants.get(&name) { + return Ok(index); + } + function.append_constant(IrConstant::Primitive(Value::String(name))) } /// A parentless parameter environment is a deliberate visibility barrier, not @@ -2911,6 +2903,7 @@ fn find_or_create_private_function_name_binding( )); } function.scopes[root.0].bindings.insert(insertion, binding); + function.rebuild_scope_name_index(root); Ok(Some(ResolvedBinding { storage: BindingStorage::Local(index), kind, diff --git a/src/engine/compiler/tests/scopes.rs b/src/engine/compiler/tests/scopes.rs index ff7e10d9..71312415 100644 --- a/src/engine/compiler/tests/scopes.rs +++ b/src/engine/compiler/tests/scopes.rs @@ -1,5 +1,46 @@ use super::*; +#[test] +fn string_constant_lookup_preserves_first_literal_and_append_ordinals() { + let mut tree = Parser::parse("", JsString::from_static("")).unwrap(); + let function = &mut tree.functions[0]; + let start = function.constants.len() as u32; + let literal = || { + IrConstant::Primitive(crate::engine::value::PrimitiveValue::String( + JsString::from_static("name"), + )) + }; + assert_eq!(function.append_constant(literal()).unwrap(), start); + assert_eq!(function.append_constant(literal()).unwrap(), start + 1); + assert_eq!(ensure_string_constant(function, "name").unwrap(), start); + assert_eq!( + ensure_string_constant(function, "other").unwrap(), + start + 2 + ); + assert_eq!( + ensure_string_constant(function, "other").unwrap(), + start + 2 + ); + assert_eq!(function.constants.len(), start as usize + 3); +} + +#[test] +fn scope_name_lookup_selects_the_last_duplicate_parameter() { + let tree = Parser::parse( + "(function f(value, value) { return value; })", + JsString::from_static(""), + ) + .unwrap(); + let function = &tree.functions[1]; + let scope = &function.scopes[function.var_scope.0]; + let binding = scope.binding_named("value").unwrap(); + assert_eq!( + function.bindings[binding.0].storage, + BindingStorage::Argument(1) + ); + assert!(scope.binding_named("missing").is_none()); +} + #[test] fn string_too_long_lex_error_maps_to_js_internal() { let position = Position::new(7, 2, 3); @@ -384,6 +425,7 @@ fn scope_graph_validation_rejects_invalid_definition_and_binding_identity() { kind: ScopeKind::ProgramBody, is_parameter_initializer: false, bindings: Vec::new(), + bindings_by_name: Default::default(), }); malformed_scope.functions[0].body_scope = super::ScopeId(2); malformed_scope.functions[0].current_scope = super::ScopeId(2); diff --git a/src/engine/heap/README.md b/src/engine/heap/README.md index 69cc2696..cced7619 100644 --- a/src/engine/heap/README.md +++ b/src/engine/heap/README.md @@ -6,6 +6,10 @@ ## 文件与子目录 +- [dictionary_storage.rs](dictionary_storage.rs):普通对象 dictionary 的单属性删除/替换事务;移动槽转移所有权,释放仅作用于被移除项。 + +- [collection_records.rs](collection_records.rs):Map/Set 存活记录、键索引和递增记录 ID 的统一拥有者;删除回收记录,游标不依赖物理槽。 + - [allocation.rs](allocation.rs):分配及初始化。 - [arena.rs](arena.rs):槽位、发布状态、计数与节点访问。 - [binding_records.rs](binding_records.rs):binding 的原始堆记录、载荷与校验。 @@ -14,6 +18,7 @@ - [buffers.rs](buffers.rs):Borrow-contained ArrayBuffer storage operations and SharedArrayBuffer backing handles.。 - [code_records.rs](code_records.rs):code 的原始堆记录、载荷与校验。 - [collections.rs](collections.rs):Insertion-ordered Map/Set storage, weak collection records, and collection iterator state.。 +- [collection_index.rs](collection_index.rs):强集合的非拥有型键索引;只保存哈希和稳定记录位置,由集合存储同步增删。查找不执行 JS;完整一致性扫描仅用于发布校验。 - [deferred.rs](deferred.rs):延迟操作队列、待处理状态和清理重入守卫。 - [gc.rs](gc.rs):Heap reference ownership, ordered weak-reference processing, and cycle collection.。 - [identity.rs](identity.rs):identity 的类型和操作实现。 @@ -42,3 +47,18 @@ - [tests.rs](tests.rs):模块回归测试。 - [profiling.rs](profiling.rs):可选 arena backing storage 跟踪和资源拥有者的内存统计。 + +Map/Set 的 `CollectionRecords` 独占存活记录、键索引、存活 ID 顺序和递增 ID +时钟。删除不复用 ID;clear 释放存储但保留时钟。游标只保存 ID,因此活迭代器 +不要求保留墓碑。打印器将已删除的 current ID 合成为空项,不能把它当成存活记录。 +记录 key 在发布后不可修改,value 替换通过专用入口,GC 边事务仍由 heap 拥有。 + +顺序暂用标准库 BTreeSet:键/记录定位平均 O(1),增删与寻找下一项 O(log n), +整表遍历 O(n)。这是为了在支持任意暂停游标时立即回收历史记录,避免引入游标 +注册表或自定义链接回收协议;不声称全部操作 O(1)。哈希表按几何阈值收缩,容量 +随存活规模变化;测试覆盖暂停游标、重插、clear、ID 耗尽与参考模型随机序列。 + +长字符串哈希缓存属于单个 CollectionIndex 的随机种子域。它只记录最多 8 个 +长度至少 256 code units 的弱字符串身份,采用 FIFO 淘汰;每次 miss 仍按完整 +内容哈希,命中后的键相等性仍需验证。缓存不会持有字符串载荷,不参与存储相等性, +clear 会释放它。短键不分配缓存;不能将缓存移交给使用不同种子的索引。 diff --git a/src/engine/heap/collection_index.rs b/src/engine/heap/collection_index.rs new file mode 100644 index 00000000..d977fa74 --- /dev/null +++ b/src/engine/heap/collection_index.rs @@ -0,0 +1,309 @@ +//! Non-owning key lookup for insertion-ordered strong collections. +//! +//! Records own keys and GC edges; this index owns only hashes and record IDs. +//! The collection storage boundary maintains both together. Lookups borrow records +//! without rooting every candidate or invoking JavaScript. Public iterator cursors remain the responsibility of ordered record storage. + +use std::cell::RefCell; +use std::collections::{HashMap, VecDeque}; +use std::fmt; +use std::hash::{BuildHasher, Hasher}; + +use super::{CollectionRecords, HeapError, RawValue}; +use crate::engine::value::{JsString, WeakJsString, collection_key}; + +#[derive(Clone, Default)] +pub struct CollectionIndex { + buckets: HashMap>, + // Allocate the cache header only for long string keys. It is scoped to + // this index's hasher seed and keeps no String payload alive. + string_hashes: RefCell>>, + #[cfg(test)] + hash_computations: std::cell::Cell, +} + +const MIN_CACHED_STRING_UNITS: usize = 256; +const STRING_HASH_CACHE_SIZE: usize = 8; + +#[derive(Clone)] +struct CachedStringHash { + string: WeakJsString, + hash: u64, +} + +#[derive(Clone, Default)] +struct StringHashCache { + entries: VecDeque, +} + +impl StringHashCache { + fn find(&self, string: &JsString) -> Option { + self.entries + .iter() + .find(|entry| entry.string.same_representation(string)) + .map(|entry| entry.hash) + } + + fn remember(&mut self, string: &JsString, hash: u64) { + if self.entries.len() == STRING_HASH_CACHE_SIZE { + self.entries.pop_front(); + } + self.entries.push_back(CachedStringHash { + string: string.downgrade(), + hash, + }); + } +} + +// Cache history is observationally irrelevant and is intentionally excluded +// from metadata equality/debug output. Clone preserves both seed and cache. +impl PartialEq for CollectionIndex { + fn eq(&self, other: &Self) -> bool { + self.buckets == other.buckets + } +} + +impl fmt::Debug for CollectionIndex { + fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { + formatter + .debug_struct("CollectionIndex") + .field("buckets", &self.buckets) + .finish_non_exhaustive() + } +} + +impl CollectionIndex { + fn hash(&self, key: &RawValue) -> u64 { + let RawValue::String(string) = key else { + return self.hash_uncached(key); + }; + if string.len() < MIN_CACHED_STRING_UNITS { + return self.hash_uncached(key); + } + if let Some(hash) = self + .string_hashes + .borrow() + .as_ref() + .and_then(|cache| cache.find(string)) + { + return hash; + } + let hash = self.hash_uncached(key); + self.string_hashes + .borrow_mut() + .get_or_insert_with(Box::default) + .remember(string, hash); + hash + } + + fn hash_uncached(&self, key: &RawValue) -> u64 { + #[cfg(test)] + self.hash_computations.set(self.hash_computations.get() + 1); + let mut hasher = self.buckets.hasher().build_hasher(); + collection_key::hash(key, &mut hasher); + hasher.finish() + } + + pub(super) fn find(&self, records: &CollectionRecords, key: &RawValue) -> Option { + self.buckets + .get(&self.hash(key))? + .iter() + .copied() + .find(|&index| { + collection_key::same_value_zero( + &records.get(index).expect("indexed record exists").key, + key, + ) + }) + } + + pub(super) fn insert(&mut self, key: &RawValue, index: usize) { + self.buckets.entry(self.hash(key)).or_default().push(index); + } + + pub(super) fn remove(&mut self, key: &RawValue, index: usize) { + let hash = self.hash(key); + let bucket = self + .buckets + .get_mut(&hash) + .expect("live collection key has a hash bucket"); + let position = bucket + .iter() + .position(|&entry| entry == index) + .expect("live collection record is indexed"); + bucket.swap_remove(position); + if bucket.is_empty() { + self.buckets.remove(&hash); + } else if bucket.capacity() > bucket.len().saturating_mul(4).saturating_add(64) { + bucket.shrink_to(bucket.len().saturating_mul(2).saturating_add(32)); + } + if self.buckets.capacity() > self.buckets.len().saturating_mul(4).saturating_add(64) { + self.buckets + .shrink_to(self.buckets.len().saturating_mul(2).saturating_add(32)); + } + } + + pub(super) fn clear(&mut self) { + self.buckets.clear(); + self.buckets.shrink_to_fit(); + *self.string_hashes.borrow_mut() = None; + } + + #[cfg(test)] + pub(super) fn retained_capacities(&self) -> (usize, usize) { + ( + self.buckets.capacity(), + self.buckets.values().map(Vec::capacity).sum(), + ) + } + + /// Publication validation; never run this full scan on an ordinary lookup. + pub(super) fn validate(&self, records: &CollectionRecords) -> Result<(), HeapError> { + let mut seen = std::collections::HashSet::new(); + for (&hash, indices) in &self.buckets { + if indices.is_empty() { + return Err(HeapError::Invariant("collection index has an empty bucket")); + } + for &index in indices { + let key = + records + .get(index) + .map(|record| &record.key) + .ok_or(HeapError::Invariant( + "collection index points outside live records", + ))?; + if !seen.insert(index) || self.hash_uncached(key) != hash { + return Err(HeapError::Invariant( + "collection index does not match its records", + )); + } + } + } + if seen.len() != records.len() { + return Err(HeapError::Invariant( + "collection index is missing live records", + )); + } + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::engine::heap::MapRecord; + + fn record_store(values: Vec) -> CollectionRecords { + let mut records = CollectionRecords::default(); + for record in values { + records.insert(record); + } + records + } + use crate::engine::value::{JsString, bigint::JsBigInt}; + + #[test] + fn long_string_hash_memo_is_bounded_and_does_not_own_keys() { + let index = CollectionIndex::default(); + let key = JsString::try_from_utf8(&"x".repeat(1024)).unwrap(); + let weak = key.downgrade(); + let expected = index.hash(&RawValue::String(key.clone())); + for _ in 0..32 { + assert_eq!(index.hash(&RawValue::String(key.clone())), expected); + } + assert_eq!(index.hash_computations.get(), 1); + let cloned = index.clone(); + assert_eq!(cloned.hash(&RawValue::String(key.clone())), expected); + let independent = CollectionIndex::default(); + assert_eq!( + independent.hash(&RawValue::String(key.clone())), + independent.hash_uncached(&RawValue::String(key.clone())) + ); + drop(key); + assert!( + weak.upgrade().is_none(), + "hash memo must not retain a String payload" + ); + for suffix in 0..32 { + let key = JsString::try_from_utf8(&("x".repeat(1024) + &suffix.to_string())).unwrap(); + index.hash(&RawValue::String(key)); + } + assert!( + index.string_hashes.borrow().as_ref().unwrap().entries.len() <= STRING_HASH_CACHE_SIZE + ); + } + + #[test] + fn equal_keys_share_hash_across_number_and_string_representations() { + let index = CollectionIndex::default(); + let pairs = [ + (RawValue::Int(0), RawValue::Float(-0.0)), + (RawValue::Int(42), RawValue::Float(42.0)), + ( + RawValue::Float(f64::NAN), + RawValue::Float(f64::from_bits(0x7ff8_0000_0000_0042)), + ), + ( + RawValue::String(JsString::from_static("abc")), + RawValue::String(JsString::try_from_utf16([97, 98, 99]).unwrap()), + ), + ( + RawValue::BigInt( + JsBigInt::parse_radix("123456789012345678901234567890", 10).unwrap(), + ), + RawValue::BigInt( + JsBigInt::parse_radix("123456789012345678901234567890", 10).unwrap(), + ), + ), + ]; + for (left, right) in pairs { + assert!(collection_key::same_value_zero(&left, &right)); + assert_eq!(index.hash(&left), index.hash(&right)); + } + assert!(!collection_key::same_value_zero( + &RawValue::Int(1), + &RawValue::String(JsString::from_static("1")) + )); + assert!(!collection_key::same_value_zero( + &RawValue::Int(1), + &RawValue::BigInt(JsBigInt::one()) + )); + } + + #[test] + fn collision_candidates_are_compared_and_removal_preserves_the_others() { + let mut index = CollectionIndex::default(); + let records = record_store(vec![ + MapRecord { + key: RawValue::Int(1), + value: RawValue::Undefined, + }, + MapRecord { + key: RawValue::Int(2), + value: RawValue::Undefined, + }, + ]); + // Force a collision to exercise the bucket path deterministically, + // without relying on the randomized hasher finding one naturally. + let hash = index.hash(&RawValue::Int(2)); + index.buckets.insert(hash, vec![0, 1]); + assert_eq!(index.find(&records, &RawValue::Int(2)), Some(1)); + index.remove(&RawValue::Int(2), 1); + assert_eq!(index.find(&records, &RawValue::Int(2)), None); + assert_eq!(index.buckets[&hash], vec![0]); + } + + #[test] + fn publication_rejects_missing_or_stale_index_entries() { + let mut index = CollectionIndex::default(); + let mut records = record_store(vec![MapRecord { + key: RawValue::Int(1), + value: RawValue::Undefined, + }]); + assert!(index.validate(&records).is_err()); + index.insert(&RawValue::Int(1), 0); + assert!(index.validate(&records).is_ok()); + records.get_mut(0).unwrap().key = RawValue::Int(2); + assert!(index.validate(&records).is_err()); + } +} diff --git a/src/engine/heap/collection_records.rs b/src/engine/heap/collection_records.rs new file mode 100644 index 00000000..c2305b99 --- /dev/null +++ b/src/engine/heap/collection_records.rs @@ -0,0 +1,285 @@ +//! Live Map/Set records indexed by key and by monotonic insertion identity. +//! +//! Records alone own keys, values and GC edges. Record IDs are never reused, +//! even after clear, so paused cursors need no deleted slots or observer leases. +//! The ordered tree contains only live IDs; key and record lookup are average +//! O(1), while insertion, deletion and finding the next live ID are O(log size). +//! Heap collection transactions retain/release edges around these pure mutations. + +use std::collections::{BTreeSet, HashMap, btree_set}; + +use super::collection_index::CollectionIndex; +use super::{HeapError, RawValue}; + +#[derive(Clone, Debug, PartialEq)] +pub struct MapRecord { + pub key: RawValue, + pub value: RawValue, +} + +#[derive(Clone, Debug, Default, PartialEq)] +pub struct CollectionRecords { + entries: HashMap, + order: BTreeSet, + key_index: CollectionIndex, + next_id: usize, +} + +impl CollectionRecords { + pub fn len(&self) -> usize { + self.entries.len() + } + + #[cfg(test)] + pub fn is_empty(&self) -> bool { + self.entries.is_empty() + } + + /// Exclusive upper bound of issued IDs, independent of current live size. + pub fn next_id(&self) -> usize { + self.next_id + } + + pub fn get(&self, id: usize) -> Option<&MapRecord> { + self.entries.get(&id) + } + + #[cfg(test)] + pub(super) fn get_mut(&mut self, id: usize) -> Option<&mut MapRecord> { + self.entries.get_mut(&id) + } + + /// Value replacement cannot invalidate either key or insertion indexes. + pub(super) fn replace_value(&mut self, id: usize, value: RawValue) -> Option { + self.entries + .get_mut(&id) + .map(|record| std::mem::replace(&mut record.value, value)) + } + + pub fn ids(&self) -> impl DoubleEndedIterator + ExactSizeIterator + '_ { + self.order.iter().copied() + } + + pub fn iter(&self) -> impl DoubleEndedIterator + ExactSizeIterator { + self.order.iter().map(|id| &self.entries[id]) + } + + pub fn next_at_or_after(&self, cursor: usize) -> Option<(usize, &MapRecord)> { + let &id = self.order.range(cursor..).next()?; + Some((id, &self.entries[&id])) + } + + pub(super) fn find(&self, key: &RawValue) -> Option { + self.key_index.find(self, key) + } + + /// Must run before retaining a new record's heap edges. + pub(super) fn preflight_insert(&self) -> Result<(), HeapError> { + self.next_id.checked_add(1).ok_or(HeapError::Overflow { + operation: "advancing collection record identity", + })?; + Ok(()) + } + + /// The heap has validated the key, uniqueness and ID capacity before commit. + pub(super) fn insert(&mut self, record: MapRecord) -> usize { + let id = self.next_id; + self.next_id = id + .checked_add(1) + .expect("collection insertion was preflighted"); + let key = &record.key; + self.key_index.insert(key, id); + assert!( + self.entries.insert(id, record).is_none(), + "collection record ID was reused" + ); + assert!(self.order.insert(id), "collection ordered ID was reused"); + id + } + + pub(super) fn remove(&mut self, id: usize) -> Option { + let record = self.entries.remove(&id)?; + self.key_index.remove(&record.key, id); + assert!( + self.order.remove(&id), + "live collection record has no ordered ID" + ); + // Geometric shrinking bounds retained table capacity during churn, + // without a rebuild for each deletion. The tree releases removed nodes. + let size = self.entries.len(); + if self.entries.capacity() > size.saturating_mul(4).saturating_add(64) { + self.entries + .shrink_to(size.saturating_mul(2).saturating_add(32)); + } + Some(record) + } + + /// Transfer all live records in insertion order, preserving the ID clock. + pub(super) fn take_all(&mut self) -> CollectionRecordsIntoIter { + self.key_index.clear(); + CollectionRecordsIntoIter { + entries: std::mem::take(&mut self.entries), + order: std::mem::take(&mut self.order).into_iter(), + } + } + + pub(super) fn validate(&self) -> Result<(), HeapError> { + if self.entries.len() != self.order.len() + || self + .order + .iter() + .any(|id| *id >= self.next_id || !self.entries.contains_key(id)) + { + return Err(HeapError::Invariant( + "collection record IDs do not match live storage", + )); + } + self.key_index.validate(self) + } +} + +/// Ordered ownership transfer for clear; no record snapshot. +pub struct CollectionRecordsIntoIter { + entries: HashMap, + order: btree_set::IntoIter, +} + +impl Iterator for CollectionRecordsIntoIter { + type Item = MapRecord; + + fn next(&mut self) -> Option { + let id = self.order.next()?; + Some( + self.entries + .remove(&id) + .expect("ordered collection record exists"), + ) + } + + fn size_hint(&self) -> (usize, Option) { + self.order.size_hint() + } +} + +impl ExactSizeIterator for CollectionRecordsIntoIter {} + +#[cfg(test)] +mod tests { + use super::*; + + fn record(key: i32, value: i32) -> MapRecord { + MapRecord { + key: RawValue::Int(key), + value: RawValue::Int(value), + } + } + + #[test] + fn collection_record_storage_reclaims_capacity_and_keeps_id_clock() { + for peak in [64, 1024, 16384] { + let mut records = CollectionRecords::default(); + for key in 0..peak { + records.insert(record(key as i32, key as i32)); + } + for id in 0..peak - 1 { + records.remove(id).unwrap(); + } + let (buckets, candidates) = records.key_index.retained_capacities(); + assert_eq!(records.len(), 1); + assert_eq!(records.order.len(), 1); + assert!(records.entries.capacity() <= 68); + assert!(buckets <= 68); + assert!(candidates <= 68); + println!( + "peak={peak} live=1 record_capacity={} bucket_capacity={buckets} candidate_capacity={candidates}", + records.entries.capacity() + ); + assert_eq!(records.take_all().count(), 1); + assert_eq!(records.entries.capacity(), 0); + assert_eq!(records.key_index.retained_capacities(), (0, 0)); + assert_eq!(records.insert(record(1, 2)), peak); + } + } + + #[test] + fn collection_record_storage_matches_a_tombstone_reference_model() { + let mut records = CollectionRecords::default(); + let mut model: Vec> = Vec::new(); + let mut seed = 0x8cae_7753_u64; + let mut cursor = 0; + for step in 0..4096 { + seed = seed.wrapping_mul(6364136223846793005).wrapping_add(1); + let key = ((seed >> 32) % 31) as i32; + let existing = model + .iter() + .position(|entry| entry.is_some_and(|(k, _)| k == key)); + assert_eq!(records.find(&RawValue::Int(key)), existing); + match (seed >> 16) % 7 { + 0..=2 => { + if let Some(id) = existing { + records.replace_value(id, RawValue::Int(step)).unwrap(); + model[id] = Some((key, step)); + } else { + records.preflight_insert().unwrap(); + assert_eq!(records.insert(record(key, step)), model.len()); + model.push(Some((key, step))); + } + } + 3 => { + if let Some(id) = existing { + records.remove(id).unwrap(); + model[id] = None; + } + } + 4 => { + let expected = model + .iter() + .enumerate() + .skip(cursor) + .find_map(|(id, entry)| entry.map(|pair| (id, pair))); + let actual = records.next_at_or_after(cursor); + assert_eq!(actual.map(|(id, _)| id), expected.map(|(id, _)| id)); + if let Some((id, _)) = actual { + cursor = id + 1; + } + } + 5 => cursor = 0, + _ => { + let expected = model.iter().flatten().count(); + assert_eq!(records.take_all().count(), expected); + model.fill(None); + } + } + records.validate().unwrap(); + assert_eq!(records.len(), model.iter().flatten().count()); + assert_eq!(records.next_id(), model.len()); + let actual = records + .iter() + .map(|entry| (&entry.key, &entry.value)) + .collect::>(); + let expected = model + .iter() + .flatten() + .map(|&(key, value)| record(key, value)) + .collect::>(); + assert_eq!( + actual, + expected + .iter() + .map(|entry| (&entry.key, &entry.value)) + .collect::>() + ); + } + } + + #[test] + fn collection_record_identity_exhaustion_rejects_before_mutation() { + let mut records = CollectionRecords::default(); + records.next_id = usize::MAX; + assert!(matches!( + records.preflight_insert(), + Err(HeapError::Overflow { .. }) + )); + assert!(records.is_empty()); + } +} diff --git a/src/engine/heap/collections.rs b/src/engine/heap/collections.rs index 4b57bbf6..bf454de2 100644 --- a/src/engine/heap/collections.rs +++ b/src/engine/heap/collections.rs @@ -4,24 +4,12 @@ //! These operations maintain records and transfer or release their owned heap edges. use super::{ - Atom, Heap, HeapCleanup, HeapError, MapIteratorKind, NodeData, ObjectData, ObjectId, - ObjectPayload, RawId, RawValue, SetIteratorKind, SlotState, is_map_storable_value, - raw_value_atom, raw_value_edges, + Atom, CollectionRecords, Heap, HeapCleanup, HeapError, MapIteratorKind, MapRecord, NodeData, + ObjectData, ObjectId, ObjectPayload, RawId, RawValue, SetIteratorKind, SlotState, + is_map_storable_value, raw_value_atom, raw_value_edges, }; use std::collections::{HashMap, HashSet}; -/// One stable insertion-order slot in a genuine Map. -/// -/// Deletion clears `key` and resets `value` to `undefined` rather than -/// removing the record. Stable indices are observable through live Map -/// iterators: deleting and re-adding a key appends a fresh record, and records -/// appended after iterator creation remain visible until exhaustion. -#[derive(Clone, Debug, PartialEq)] -pub struct MapRecord { - pub key: Option, - pub value: RawValue, -} - /// Printer-only snapshot of Map/Set records retained by live iterators. /// /// The heap arena is intentionally scanned once for both collection classes. @@ -68,8 +56,8 @@ struct WeakCollectionRecord { /// O(1) weak-record storage in QuickJS insertion order. /// -/// Unlike ordinary Map, weak collections expose no live iterator and need no -/// tombstones. Deletion unlinks and removes the hash entry, while re-adding +/// Weak collections expose no live iterator, so identity-linked ordering needs +/// no monotonic cursor index. Deletion removes the entry, while re-adding /// the same identity appends a fresh record at the tail. #[derive(Clone, Debug, PartialEq)] pub struct WeakCollectionRecords { @@ -313,9 +301,27 @@ impl WeakCollectionRecords { } impl Heap { - /// Borrow the stable insertion-order record array of one genuine Map. - /// Tombstones remain present with a `None` key and `undefined` value. - pub fn map_records(&self, id: ObjectId) -> Result<&[MapRecord], HeapError> { + /// Resolve a validated key without snapshots or per-candidate root handles. + pub(crate) fn map_find_record( + &self, + id: ObjectId, + key: &RawValue, + ) -> Result, HeapError> { + if !is_map_storable_value(key) { + return Err(HeapError::Invariant( + "Map lookup contains an internal value sentinel", + )); + } + match &self.object(id)?.payload { + ObjectPayload::Map { records } => Ok(records.find(key)), + _ => Err(HeapError::Invariant( + "Map lookup reached an object with the wrong class", + )), + } + } + + /// Borrow live Map records by stable insertion identity. + pub fn map_records(&self, id: ObjectId) -> Result<&CollectionRecords, HeapError> { match &self.object(id)?.payload { ObjectPayload::Map { records, .. } => Ok(records), _ => Err(HeapError::Invariant( @@ -327,7 +333,7 @@ impl Heap { /// Read the number of live records in one genuine Map. pub fn map_size(&self, id: ObjectId) -> Result { match &self.object(id)?.payload { - ObjectPayload::Map { size, .. } => Ok(*size), + ObjectPayload::Map { records } => Ok(records.len()), _ => Err(HeapError::Invariant( "Map size requested for an object with the wrong class", )), @@ -349,10 +355,8 @@ impl Heap { "Map record contains an internal value sentinel", )); } - let next_size = match &self.object(id)?.payload { - ObjectPayload::Map { size, .. } => size.checked_add(1).ok_or(HeapError::Overflow { - operation: "growing Map size", - })?, + match &self.object(id)?.payload { + ObjectPayload::Map { records } => records.preflight_insert()?, _ => { return Err(HeapError::Invariant( "Map insertion reached an object with the wrong class", @@ -364,22 +368,10 @@ impl Heap { new_edges.extend(raw_value_edges(&value)); self.retain_edges_transactionally(&new_edges)?; - let ObjectPayload::Map { - records, - live_indices, - size, - } = &mut self.object_mut(id)?.payload - else { + let ObjectPayload::Map { records } = &mut self.object_mut(id)?.payload else { unreachable!("Map payload was validated before retaining record edges") }; - let record_index = records.len(); - records.push(MapRecord { - key: Some(key), - value, - }); - let inserted = live_indices.insert(record_index); - debug_assert!(inserted, "fresh Map record index was already live"); - *size = next_size; + records.insert(MapRecord { key, value }); Ok(HeapCleanup::default()) } @@ -399,10 +391,7 @@ impl Heap { )); } match &self.object(id)?.payload { - ObjectPayload::Map { records, .. } - if records - .get(index) - .is_some_and(|record| record.key.is_some()) => {} + ObjectPayload::Map { records, .. } if records.get(index).is_some() => {} ObjectPayload::Map { .. } => { return Err(HeapError::Invariant( "Map value replacement requires a live record index", @@ -421,7 +410,9 @@ impl Heap { let ObjectPayload::Map { records, .. } = &mut self.object_mut(id)?.payload else { unreachable!("Map payload was validated before retaining replacement edges") }; - std::mem::replace(&mut records[index].value, value) + records + .replace_value(index, value) + .expect("validated live Map record") }; let mut cleanup = HeapCleanup::default(); @@ -433,44 +424,24 @@ impl Heap { Ok(cleanup) } - /// Turn a caller-resolved live Map record into a tombstone without - /// changing stable record indices. Owned key/value edges and Symbol atoms - /// are detached together. + /// Remove a live Map record without reusing its ID. Owned key/value edges + /// and Symbol atoms are detached together. pub fn map_delete_record( &mut self, id: ObjectId, index: usize, ) -> Result { let (key, value) = { - let ObjectPayload::Map { - records, - live_indices, - size, - } = &mut self.object_mut(id)?.payload - else { + let ObjectPayload::Map { records } = &mut self.object_mut(id)?.payload else { return Err(HeapError::Invariant( "Map deletion reached an object with the wrong class", )); }; - if *size == 0 { - return Err(HeapError::Invariant( - "Map deletion requires a live record index", - )); - } - let record = records.get_mut(index).ok_or(HeapError::Invariant( - "Map deletion requires a live record index", - ))?; - if record.key.is_none() || !live_indices.remove(&index) { - return Err(HeapError::Invariant( - "Map deletion requires a live record index", - )); - } - let key = record.key.take().ok_or(HeapError::Invariant( + let record = records.remove(index).ok_or(HeapError::Invariant( "Map deletion requires a live record index", ))?; - let value = std::mem::replace(&mut record.value, RawValue::Undefined); - *size -= 1; - (key, value) + let key = record.key; + (key, record.value) }; let mut cleanup = HeapCleanup::default(); @@ -486,35 +457,22 @@ impl Heap { Ok(cleanup) } - /// Tombstone every live Map record while preserving the record array for - /// existing iterators. All detached edges and Symbol atoms are finalized - /// after the object mutation has completed. + /// Remove every live Map record while preserving the insertion ID clock. + /// Detached edges and Symbol atoms are finalized after payload mutation. pub fn map_clear(&mut self, id: ObjectId) -> Result { let removed = { - let ObjectPayload::Map { - records, - live_indices, - size, - } = &mut self.object_mut(id)?.payload - else { + let ObjectPayload::Map { records } = &mut self.object_mut(id)?.payload else { return Err(HeapError::Invariant( "Map clear reached an object with the wrong class", )); }; - let mut removed = Vec::with_capacity(*size); - for record in records { - if let Some(key) = record.key.take() { - let value = std::mem::replace(&mut record.value, RawValue::Undefined); - removed.push((key, value)); - } - } - live_indices.clear(); - *size = 0; - removed + records.take_all() }; let mut cleanup = HeapCleanup::default(); - for (key, value) in removed { + for record in removed { + let key = record.key; + let value = record.value; cleanup.atoms.extend(raw_value_atom(&key)); cleanup.atoms.extend(raw_value_atom(&value)); for edge in raw_value_edges(&key) @@ -650,10 +608,27 @@ impl Heap { self.drain_zero_queue() } - /// Borrow the stable insertion-order record array of one genuine Set. - /// Live elements occupy `key`; both live and tombstoned `value` slots are - /// always `undefined`. - pub fn set_records(&self, id: ObjectId) -> Result<&[MapRecord], HeapError> { + /// Set uses the same non-owning index and key semantics as Map. + pub(crate) fn set_find_record( + &self, + id: ObjectId, + key: &RawValue, + ) -> Result, HeapError> { + if !is_map_storable_value(key) { + return Err(HeapError::Invariant( + "Set lookup contains an internal value sentinel", + )); + } + match &self.object(id)?.payload { + ObjectPayload::Set { records } => Ok(records.find(key)), + _ => Err(HeapError::Invariant( + "Set lookup reached an object with the wrong class", + )), + } + } + + /// Borrow live Set records. Elements occupy `key`; values are undefined. + pub fn set_records(&self, id: ObjectId) -> Result<&CollectionRecords, HeapError> { match &self.object(id)?.payload { ObjectPayload::Set { records, .. } => Ok(records), _ => Err(HeapError::Invariant( @@ -665,7 +640,7 @@ impl Heap { /// Read the number of live records in one genuine Set. pub fn set_size(&self, id: ObjectId) -> Result { match &self.object(id)?.payload { - ObjectPayload::Set { size, .. } => Ok(*size), + ObjectPayload::Set { records } => Ok(records.len()), _ => Err(HeapError::Invariant( "Set size requested for an object with the wrong class", )), @@ -686,10 +661,8 @@ impl Heap { "Set record contains an internal value sentinel", )); } - let next_size = match &self.object(id)?.payload { - ObjectPayload::Set { size, .. } => size.checked_add(1).ok_or(HeapError::Overflow { - operation: "growing Set size", - })?, + match &self.object(id)?.payload { + ObjectPayload::Set { records } => records.preflight_insert()?, _ => { return Err(HeapError::Invariant( "Set insertion reached an object with the wrong class", @@ -700,67 +673,41 @@ impl Heap { let new_edges = raw_value_edges(&key); self.retain_edges_transactionally(&new_edges)?; - let ObjectPayload::Set { - records, - live_indices, - size, - } = &mut self.object_mut(id)?.payload - else { + let ObjectPayload::Set { records } = &mut self.object_mut(id)?.payload else { unreachable!("Set payload was validated before retaining record edges") }; - let record_index = records.len(); - records.push(MapRecord { - key: Some(key), + records.insert(MapRecord { + key, value: RawValue::Undefined, }); - let inserted = live_indices.insert(record_index); - debug_assert!(inserted, "fresh Set record index was already live"); - *size = next_size; Ok(HeapCleanup::default()) } - /// Turn a caller-resolved live Set record into a tombstone without - /// changing stable record indices. The owned element edge and Symbol atom - /// are detached together. + /// Remove a live Set record without reusing its ID. The owned element + /// edge and Symbol atom are detached together. pub fn set_delete_record( &mut self, id: ObjectId, index: usize, ) -> Result { let key = { - let ObjectPayload::Set { - records, - live_indices, - size, - } = &mut self.object_mut(id)?.payload - else { + let ObjectPayload::Set { records } = &mut self.object_mut(id)?.payload else { return Err(HeapError::Invariant( "Set deletion reached an object with the wrong class", )); }; - if *size == 0 { - return Err(HeapError::Invariant( - "Set deletion requires a live record index", - )); - } - let record = records.get_mut(index).ok_or(HeapError::Invariant( + let existing = records.get(index).ok_or(HeapError::Invariant( "Set deletion requires a live record index", ))?; - if !matches!(record.value, RawValue::Undefined) { + if !matches!(existing.value, RawValue::Undefined) { return Err(HeapError::Invariant( "Set record value slot is not undefined", )); } - if record.key.is_none() || !live_indices.remove(&index) { - return Err(HeapError::Invariant( - "Set deletion requires a live record index", - )); - } - let key = record.key.take().ok_or(HeapError::Invariant( + let record = records.remove(index).ok_or(HeapError::Invariant( "Set deletion requires a live record index", ))?; - *size -= 1; - key + record.key }; let mut cleanup = HeapCleanup::default(); @@ -772,42 +719,21 @@ impl Heap { Ok(cleanup) } - /// Tombstone every live Set record while preserving stable indices for - /// existing iterators. Detached edges and Symbol atoms are finalized only - /// after the payload mutation completes. + /// Remove every live Set record while preserving the insertion ID clock. + /// Detached edges and Symbol atoms are finalized after payload mutation. pub fn set_clear(&mut self, id: ObjectId) -> Result { let removed = { - let ObjectPayload::Set { - records, - live_indices, - size, - } = &mut self.object_mut(id)?.payload - else { + let ObjectPayload::Set { records } = &mut self.object_mut(id)?.payload else { return Err(HeapError::Invariant( "Set clear reached an object with the wrong class", )); }; - if records - .iter() - .any(|record| !matches!(record.value, RawValue::Undefined)) - { - return Err(HeapError::Invariant( - "Set record value slot is not undefined", - )); - } - let mut removed = Vec::with_capacity(*size); - for record in records { - if let Some(key) = record.key.take() { - removed.push(key); - } - } - live_indices.clear(); - *size = 0; - removed + records.take_all() }; let mut cleanup = HeapCleanup::default(); - for key in removed { + for record in removed { + let key = record.key; cleanup.atoms.extend(raw_value_atom(&key)); for edge in raw_value_edges(&key) { self.release_raw_no_drain(edge)?; diff --git a/src/engine/heap/dictionary_storage.rs b/src/engine/heap/dictionary_storage.rs new file mode 100644 index 00000000..b3b0a096 --- /dev/null +++ b/src/engine/heap/dictionary_storage.rs @@ -0,0 +1,91 @@ +//! Exclusive dictionary property-layout mutations. All fallible validation and +//! retains precede publication; moved slots transfer ownership without cloning. + +use super::*; + +impl Heap { + pub(crate) fn enable_object_dictionary(&mut self, id: ObjectId) -> Result<(), HeapError> { + let shape = self.exclusive_dictionary_shape(id)?; + self.shape_mut(shape)?.enable_dictionary(); + Ok(()) + } + + fn exclusive_dictionary_shape(&self, id: ObjectId) -> Result { + let object = self.object(id)?; + if !object.supports_dictionary_layout() { + return Err(HeapError::Invariant( + "dictionary mutation requires an ordinary object or slow Array", + )); + } + let shape = self.shape(object.shape)?; + if self.shape_strong_count(object.shape)? != 1 + || shape.entries().len() != object.slots.len() + { + return Err(HeapError::Invariant( + "dictionary mutation requires an exclusive parallel layout", + )); + } + Ok(object.shape) + } + + pub(crate) fn delete_dictionary_property( + &mut self, + id: ObjectId, + atom: Atom, + ) -> Result { + let shape_id = self.exclusive_dictionary_shape(id)?; + let shape = self.shape(shape_id)?; + let index = shape.find(atom).ok_or(HeapError::Invariant( + "dictionary deletion requires an existing property", + ))? as usize; + if !shape.is_dictionary() || !shape.entries()[index].flags.configurable { + return Err(HeapError::Invariant( + "dictionary deletion requires configurable dictionary storage", + )); + } + self.shape_mut(shape_id)? + .remove_dictionary_property(atom) + .expect("dictionary key was validated before mutation"); + let slots = &mut self.object_mut(id)?.slots; + let previous = slots.swap_remove(index); + let len = slots.len(); + if slots.capacity() > len.saturating_mul(4).saturating_add(16) { + slots.shrink_to(len.saturating_mul(2).saturating_add(8)); + } + let mut cleanup = HeapCleanup::default(); + cleanup.atoms.push(atom); + cleanup.atoms.extend(property_slot_atoms(&previous)); + for edge in property_slot_edges(&previous) { + self.release_raw_no_drain(edge)?; + } + cleanup.merge(self.drain_zero_queue()?); + Ok(cleanup) + } + + pub(crate) fn replace_dictionary_property( + &mut self, + id: ObjectId, + index: usize, + flags: PropertyFlags, + replacement: PropertySlot, + ) -> Result { + let shape_id = self.exclusive_dictionary_shape(id)?; + let shape = self.shape(shape_id)?; + if !shape.is_dictionary() || index >= shape.entries().len() { + return Err(HeapError::Invariant( + "dictionary replacement requires an existing dictionary slot", + )); + } + if !slot_matches_storage(&replacement, flags.storage) + || matches!(replacement, PropertySlot::Data(RawValue::Private(_))) + { + return Err(HeapError::Invariant( + "invalid dictionary replacement storage", + )); + } + self.retain_edges_transactionally(&property_slot_edges(&replacement))?; + self.shape_mut(shape_id)? + .replace_dictionary_flags(index, flags); + self.replace_retained_object_slot(id, index, replacement) + } +} diff --git a/src/engine/heap/gc.rs b/src/engine/heap/gc.rs index d4eae50d..5c86ff99 100644 --- a/src/engine/heap/gc.rs +++ b/src/engine/heap/gc.rs @@ -980,6 +980,24 @@ impl Heap { &mut self, edges: &[RawId], ) -> Result<(), HeapError> { + // Property updates usually carry zero, one or two edges. Preflight + // this bounded list directly, including the accessor get == set case. + if edges.len() <= 2 { + if let Some(&first) = edges.first() { + let duplicate = edges.get(1) == Some(&first); + self.preflight_edge_retain(first, if duplicate { 2 } else { 1 })?; + if let Some(&second) = edges.get(1) { + if !duplicate { + self.preflight_edge_retain(second, 1)?; + } + } + for &edge in edges { + self.retain_raw(edge, 1) + .expect("preflighted small edge retain failed before publication"); + } + } + return Ok(()); + } let mut counts = HashMap::::new(); for &edge in edges { let count = counts.entry(edge).or_default(); @@ -991,10 +1009,7 @@ impl Heap { // A complete preflight makes the following increments infallible and // avoids a rollback path that could itself need to report atom cleanup. for (&edge, &additional) in &counts { - let strong = self.live_node(edge)?.strong; - strong.checked_add(additional).ok_or(HeapError::Overflow { - operation: "retaining outgoing heap edges", - })?; + self.preflight_edge_retain(edge, additional)?; } for (edge, additional) in counts { self.retain_raw(edge, additional) @@ -1003,6 +1018,16 @@ impl Heap { Ok(()) } + fn preflight_edge_retain(&self, edge: RawId, additional: u32) -> Result<(), HeapError> { + self.live_node(edge)? + .strong + .checked_add(additional) + .ok_or(HeapError::Overflow { + operation: "retaining outgoing heap edges", + })?; + Ok(()) + } + pub(super) fn retain_raw(&mut self, id: RawId, additional: u32) -> Result<(), HeapError> { let node = self.live_node_mut(id)?; node.strong = node @@ -1361,17 +1386,15 @@ pub(super) fn object_edges(object: &ObjectData) -> Vec { ObjectPayload::Map { records, .. } => records .iter() .map(|record| { - record - .key - .as_ref() - .map_or(0, |key| raw_value_edges(key).len()) + raw_value_edges(&record.key) + .len() .saturating_add(raw_value_edges(&record.value).len()) }) .sum(), ObjectPayload::MapIterator { .. } => 1, ObjectPayload::Set { records, .. } => records .iter() - .filter_map(|record| record.key.as_ref()) + .map(|record| &record.key) .map(|key| raw_value_edges(key).len()) .sum(), ObjectPayload::SetIterator { .. } => 1, @@ -1475,21 +1498,17 @@ pub(super) fn object_edges(object: &ObjectData) -> Vec { edges.extend(object.map(RawId::Object)); } ObjectPayload::Map { records, .. } => { - for record in records { - if let Some(key) = &record.key { - edges.extend(raw_value_edges(key)); - edges.extend(raw_value_edges(&record.value)); - } + for record in records.iter() { + edges.extend(raw_value_edges(&record.key)); + edges.extend(raw_value_edges(&record.value)); } } ObjectPayload::MapIterator { object, .. } => { edges.extend(object.map(RawId::Object)); } ObjectPayload::Set { records, .. } => { - for record in records { - if let Some(key) = &record.key { - edges.extend(raw_value_edges(key)); - } + for record in records.iter() { + edges.extend(raw_value_edges(&record.key)); } } ObjectPayload::SetIterator { object, .. } => { @@ -2004,17 +2023,14 @@ pub(super) fn object_atoms(object: &ObjectData) -> impl Iterator + ObjectPayload::Map { records, .. } => records .iter() .flat_map(|record| { - record - .key - .as_ref() - .and_then(raw_value_atom) + raw_value_atom(&record.key) .into_iter() .chain(raw_value_atom(&record.value)) }) .collect::>(), ObjectPayload::Set { records, .. } => records .iter() - .filter_map(|record| record.key.as_ref().and_then(raw_value_atom)) + .filter_map(|record| raw_value_atom(&record.key)) .collect::>(), ObjectPayload::WeakMap { records } => records .values() diff --git a/src/engine/heap/mod.rs b/src/engine/heap/mod.rs index ad9b254f..03d16b66 100644 --- a/src/engine/heap/mod.rs +++ b/src/engine/heap/mod.rs @@ -42,6 +42,8 @@ use gc::{ raw_module_record_edges, raw_value_atom, raw_value_edges, raw_value_matches_weak_key, shape_edges, var_ref_edges, }; +mod collection_index; +mod collection_records; mod collections; use crate::engine::code::bytecode_validation; use bytecode_validation::{ @@ -50,8 +52,9 @@ use bytecode_validation::{ validate_eval_environment_phase_layout, validate_parameter_bytecode_layout, validate_parameter_initializer_scope_layout, validate_pattern_parameter_bytecode_layout, }; +pub use collection_records::{CollectionRecords, MapRecord}; pub(crate) use collections::CollectionIteratorCurrentIndices; -pub use collections::{MapRecord, WeakCollectionKey, WeakCollectionRecords}; +pub use collections::{WeakCollectionKey, WeakCollectionRecords}; mod private_validation; use crate::engine::api::error::NativeErrorKind; use crate::engine::atom::Atom; @@ -78,7 +81,7 @@ use crate::engine::value::JsString; use crate::engine::value::bigint::JsBigInt; use crate::regexp::CompiledRegExp; -use std::collections::{BTreeSet, HashMap, HashSet, VecDeque}; +use std::collections::{HashMap, HashSet, VecDeque}; use std::error::Error; use std::fmt; use std::hash::Hash; @@ -388,6 +391,7 @@ pub(crate) mod profiling; mod realm_storage; +mod dictionary_storage; mod object_storage; mod binding_storage; diff --git a/src/engine/heap/module_records.rs b/src/engine/heap/module_records.rs index 0a9d4524..0b399025 100644 --- a/src/engine/heap/module_records.rs +++ b/src/engine/heap/module_records.rs @@ -64,7 +64,9 @@ pub(crate) enum RawModuleResolutionState { #[derive(Clone, Debug, PartialEq)] pub(crate) struct RawModuleInstance { - pub(crate) slots: Vec>, + /// Borrowed module snapshots share the slot vector. Copy only when a binding + /// is installed, never for each export lookup during namespace construction. + pub(crate) slots: Rc<[Option]>, pub(crate) callable: Option, } @@ -156,6 +158,9 @@ pub(crate) struct RawModuleRecord { pub(crate) requested_modules: Rc>, pub(crate) imports: Rc<[ModuleImport]>, pub(crate) exports: Rc<[RawPublishedModuleExport]>, + /// Derived from immutable import/export tables at heap publication. Snapshots + /// share these indexes; metadata-only replacements reuse the current indexes. + pub(crate) lookup_indexes: Rc, pub(crate) star_exports: Rc<[ModuleStarExport]>, pub(crate) resolution: RawModuleResolutionState, pub(crate) instance: Option, @@ -192,6 +197,46 @@ pub(crate) struct RawModuleRecord { pub(crate) compile_realm: ContextId, } +#[derive(Clone, Debug, Default, PartialEq)] +pub(crate) struct ModuleLookupIndexes { + exports_by_name: HashMap, + imports_by_closure: HashMap, +} + +impl RawModuleRecord { + pub(in crate::engine::heap) fn rebuild_lookup_indexes(&mut self) { + let mut indexes = ModuleLookupIndexes::default(); + for (index, export) in self.exports.iter().enumerate() { + indexes + .exports_by_name + .entry(export.export_name.clone()) + .or_insert(index); + } + for (index, import) in self.imports.iter().enumerate() { + indexes + .imports_by_closure + .entry(import.closure_index) + .or_insert(index); + } + self.lookup_indexes = Rc::new(indexes); + } + + /// Direct export lookup only; star exports, cycles and ambiguity are resolved + /// by the module language layer, not cached here. + pub(crate) fn export_named( + &self, + name: &JsString, + ) -> Option<(usize, &RawPublishedModuleExport)> { + let index = *self.lookup_indexes.exports_by_name.get(name)?; + Some((index, &self.exports[index])) + } + + pub(crate) fn import_for_closure(&self, closure_index: u16) -> Option<&ModuleImport> { + let index = *self.lookup_indexes.imports_by_closure.get(&closure_index)?; + Some(&self.imports[index]) + } +} + pub(in crate::engine::heap) fn module_record_has_pristine_construction_metadata( record: &RawModuleRecord, ) -> bool { @@ -294,6 +339,7 @@ pub(in crate::engine::heap) fn aborted_module_record(record: &RawModuleRecord) - requested_modules: Rc::new(Vec::new()), imports: Rc::from([]), exports: Rc::from([]), + lookup_indexes: Rc::default(), star_exports: Rc::from([]), resolution: RawModuleResolutionState::Unresolved, instance: None, diff --git a/src/engine/heap/module_storage.rs b/src/engine/heap/module_storage.rs index d3259d36..8ef048d7 100644 --- a/src/engine/heap/module_storage.rs +++ b/src/engine/heap/module_storage.rs @@ -762,9 +762,10 @@ impl Heap { pub(crate) fn publish_loaded_module( &mut self, cache: ContextId, - record: RawModuleRecord, + mut record: RawModuleRecord, ) -> Result { self.validate_loaded_module_record(cache, None, &record)?; + record.rebuild_lookup_indexes(); let cache_index = self.live_index(RawId::Context(cache))?; { let NodeData::Context(context) = &mut self.live_node_mut(RawId::Context(cache))?.data @@ -819,7 +820,7 @@ impl Heap { pub(crate) fn replace_loaded_module( &mut self, module: RawModuleRef, - replacement: RawModuleRecord, + mut replacement: RawModuleRecord, ) -> Result { let current = self.loaded_module(module)?; self.validate_loaded_module_record(module.cache, Some(module.module), &replacement)?; @@ -836,6 +837,13 @@ impl Heap { )); } validate_module_body_replacement(¤t, &replacement)?; + if Rc::ptr_eq(¤t.imports, &replacement.imports) + && Rc::ptr_eq(¤t.exports, &replacement.exports) + { + replacement.lookup_indexes = current.lookup_indexes.clone(); + } else { + replacement.rebuild_lookup_indexes(); + } let cache_index = self.live_index(RawId::Context(module.cache))?; let old_edges = raw_module_record_edges(¤t); diff --git a/src/engine/heap/object_records.rs b/src/engine/heap/object_records.rs index 1566d21d..059ca24c 100644 --- a/src/engine/heap/object_records.rs +++ b/src/engine/heap/object_records.rs @@ -264,20 +264,13 @@ pub enum ObjectPayload { full_unicode: bool, done: bool, }, - /// `JS_CLASS_MAP`: stable insertion-order records plus the live-entry - /// count used by the `size` getter. Tombstones are never compacted while - /// the Map is live, preserving mutation-sensitive iterator semantics. + /// `JS_CLASS_MAP`: live records with monotonic insertion IDs. Deletion + /// releases physical storage; IDs survive only in iterator/callback cursors. Map { - records: Vec, - /// Ordered stable indices of live records. Historical tombstones stay - /// in `records` for iterators, but bounded diagnostic traversal does - /// not need to rescan them. - live_indices: BTreeSet, - size: usize, + records: CollectionRecords, }, /// `JS_CLASS_MAP_ITERATOR`: the source Map remains an owned edge until - /// exhaustion, while `next_index` walks stable record indices and skips - /// tombstones in the runtime layer. + /// exhaustion, while `next_index` seeks the next live insertion ID. MapIterator { object: Option, next_index: usize, @@ -291,10 +284,7 @@ pub enum ObjectPayload { /// live record stores its element in `key` and keeps `value` exactly /// `undefined`. A distinct payload preserves the unforgeable Set brand. Set { - records: Vec, - /// Ordered stable indices of live elements; see the Map counterpart. - live_indices: BTreeSet, - size: usize, + records: CollectionRecords, }, /// `JS_CLASS_SET_ITERATOR`: the source Set remains an owned edge until /// exhaustion. `kind` distinguishes value iteration from entry-pair @@ -490,6 +480,17 @@ pub struct ObjectData { } impl ObjectData { + /// Classes whose ordinary property slots may use a mutable dictionary. + /// Slow Arrays retain their separate ArraySetLength/index semantics; only + /// their shape/slot storage is shared with ordinary dynamic objects. + pub(crate) fn supports_dictionary_layout(&self) -> bool { + matches!( + (self.kind, &self.payload), + (ObjectKind::Ordinary, ObjectPayload::Ordinary) + | (ObjectKind::Array, ObjectPayload::Array { dense: None }) + ) + } + /// Construct an ordinary extensible object with a mutable prototype. #[must_use] pub const fn ordinary(shape: ShapeId, slots: Vec) -> Self { @@ -764,7 +765,7 @@ impl ObjectData { /// [`Heap::map_insert_record`] after key equality has been resolved by the /// runtime's SameValueZero logic. #[must_use] - pub const fn map(shape: ShapeId, slots: Vec) -> Self { + pub fn map(shape: ShapeId, slots: Vec) -> Self { Self { shape, slots, @@ -775,9 +776,7 @@ impl ObjectData { is_constructor: false, kind: ObjectKind::Map, payload: ObjectPayload::Map { - records: Vec::new(), - live_indices: BTreeSet::new(), - size: 0, + records: CollectionRecords::default(), }, } } @@ -812,7 +811,7 @@ impl ObjectData { /// [`Heap::set_insert_record`] after the runtime resolves SameValueZero /// equality. The shared record value slot remains `undefined`. #[must_use] - pub const fn set(shape: ShapeId, slots: Vec) -> Self { + pub fn set(shape: ShapeId, slots: Vec) -> Self { Self { shape, slots, @@ -823,9 +822,7 @@ impl ObjectData { is_constructor: false, kind: ObjectKind::Set, payload: ObjectPayload::Set { - records: Vec::new(), - live_indices: BTreeSet::new(), - size: 0, + records: CollectionRecords::default(), }, } } diff --git a/src/engine/heap/object_storage.rs b/src/engine/heap/object_storage.rs index 33153721..346a3e51 100644 --- a/src/engine/heap/object_storage.rs +++ b/src/engine/heap/object_storage.rs @@ -606,6 +606,16 @@ impl Heap { let new_edges = property_slot_edges(&replacement); self.retain_edges_transactionally(&new_edges)?; + self.replace_retained_object_slot(id, slot_index, replacement) + } + + /// Commit a validated replacement after its edges have been retained. + pub(super) fn replace_retained_object_slot( + &mut self, + id: ObjectId, + slot_index: usize, + replacement: PropertySlot, + ) -> Result { let previous = { let object = self.object_mut(id)?; let slot = object @@ -1026,6 +1036,12 @@ impl Heap { &self, object: &ObjectData, ) -> Result<(), HeapError> { + let shape = self.shape(object.shape)?; + if !shape.dictionary_layout_is_valid() + || (shape.is_dictionary() && !object.supports_dictionary_layout()) + { + return Err(HeapError::Invariant("invalid dictionary object layout")); + } if !matches!( (object.kind, &object.payload), ( @@ -1794,45 +1810,15 @@ impl Heap { )); } } - if let ObjectPayload::Map { - records, - live_indices, - size, - } = &object.payload - { - let mut live = 0usize; - let mut expected_indices = BTreeSet::new(); - for (index, record) in records.iter().enumerate() { - match &record.key { - Some(key) => { - if !is_map_storable_value(key) || !is_map_storable_value(&record.value) { - return Err(HeapError::Invariant( - "Map record contains an internal value sentinel", - )); - } - live = live.checked_add(1).ok_or(HeapError::Overflow { - operation: "validating Map size", - })?; - expected_indices.insert(index); - } - None if !matches!(record.value, RawValue::Undefined) => { - return Err(HeapError::Invariant( - "Map tombstone retains a value payload", - )); - } - None => {} + if let ObjectPayload::Map { records } = &object.payload { + for record in records.iter() { + if !is_map_storable_value(&record.key) || !is_map_storable_value(&record.value) { + return Err(HeapError::Invariant( + "Map record contains an internal value sentinel", + )); } } - if live != *size { - return Err(HeapError::Invariant( - "Map live record count does not match its payload", - )); - } - if *live_indices != expected_indices { - return Err(HeapError::Invariant( - "Map live index does not match its record layout", - )); - } + records.validate()?; } if let ObjectPayload::MapIterator { object: source, @@ -1848,7 +1834,9 @@ impl Heap { "Map Iterator source does not have the Map class", )); }; - if current.is_some_and(|index| index >= *next_index || index >= records.len()) { + if current + .is_some_and(|index| index >= *next_index || index >= records.next_id()) + { return Err(HeapError::Invariant( "Map Iterator current record is outside its stable cursor", )); @@ -1862,42 +1850,20 @@ impl Heap { } } } - if let ObjectPayload::Set { - records, - live_indices, - size, - } = &object.payload - { - let mut live = 0usize; - let mut expected_indices = BTreeSet::new(); - for (index, record) in records.iter().enumerate() { + if let ObjectPayload::Set { records } = &object.payload { + for record in records.iter() { if !matches!(record.value, RawValue::Undefined) { return Err(HeapError::Invariant( "Set record value slot is not undefined", )); } - if let Some(key) = &record.key { - if !is_map_storable_value(key) { - return Err(HeapError::Invariant( - "Set record contains an internal value sentinel", - )); - } - live = live.checked_add(1).ok_or(HeapError::Overflow { - operation: "validating Set size", - })?; - expected_indices.insert(index); + if !is_map_storable_value(&record.key) { + return Err(HeapError::Invariant( + "Set record contains an internal value sentinel", + )); } } - if live != *size { - return Err(HeapError::Invariant( - "Set live record count does not match its payload", - )); - } - if *live_indices != expected_indices { - return Err(HeapError::Invariant( - "Set live index does not match its record layout", - )); - } + records.validate()?; } if let ObjectPayload::SetIterator { object: source, @@ -1913,7 +1879,9 @@ impl Heap { "Set Iterator source does not have the Set class", )); }; - if current.is_some_and(|index| index >= *next_index || index >= records.len()) { + if current + .is_some_and(|index| index >= *next_index || index >= records.next_id()) + { return Err(HeapError::Invariant( "Set Iterator current record is outside its stable cursor", )); diff --git a/src/engine/heap/runtime/README.md b/src/engine/heap/runtime/README.md index 56a44695..5e878f5c 100644 --- a/src/engine/heap/runtime/README.md +++ b/src/engine/heap/runtime/README.md @@ -10,3 +10,5 @@ - [tests/](tests/README.md):子模块职责与文件说明。 - [tests.rs](tests.rs):模块回归测试。 - [builtin_batch_tests.rs](builtin_batch_tests.rs):内建方法批量发布、惰性属性和失败回滚测试。 + +- [layout.rs](layout.rs):准备完毕的对象布局发布;集中处理 shape/slot 原子引用与失败回滚,不拥有 Arguments/RegExp 的语言语义。 diff --git a/src/engine/heap/runtime/layout.rs b/src/engine/heap/runtime/layout.rs new file mode 100644 index 00000000..d80dbc47 --- /dev/null +++ b/src/engine/heap/runtime/layout.rs @@ -0,0 +1,74 @@ +//! Publication of a prepared object layout. Language-specific builders own +//! property order and descriptors; this boundary owns atom rollback and heap +//! publication. Raw slots are borrowed from roots kept alive by the caller. + +use super::*; +use crate::engine::heap::ObjectData; + +impl RuntimeState { + pub(crate) fn allocate_object_with_layout( + &mut self, + prototype: Option, + entries: &[ShapeEntry], + slots: Vec, + build: impl FnOnce(ShapeId, Vec) -> ObjectData, + ) -> Result { + let shape = self.get_or_create_shape(prototype, entries)?; + let atoms = match self.retain_slot_atoms(&slots) { + Ok(atoms) => atoms, + Err(error) => { + let cleanup = self.heap.release_shape(shape)?; + self.apply_cleanup(cleanup)?; + return Err(error); + } + }; + let result = self.heap.allocate_object(build(shape, slots)); + if result.is_err() { + self.release_atoms(atoms)?; + } + let cleanup = self.heap.release_shape(shape)?; + self.apply_cleanup(cleanup)?; + result.map_err(Into::into) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::engine::api::runtime::Runtime; + use crate::engine::object::shape::PropertyFlags; + + #[test] + fn prepared_layout_failure_rolls_back_shape_and_slot_atom_ownership() { + let runtime = Runtime::new(); + let key = runtime.intern_property_key("prepared").unwrap(); + let symbol = runtime.new_symbol(None).unwrap(); + let mut state = runtime.0.state.borrow_mut(); + let before_key = state.atoms.resolve(key.atom()).unwrap().ref_count; + let before_symbol = state.atoms.resolve(symbol.atom()).unwrap().ref_count; + let entries = [ShapeEntry { + atom: key.atom(), + flags: PropertyFlags::accessor(true, true), + }]; + let result = state.allocate_object_with_layout( + None, + &entries, + vec![PropertySlot::Data(RawValue::Symbol(symbol.atom()))], + ObjectData::ordinary, + ); + assert!( + result.is_err(), + "mismatched storage must fail before publication" + ); + assert_eq!( + state.atoms.resolve(key.atom()).unwrap().ref_count, + before_key + ); + assert_eq!( + state.atoms.resolve(symbol.atom()).unwrap().ref_count, + before_symbol + ); + assert!(state.shape_cache.is_empty()); + assert!(state.shape_fingerprints.is_empty()); + } +} diff --git a/src/engine/heap/runtime/mod.rs b/src/engine/heap/runtime/mod.rs index fc563707..28108c57 100644 --- a/src/engine/heap/runtime/mod.rs +++ b/src/engine/heap/runtime/mod.rs @@ -4,6 +4,7 @@ //! each context is a separate realm and execution surface. The heap and //! intrinsics extend this boundary; they are not hidden in the compiler or VM. +mod layout; use self::error::RuntimeError; use self::intrinsics::promise::HostPromiseRejectionTracker; use self::module::ModuleLoader; @@ -259,18 +260,7 @@ impl RuntimeState { self.shape_fingerprints.remove(&shape); } - let mut retained_atoms = Vec::with_capacity(entries.len()); - for entry in entries { - if let Err(error) = self.atoms.resolve(entry.atom) { - self.release_atoms(retained_atoms)?; - return Err(error.into()); - } - if let Err(error) = self.atoms.retain(entry.atom) { - self.release_atoms(retained_atoms)?; - return Err(error.into()); - } - retained_atoms.push(entry.atom); - } + let retained_atoms = self.retain_shape_atoms(entries)?; let shape = match Shape::new(prototype, entries.iter().copied()) { Ok(shape) => shape, @@ -291,6 +281,26 @@ impl RuntimeState { Ok(shape) } + pub(crate) fn retain_shape_atoms( + &mut self, + entries: &[ShapeEntry], + ) -> Result, RuntimeError> { + let mut retained_atoms = Vec::with_capacity(entries.len()); + for entry in entries { + if let Err(error) = self.atoms.resolve(entry.atom) { + self.release_atoms(retained_atoms)?; + return Err(error.into()); + } + if let Err(error) = self.atoms.retain(entry.atom) { + self.release_atoms(retained_atoms)?; + return Err(error.into()); + } + retained_atoms.push(entry.atom); + } + + Ok(retained_atoms) + } + pub(crate) fn retain_slot_atoms( &mut self, slots: &[PropertySlot], @@ -342,7 +352,24 @@ impl RuntimeState { entries: &[ShapeEntry], slots: Vec, ) -> Result<(), RuntimeError> { + if self + .heap + .shape(self.heap.object(object)?.shape)? + .is_dictionary() + { + return self.replace_dictionary_layout(object, prototype, entries, slots); + } let shape = self.get_or_create_shape(prototype, entries)?; + self.replace_layout_with_owned_shape(object, shape, slots) + } + + /// Consume the caller's shape reference on both success and rollback. + pub(crate) fn replace_layout_with_owned_shape( + &mut self, + object: ObjectId, + shape: ShapeId, + slots: Vec, + ) -> Result<(), RuntimeError> { let retained_atoms = match self.retain_slot_atoms(&slots) { Ok(atoms) => atoms, Err(error) => { @@ -383,7 +410,10 @@ impl RuntimeState { }; let shape_cleanup = self.heap.release_shape(shape)?; self.apply_cleanup(layout_cleanup)?; - self.apply_cleanup(shape_cleanup) + self.apply_cleanup(shape_cleanup)?; + // Preserve QuickJS's slow-form flag, but do not keep rebuilding every + // property after a middle deletion or a non-default descriptor. + self.ensure_dictionary_layout(object) } pub(crate) fn apply_cleanup(&mut self, cleanup: HeapCleanup) -> Result<(), RuntimeError> { diff --git a/src/engine/heap/tests.rs b/src/engine/heap/tests.rs index 5204dc8f..9b47b6e4 100644 --- a/src/engine/heap/tests.rs +++ b/src/engine/heap/tests.rs @@ -30,6 +30,35 @@ fn empty_shape(heap: &mut Heap) -> ShapeId { heap.allocate_shape(Shape::new(None, []).unwrap()).unwrap() } +#[test] +fn small_edge_transactions_preflight_duplicates_and_late_failure() { + let mut heap = Heap::new(); + let first = empty_shape(&mut heap); + let second = empty_shape(&mut heap); + let first = RawId::Shape(first); + let second = RawId::Shape(second); + heap.retain_edges_transactionally(&[]).unwrap(); + heap.retain_edges_transactionally(&[first]).unwrap(); + assert_eq!(heap.live_node(first).unwrap().strong, 2); + heap.retain_edges_transactionally(&[first, first]).unwrap(); + assert_eq!(heap.live_node(first).unwrap().strong, 4); + heap.live_node_mut(second).unwrap().strong = u32::MAX; + assert!(heap.retain_edges_transactionally(&[first, second]).is_err()); + assert_eq!( + heap.live_node(first).unwrap().strong, + 4, + "later edge failure must not retain the first" + ); + heap.live_node_mut(first).unwrap().strong = u32::MAX - 1; + assert!(heap.retain_edges_transactionally(&[first, first]).is_err()); + assert_eq!(heap.live_node(first).unwrap().strong, u32::MAX - 1); + heap.live_node_mut(first).unwrap().strong = 1; + heap.live_node_mut(second).unwrap().strong = 1; + heap.retain_edges_transactionally(&[first, second]).unwrap(); + assert_eq!(heap.live_node(first).unwrap().strong, 2); + assert_eq!(heap.live_node(second).unwrap().strong, 2); +} + #[derive(Default)] struct RecordingFinalizationJobSink { jobs: VecDeque, diff --git a/src/engine/heap/tests/collections.rs b/src/engine/heap/tests/collections.rs index 99045e19..aeced456 100644 --- a/src/engine/heap/tests/collections.rs +++ b/src/engine/heap/tests/collections.rs @@ -2,6 +2,102 @@ use crate::engine::heap::native::{MapNativeKind, NativeCProto, SetNativeKind}; use super::*; +#[test] +fn collection_churn_reclaims_records_with_a_paused_iterator() { + let mut heap = Heap::new(); + let shape = empty_shape(&mut heap); + let map = heap + .allocate_object(ObjectData::map(shape, Vec::new())) + .unwrap(); + let iterator = heap + .allocate_object(ObjectData::map_iterator( + shape, + Vec::new(), + map, + MapIteratorKind::Key, + )) + .unwrap(); + for index in 0..4096 { + heap.map_insert_record(map, RawValue::Int(1), RawValue::Int(2)) + .unwrap(); + if index == 0 { + heap.set_map_iterator_index(iterator, 1).unwrap(); + heap.set_map_iterator_current(iterator, 0).unwrap(); + } + heap.map_delete_record(map, index).unwrap(); + } + assert_eq!( + heap.map_records(map).unwrap().len(), + 0, + "deleted history is not live storage" + ); + heap.map_insert_record(map, RawValue::Int(1), RawValue::Int(3)) + .unwrap(); + assert_eq!(heap.map_find_record(map, &RawValue::Int(1)), Ok(Some(4096))); + heap.map_clear(map).unwrap(); + heap.map_insert_record(map, RawValue::Int(1), RawValue::Int(4)) + .unwrap(); + assert_eq!(heap.map_find_record(map, &RawValue::Int(1)), Ok(Some(4097))); + heap.release_object(iterator).unwrap(); + heap.release_object(map).unwrap(); + heap.release_shape(shape).unwrap(); + assert_eq!(heap.counts().live, 0); +} + +#[test] +fn set_index_matches_zero_signs_and_survives_reinsertion() { + let mut heap = Heap::new(); + let shape = empty_shape(&mut heap); + let set = heap + .allocate_object(ObjectData::set(shape, Vec::new())) + .unwrap(); + heap.set_insert_record(set, RawValue::Int(0)).unwrap(); + assert_eq!( + heap.set_find_record(set, &RawValue::Float(-0.0)), + Ok(Some(0)) + ); + heap.set_delete_record(set, 0).unwrap(); + assert_eq!(heap.set_find_record(set, &RawValue::Int(0)), Ok(None)); + heap.set_insert_record(set, RawValue::Int(0)).unwrap(); + assert_eq!( + heap.set_find_record(set, &RawValue::Float(0.0)), + Ok(Some(1)) + ); + heap.set_clear(set).unwrap(); + assert_eq!(heap.set_find_record(set, &RawValue::Int(0)), Ok(None)); +} + +#[test] +fn map_index_matches_numeric_keys_and_survives_delete_and_clear() { + let mut heap = Heap::new(); + let shape = empty_shape(&mut heap); + let map = heap + .allocate_object(ObjectData::map(shape, Vec::new())) + .unwrap(); + heap.map_insert_record(map, RawValue::Int(1), RawValue::Int(7)) + .unwrap(); + heap.map_insert_record(map, RawValue::Float(f64::NAN), RawValue::Int(8)) + .unwrap(); + assert_eq!( + heap.map_find_record(map, &RawValue::Float(1.0)), + Ok(Some(0)) + ); + assert_eq!( + heap.map_find_record(map, &RawValue::Float(-f64::NAN)), + Ok(Some(1)) + ); + heap.map_delete_record(map, 0).unwrap(); + assert_eq!(heap.map_find_record(map, &RawValue::Int(1)), Ok(None)); + heap.map_insert_record(map, RawValue::Int(1), RawValue::Int(9)) + .unwrap(); + assert_eq!(heap.map_find_record(map, &RawValue::Int(1)), Ok(Some(2))); + heap.map_clear(map).unwrap(); + assert_eq!( + heap.map_find_record(map, &RawValue::Float(f64::NAN)), + Ok(None) + ); +} + #[test] fn map_records_retain_gc_edges_and_delete_releases_them() { let mut heap = Heap::new(); @@ -42,13 +138,7 @@ fn map_records_retain_gc_edges_and_delete_releases_them() { Err(HeapError::Stale { .. }) )); assert_eq!(heap.map_size(map), Ok(0)); - assert_eq!( - heap.map_records(map), - Ok(&[MapRecord { - key: None, - value: RawValue::Undefined, - }][..]) - ); + assert!(heap.map_records(map).unwrap().is_empty()); heap.release_object(map).unwrap(); heap.release_shape(shape).unwrap(); @@ -56,7 +146,7 @@ fn map_records_retain_gc_edges_and_delete_releases_them() { } #[test] -fn map_tombstones_preserve_readd_order_and_live_iterator_sees_appends() { +fn map_record_ids_preserve_readd_order_and_live_iterator_sees_appends() { let mut heap = Heap::new(); let shape = empty_shape(&mut heap); let map = heap @@ -85,8 +175,8 @@ fn map_tombstones_preserve_readd_order_and_live_iterator_sees_appends() { ) .unwrap(); assert_eq!( - heap.map_records(map).unwrap()[1].key, - Some(RawValue::Int(2)) + heap.map_records(map).unwrap().get(1).unwrap().key, + RawValue::Int(2) ); heap.map_delete_record(map, 1).unwrap(); heap.map_insert_record( @@ -97,13 +187,13 @@ fn map_tombstones_preserve_readd_order_and_live_iterator_sees_appends() { .unwrap(); let records = heap.map_records(map).unwrap(); - assert_eq!(records.len(), 3); - assert_eq!(records[0].key, Some(RawValue::Int(1))); - assert_eq!(records[1].key, None); - assert_eq!(records[1].value, RawValue::Undefined); - assert_eq!(records[2].key, Some(RawValue::Int(2))); + assert_eq!(records.len(), 2); + assert_eq!(records.next_id(), 3); + assert_eq!(records.get(0).unwrap().key, RawValue::Int(1)); + assert!(records.get(1).is_none()); + assert_eq!(records.get(2).unwrap().key, RawValue::Int(2)); assert_eq!( - records[2].value, + records.get(2).unwrap().value, RawValue::String(JsString::from_static("second")) ); let (source, next_index, kind) = heap.map_iterator_state(iterator).unwrap(); @@ -111,9 +201,9 @@ fn map_tombstones_preserve_readd_order_and_live_iterator_sees_appends() { assert_eq!(next_index, 1); assert_eq!(kind, MapIteratorKind::KeyAndValue); assert_eq!( - records[next_index..] - .iter() - .find_map(|record| record.key.as_ref()), + records + .next_at_or_after(next_index) + .map(|(_, record)| &record.key), Some(&RawValue::Int(2)) ); @@ -310,7 +400,7 @@ fn map_native_descriptors_preserve_quickjs_call_protocols() { } #[test] -fn set_records_retain_key_edges_and_tombstone_with_undefined_value() { +fn set_records_retain_key_edges_and_release_deleted_storage() { let mut heap = Heap::new(); let shape = empty_shape(&mut heap); let set = heap @@ -325,11 +415,15 @@ fn set_records_retain_key_edges_and_tombstone_with_undefined_value() { assert_eq!(heap.set_size(set), Ok(1)); assert_eq!(heap.object_strong_count(key), Ok(2)); assert_eq!( - heap.set_records(set), - Ok(&[MapRecord { - key: Some(RawValue::Object(key)), + heap.set_records(set) + .unwrap() + .iter() + .cloned() + .collect::>(), + vec![MapRecord { + key: RawValue::Object(key), value: RawValue::Undefined, - }][..]) + }] ); heap.release_object(key).unwrap(); @@ -337,13 +431,7 @@ fn set_records_retain_key_edges_and_tombstone_with_undefined_value() { assert_eq!(cleanup.finalized_objects, 1); assert!(matches!(heap.object(key), Err(HeapError::Stale { .. }))); assert_eq!(heap.set_size(set), Ok(0)); - assert_eq!( - heap.set_records(set), - Ok(&[MapRecord { - key: None, - value: RawValue::Undefined, - }][..]) - ); + assert!(heap.set_records(set).unwrap().is_empty()); assert!(matches!( heap.set_delete_record(set, 0), Err(HeapError::Invariant( @@ -379,7 +467,7 @@ fn set_records_retain_key_edges_and_tombstone_with_undefined_value() { } #[test] -fn set_tombstones_preserve_readd_order_and_live_iterator_sees_appends() { +fn set_record_ids_preserve_readd_order_and_live_iterator_sees_appends() { let mut heap = Heap::new(); let shape = empty_shape(&mut heap); let set = heap @@ -401,10 +489,11 @@ fn set_tombstones_preserve_readd_order_and_live_iterator_sees_appends() { heap.set_insert_record(set, RawValue::Int(2)).unwrap(); let records = heap.set_records(set).unwrap(); - assert_eq!(records.len(), 3); - assert_eq!(records[0].key, Some(RawValue::Int(1))); - assert_eq!(records[1].key, None); - assert_eq!(records[2].key, Some(RawValue::Int(2))); + assert_eq!(records.len(), 2); + assert_eq!(records.next_id(), 3); + assert_eq!(records.get(0).unwrap().key, RawValue::Int(1)); + assert!(records.get(1).is_none()); + assert_eq!(records.get(2).unwrap().key, RawValue::Int(2)); assert!( records .iter() @@ -416,7 +505,7 @@ fn set_tombstones_preserve_readd_order_and_live_iterator_sees_appends() { Ok((Some(set), 1, SetIteratorKind::KeyAndValue)) ); assert_eq!( - records[1..].iter().find_map(|record| record.key.as_ref()), + records.next_at_or_after(1).map(|(_, record)| &record.key), Some(&RawValue::Int(2)) ); @@ -488,12 +577,14 @@ fn set_layout_and_iterator_source_are_structurally_validated() { is_constructor: false, kind: ObjectKind::Set, payload: ObjectPayload::Set { - records: vec![MapRecord { - key: Some(RawValue::Int(1)), - value: RawValue::Int(2), - }], - live_indices: [0].into_iter().collect(), - size: 1, + records: { + let mut records = CollectionRecords::default(); + records.insert(MapRecord { + key: RawValue::Int(1), + value: RawValue::Int(2), + }); + records + }, }, }; assert!(matches!( diff --git a/src/engine/heap/tests/modules.rs b/src/engine/heap/tests/modules.rs index c997b71c..92985ea7 100644 --- a/src/engine/heap/tests/modules.rs +++ b/src/engine/heap/tests/modules.rs @@ -1,5 +1,47 @@ use super::*; +#[test] +fn module_lookup_indexes_follow_table_replacement_without_changing_snapshots() { + let mut heap = Heap::new(); + let realm = bytecode_test_realm(&mut heap); + let mut record = parsing_module_record( + realm, + "lookup.js", + &[], + RawModuleResolutionState::Unresolved, + ); + record.exports = Rc::from([ + RawPublishedModuleExport { + export_name: JsString::from_static("first"), + target: RawPublishedModuleExportTarget::SyntheticLocal { cell_index: 0 }, + }, + RawPublishedModuleExport { + export_name: JsString::from_static("last"), + target: RawPublishedModuleExportTarget::SyntheticLocal { cell_index: 1 }, + }, + ]); + record.rebuild_lookup_indexes(); + assert_eq!( + record + .export_named(&JsString::from_static("last")) + .map(|(index, _)| index), + Some(1) + ); + let snapshot = record.clone(); + record.exports = Rc::from([]); + record.rebuild_lookup_indexes(); + assert!( + record + .export_named(&JsString::from_static("last")) + .is_none() + ); + assert!( + snapshot + .export_named(&JsString::from_static("last")) + .is_some() + ); +} + fn parsing_module_record( realm: ContextId, name: &'static str, @@ -23,6 +65,7 @@ fn parsing_module_record( .into(), imports: Rc::from([]), exports: Rc::from([]), + lookup_indexes: Rc::default(), star_exports: Rc::from([]), resolution, instance: None, diff --git a/src/engine/modules/mod.rs b/src/engine/modules/mod.rs index a3dd4ccb..21a682db 100644 --- a/src/engine/modules/mod.rs +++ b/src/engine/modules/mod.rs @@ -941,6 +941,7 @@ impl Runtime { requested_modules: Rc::new(Vec::new()), imports: Rc::from([]), exports: Rc::from([]), + lookup_indexes: Rc::default(), star_exports: Rc::from([]), resolution: ModuleResolutionState::Unresolved, instance: None, @@ -1941,6 +1942,7 @@ impl Runtime { requested_modules: Rc::new(parts.requested_modules.into_vec()), imports: Rc::from(parts.imports), exports: Rc::from(exports), + lookup_indexes: Rc::default(), star_exports: Rc::from(parts.star_exports), // A checker may re-enter the resolver while the parser exposes // only its source-order request prefix. QuickJS latches that @@ -1985,6 +1987,7 @@ impl Runtime { import_collisions: Rc::from([]), requested_modules: Rc::new(Vec::new()), imports: Rc::from([]), + lookup_indexes: Rc::default(), exports: Rc::from([PublishedModuleExport { export_name: JsString::from_static("default"), target: PublishedModuleExportTarget::SyntheticLocal { cell_index: 0 }, @@ -2287,7 +2290,7 @@ impl Runtime { let raw_slots = slots .iter() .map(|slot| slot.as_ref().map(VarRefRoot::id)) - .collect(); + .collect::>(); self.mutate_module_record(module, |record| { record.link_realm = Some(if link_realm == module.cache { RawModuleLinkRealm::Cache @@ -2417,10 +2420,7 @@ impl Runtime { if !resolve_set.insert((frame.module.module, frame.export_name.clone())) { Action::Complete(ModuleExportResolveResult::Circular) } else if let Some((export_index, target)) = record - .exports - .iter() - .enumerate() - .find(|(_, export)| export.export_name == frame.export_name) + .export_named(&frame.export_name) .map(|(index, export)| (index, export.target.clone())) { match target { @@ -2818,14 +2818,11 @@ impl Runtime { "resolved module import export has invalid metadata", )); } - let import = record - .imports - .iter() - .find(|import| import.closure_index == closure_index) - .cloned() - .ok_or(RuntimeError::Invariant( + let import = record.import_for_closure(closure_index).cloned().ok_or( + RuntimeError::Invariant( "exported module import has no import table entry", - ))?; + ), + )?; let dependency = self.module_dependency(binding.module, import.request)?; match import.import_name { @@ -2879,9 +2876,7 @@ impl Runtime { return Ok(VarRefRoot::from_borrowed_handle(self.clone(), slot)?); } ClosureVariableKind::ModuleImportView => { - let import = record.imports - .iter() - .find(|import| import.closure_index == closure_index) + let import = record.import_for_closure(closure_index) .cloned() .ok_or(RuntimeError::Invariant( "exported module import collision has no import table entry", @@ -3032,7 +3027,9 @@ impl Runtime { let target = record .instance .as_mut() - .and_then(|instance| instance.slots.get_mut(usize::from(import.closure_index))) + .and_then(|instance| { + Rc::make_mut(&mut instance.slots).get_mut(usize::from(import.closure_index)) + }) .ok_or(RuntimeError::Invariant( "module import closure is outside the instance", ))?; diff --git a/src/engine/modules/tests/ownership.rs b/src/engine/modules/tests/ownership.rs index 0ba87c48..57fd64a8 100644 --- a/src/engine/modules/tests/ownership.rs +++ b/src/engine/modules/tests/ownership.rs @@ -151,7 +151,7 @@ fn loaded_module_validator_rejects_internal_sentinels_and_cache_self_edges_atomi assert!(matches!( runtime.mutate_module_record(raw, |record| { record.instance = Some(ModuleInstance { - slots: Vec::new(), + slots: Rc::from([]), callable: None, }); record.link_realm = Some(RawModuleLinkRealm::Other(raw.cache)); diff --git a/src/engine/object/README.md b/src/engine/object/README.md index e4d38db7..08804f07 100644 --- a/src/engine/object/README.md +++ b/src/engine/object/README.md @@ -4,8 +4,22 @@ 通过 heap 保存原始记录与引用边;调用和用户代码执行交给 VM 协调;内置方法归 builtins。 +Dictionary 模式用于普通对象和已转为慢表示的 Array。共享 shape 首次分离,独占 shape +原地转换并脱离 weak cache。物理槽用 swap-remove,插入顺序由独立双向链接维护; +`Shape::entries()` 只表示槽顺序,可观察遍历必须使用 `ordered_indices()` 或 +`ordered_own_keys()`。不允许跨可能修改对象的调用缓存槽编号。没有永久墓碑, +容量按几何阈值收缩。prototype 等整布局替换必须经过统一入口恢复语义顺序。 +Array 的中间删除/特殊描述符只在首次转换时移动 dense values;以后增删复用 +索引和紧凑槽。`dense: None` 保留 QuickJS 的表示敏感行为,length/原型 setter/ +索引上界仍由 Array 算法处理。length 不可配置,删除不会移动它的物理首槽。 + ## 文件与子目录 +- [dictionary.rs](dictionary.rs):dictionary 转换、共享布局分离和整布局替换的顺序恢复。 +- [dictionary_order.rs](dictionary_order.rs):紧凑槽的插入顺序链接和 swap-remove 修复。 + +- [array_storage.rs](array_storage.rs):真正 Array 的稀疏索引批量截断;不执行 JS,描述符和 length 回滚由 properties 负责,引用事务复用布局发布入口。 + - [access.rs](access.rs):access 的类型和操作实现。 - [allocation.rs](allocation.rs):分配及初始化。 - [arguments.rs](arguments.rs):QuickJS-compatible mapped and unmapped Arguments exotic objects.。 diff --git a/src/engine/object/arguments.rs b/src/engine/object/arguments.rs index 9a58285d..019adcb2 100644 --- a/src/engine/object/arguments.rs +++ b/src/engine/object/arguments.rs @@ -16,13 +16,40 @@ use crate::engine::object::operations::{ use crate::engine::object::property::{ PropertyDefinitionError, validate_and_apply_property_descriptor, }; -use crate::engine::object::shape::PropertyFlags; +use crate::engine::object::shape::{PropertyFlags, ShapeEntry}; use crate::engine::object::{ CompleteOrdinaryPropertyDescriptor, ObjectRef, OrdinaryPropertyDescriptor, PropertyKey, WellKnownSymbol, }; use crate::engine::value::Value; +/// Keys remain rooted until the complete layout has retained its atoms. +/// This concrete builder keeps metadata and slots parallel in one operation. +struct ArgumentsLayout { + keys: Vec, + entries: Vec, + slots: Vec, +} + +impl ArgumentsLayout { + fn new(count: usize) -> Self { + Self { + keys: Vec::with_capacity(count + 3), + entries: Vec::with_capacity(count + 3), + slots: Vec::with_capacity(count + 3), + } + } + + fn push(&mut self, key: PropertyKey, flags: PropertyFlags, slot: PropertySlot) { + self.entries.push(ShapeEntry { + atom: key.atom(), + flags, + }); + self.slots.push(slot); + self.keys.push(key); + } +} + impl Runtime { /// Build QuickJS `JS_CLASS_ARGUMENTS` from the exact actual arguments. /// Formal-parameter padding must never be included in `values`. @@ -37,21 +64,17 @@ impl Runtime { let length = u32::try_from(values.len()).map_err(|_| { RuntimeError::Invariant("actual argument count exceeded QuickJS Uint32 storage") })?; - let object = self.new_arguments_object_base(realm, false, length)?; - for (index, value) in values.into_iter().enumerate() { - let index = u32::try_from(index).map_err(|_| { - RuntimeError::Invariant("actual argument index exceeded QuickJS Uint32 storage") - })?; - let key = self.intern_property_key(&index.to_string())?; - self.store_property_slot( - &object, - &key, + let mut layout = ArgumentsLayout::new(values.len()); + for (index, value) in values.iter().enumerate() { + let key = self.property_key_for_index(index as u64)?; + layout.push( + key, PropertyFlags::data(true, true, true), - PropertySlot::Data(self.raw_property_value(&value)?), - )?; + PropertySlot::Data(self.raw_property_value(value)?), + ); } - self.install_arguments_common_properties(realm, &object, length, None)?; - Ok(object) + self.prepare_arguments_common_properties(realm, length, None, &mut layout)?; + self.new_arguments_object_base(realm, false, length, layout) } /// Build QuickJS `JS_CLASS_MAPPED_ARGUMENTS`. Each supplied root is one @@ -80,21 +103,22 @@ impl Runtime { let length = u32::try_from(roots.len()).map_err(|_| { RuntimeError::Invariant("actual argument count exceeded QuickJS Uint32 storage") })?; - let object = self.new_arguments_object_base(realm, true, length)?; + let mut layout = ArgumentsLayout::new(roots.len()); for (index, root) in roots.iter().enumerate() { - let index = u32::try_from(index).map_err(|_| { - RuntimeError::Invariant("actual argument index exceeded QuickJS Uint32 storage") - })?; - let key = self.intern_property_key(&index.to_string())?; - self.store_property_slot( - &object, - &key, + let key = self.property_key_for_index(index as u64)?; + layout.push( + key, PropertyFlags::data(true, true, true), PropertySlot::VarRef(root.id()), - )?; + ); } - self.install_arguments_common_properties(realm, &object, length, Some(current_function))?; - Ok(object) + self.prepare_arguments_common_properties( + realm, + length, + Some(current_function), + &mut layout, + )?; + self.new_arguments_object_base(realm, true, length, layout) } fn new_arguments_object_base( @@ -102,35 +126,31 @@ impl Runtime { realm: ContextId, mapped: bool, fast_len: u32, + layout: ArgumentsLayout, ) -> Result { + let ArgumentsLayout { + keys: _keys, + entries, + slots, + } = layout; let prototype = self.0.state.borrow().heap.context(realm)?.object_prototype; let mut state = self.0.state.borrow_mut(); - let shape = state.get_or_create_shape(Some(prototype), &[])?; - let object = match state.heap.allocate_object(ObjectData::arguments( - shape, - Vec::new(), - mapped, - fast_len, - )) { - Ok(object) => object, - Err(error) => { - let cleanup = state.heap.release_shape(shape)?; - state.apply_cleanup(cleanup)?; - return Err(error.into()); - } - }; - let cleanup = state.heap.release_shape(shape)?; - state.apply_cleanup(cleanup)?; + let object = state.allocate_object_with_layout( + Some(prototype), + &entries, + slots, + |shape, slots| ObjectData::arguments(shape, slots, mapped, fast_len), + )?; drop(state); Ok(ObjectRef::from_owned_handle(self.clone(), object)) } - fn install_arguments_common_properties( + fn prepare_arguments_common_properties( &self, realm: ContextId, - object: &ObjectRef, length: u32, current_function: Option<&ObjectRef>, + layout: &mut ArgumentsLayout, ) -> Result<(), RuntimeError> { let (array_values, thrower) = { let state = self.0.state.borrow(); @@ -148,40 +168,34 @@ impl Runtime { }; let length_key = self.intern_property_key("length")?; - self.store_property_slot( - object, - &length_key, + layout.push( + length_key, PropertyFlags::data(true, false, true), PropertySlot::Data(self.raw_property_value(&Self::array_length_value(length))?), - )?; + ); let callee = self.intern_property_key("callee")?; - if let Some(current_function) = current_function { - self.store_property_slot( - object, - &callee, + let (flags, slot) = if let Some(function) = current_function { + ( PropertyFlags::data(true, false, true), - PropertySlot::Data(RawValue::Object(current_function.object_id())), - )?; + PropertySlot::Data(RawValue::Object(function.object_id())), + ) } else { - self.store_property_slot( - object, - &callee, + ( PropertyFlags::accessor(false, false), PropertySlot::Accessor { get: Some(thrower), set: Some(thrower), }, - )?; - } - + ) + }; + layout.push(callee, flags, slot); let iterator = PropertyKey::from(self.well_known_symbol(WellKnownSymbol::Iterator)); - self.store_property_slot( - object, - &iterator, + layout.push( + iterator, PropertyFlags::data(true, false, true), PropertySlot::Data(RawValue::Object(array_values)), - )?; + ); Ok(()) } diff --git a/src/engine/object/array_storage.rs b/src/engine/object/array_storage.rs new file mode 100644 index 00000000..84c62743 --- /dev/null +++ b/src/engine/object/array_storage.rs @@ -0,0 +1,106 @@ +//! Batched sparse Array storage changes after observable length conversion. +//! +//! Only genuine Arrays reach this path. It runs no JavaScript: accessor values +//! are removed without being read, and layout publication owns retain/release. +//! Length validation, conversion and rollback stay in the property algorithm. + +use crate::engine::api::runtime::Runtime; +use crate::engine::api::runtime_error::RuntimeError; +use crate::engine::heap::ObjectPayload; +use crate::engine::object::ObjectRef; + +impl Runtime { + /// Remove configurable sparse indices in descending-delete semantics with + /// one layout replacement. Return the highest blocking index, if any. + /// + /// Preparation is linear in layout width; publication retains the surviving + /// slots before releasing the old layout. No per-index layout is published. + pub(super) fn truncate_sparse_array_indices( + &self, + object: &ObjectRef, + minimum: u32, + ) -> Result, RuntimeError> { + let mut state = self.0.state.borrow_mut(); + let object_id = object.object_id(); + let (prototype, entries, slots, blocker) = { + let data = state.heap.object(object_id)?; + if !matches!(data.payload, ObjectPayload::Array { .. }) { + return Err(RuntimeError::Invariant( + "sparse Array truncation reached a non-Array object", + )); + } + let shape = state.heap.shape(data.shape)?; + if shape.entries().len() != data.slots.len() { + return Err(RuntimeError::Invariant( + "Array shape and value slots have different lengths", + )); + } + let indices = shape + .entries() + .iter() + .map(|entry| state.atoms.array_index(entry.atom)) + .collect::, _>>()?; + // Descending deletion stops at the highest non-configurable index. + // Everything above it is removed; nothing at or below it is touched. + let blocker = shape + .entries() + .iter() + .zip(&indices) + .filter_map(|(entry, index)| { + index.filter(|index| *index >= minimum && !entry.flags.configurable) + }) + .max(); + let remove = |index: Option| { + index.is_some_and(|index| { + index >= minimum && blocker.is_none_or(|blocked| index > blocked) + }) + }; + let removed = indices.iter().filter(|&&index| remove(index)).count(); + if removed == 0 { + return Ok(blocker); + } + let survivors = data.slots.len() - removed; + let mut entries = Vec::with_capacity(survivors); + let mut slots = Vec::with_capacity(survivors); + for ((entry, slot), index) in shape.entries().iter().zip(&data.slots).zip(indices) { + if !remove(index) { + entries.push(*entry); + slots.push(slot.clone()); + } + } + (shape.prototype(), entries, slots, blocker) + }; + state.replace_layout(object_id, prototype, &entries, slots)?; + Ok(blocker) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::engine::value::{JsString, Value}; + #[test] + fn sparse_truncation_preserves_highest_blocker_named_order_and_accessor_silence() { + let runtime = Runtime::new(); + let mut context = runtime.new_context(); + let result = context.eval(r#"(() => { + const a = []; + a.first = 1; + a[200] = 200; + Object.defineProperty(a, '120', { get() { throw Error('getter called'); }, configurable: true }); + Object.defineProperty(a, '90', { value: 90, configurable: false }); + Object.defineProperty(a, '40', { value: 40, configurable: false }); + a[10] = 10; + a.last = 2; + const ok = Reflect.defineProperty(a, 'length', { value: 5, writable: false }); + return [ok, a.length, Object.getOwnPropertyDescriptor(a, 'length').writable, + Reflect.ownKeys(a).join(','), a[90], a[40]].join('|'); + })()"#).unwrap(); + assert_eq!( + result, + Value::String(JsString::from_static( + "false|91|false|10,40,90,length,first,last|90|40" + )) + ); + } +} diff --git a/src/engine/object/dictionary.rs b/src/engine/object/dictionary.rs new file mode 100644 index 00000000..0bf7996e --- /dev/null +++ b/src/engine/object/dictionary.rs @@ -0,0 +1,318 @@ +//! Dictionary transitions stay at the runtime boundary so atom ownership and +//! weak shape-cache entries remain consistent with heap layout transactions. + +use super::shape::{Shape, ShapeEntry}; +use crate::engine::api::runtime_error::RuntimeError; +use crate::engine::heap::runtime::RuntimeState; +use crate::engine::heap::{ObjectId, PropertySlot, ShapeId}; +use std::collections::HashMap; + +impl RuntimeState { + pub(crate) fn ensure_dictionary_layout( + &mut self, + object: ObjectId, + ) -> Result<(), RuntimeError> { + let shape_id = self.heap.object(object)?.shape; + if self.heap.shape_strong_count(shape_id)? == 1 { + self.heap.enable_object_dictionary(object)?; + // Metadata conversion preserves entries; unlink before the first + // mutation changes the fingerprint of this exclusively owned shape. + self.unlink_finalized_shapes([shape_id]); + return Ok(()); + } + let mut shape = self.heap.shape(shape_id)?.clone(); + shape.enable_dictionary(); + let slots = self.heap.object(object)?.slots.clone(); + let shape_id = self.allocate_uncached_shape(shape)?; + self.replace_layout_with_owned_shape(object, shape_id, slots) + } + + fn allocate_uncached_shape(&mut self, shape: Shape) -> Result { + let atoms = self.retain_shape_atoms(shape.entries())?; + match self.heap.allocate_shape(shape) { + Ok(id) => Ok(id), + Err(error) => { + self.release_atoms(atoms)?; + Err(error.into()) + } + } + } + + /// Rare whole-layout operations supply physical entries and parallel slots. + /// Restore semantic insertion order before rebuilding, preserving dictionary + /// mode through prototype/private-element changes and shared-shape detaches. + pub(crate) fn replace_dictionary_layout( + &mut self, + object: ObjectId, + prototype: Option, + entries: &[ShapeEntry], + slots: Vec, + ) -> Result<(), RuntimeError> { + if entries.len() != slots.len() { + return Err(RuntimeError::Invariant( + "dictionary replacement has mismatched entries and slots", + )); + } + let mut incoming = HashMap::with_capacity(entries.len()); + for (index, entry) in entries.iter().enumerate() { + if incoming.insert(entry.atom, index).is_some() { + return Err(super::shape::ShapeError::DuplicateAtom(entry.atom).into()); + } + } + let mut pairs = entries + .iter() + .copied() + .zip(slots) + .map(Some) + .collect::>(); + let mut ordered = Vec::with_capacity(pairs.len()); + let shape = self.heap.shape(self.heap.object(object)?.shape)?; + for index in shape.ordered_indices() { + if let Some(&replacement) = incoming.get(&shape.entries()[index].atom) { + if let Some(pair) = pairs[replacement].take() { + ordered.push(pair); + } + } + } + ordered.extend(pairs.into_iter().flatten()); + let (entries, slots): (Vec<_>, Vec<_>) = ordered.into_iter().unzip(); + let mut shape = Shape::new(prototype, entries)?; + shape.enable_dictionary(); + let shape_id = self.allocate_uncached_shape(shape)?; + self.replace_layout_with_owned_shape(object, shape_id, slots) + } +} + +#[cfg(test)] +mod tests { + use crate::engine::api::runtime::Runtime; + use crate::engine::object::ObjectRef; + use crate::engine::value::Value; + + fn own_key_names(runtime: &Runtime, object: &ObjectRef) -> Vec { + runtime + .own_property_keys(object) + .unwrap() + .iter() + .map(|key| { + runtime + .property_key_to_js_string(key) + .unwrap() + .to_utf8_lossy() + }) + .collect() + } + #[test] + fn wide_object_deletion_reuses_its_unique_layout_and_preserves_key_order() { + let runtime = Runtime::new(); + let mut context = runtime.new_context(); + let Value::Object(object) = context + .eval("(() => { const o = {}; for (let i = 0; i < 32; i++) o['p' + i] = i; return o; })()") + .unwrap() + else { + panic!("object fixture"); + }; + let original_shape = runtime + .0 + .state + .borrow() + .heap + .object(object.object_id()) + .unwrap() + .shape; + assert_eq!( + runtime + .0 + .state + .borrow() + .heap + .shape_strong_count(original_shape) + .unwrap(), + 1 + ); + let key = runtime.intern_property_key("p7").unwrap(); + assert!(runtime.delete_property(&object, &key).unwrap()); + let current_shape = runtime + .0 + .state + .borrow() + .heap + .object(object.object_id()) + .unwrap() + .shape; + assert_eq!( + original_shape, current_shape, + "deletion must not publish a complete replacement layout" + ); + assert_eq!( + own_key_names(&runtime, &object), + (0..32) + .filter(|i| *i != 7) + .map(|i| format!("p{i}")) + .collect::>() + ); + context.set_property(&object, &key, Value::Int(77)).unwrap(); + let mut expected = (0..32) + .filter(|i| *i != 7) + .map(|i| format!("p{i}")) + .collect::>(); + expected.push("p7".to_owned()); + assert_eq!(own_key_names(&runtime, &object), expected); + } + + #[test] + fn dictionary_deletion_detaches_shared_shapes_and_releases_removed_edges() { + let runtime = Runtime::new(); + let mut context = runtime.new_context(); + let Value::Object(first) = context + .eval("(() => { const o = {}; for (let i=0;i<32;i++) o['p'+i]=i; return o; })()") + .unwrap() + else { + panic!("object fixture"); + }; + let (shared_shape, second) = { + let mut state = runtime.0.state.borrow_mut(); + let data = state.heap.object(first.object_id()).unwrap(); + let shape = data.shape; + let slots = data.slots.clone(); + let second = state + .heap + .allocate_object(crate::engine::heap::ObjectData::ordinary(shape, slots)) + .unwrap(); + (shape, second) + }; + let second = ObjectRef::from_owned_handle(runtime.clone(), second); + let key = runtime.intern_property_key("p7").unwrap(); + assert!(runtime.delete_property(&first, &key).unwrap()); + assert_eq!(context.get_property(&second, &key).unwrap(), Value::Int(7)); + let detached = runtime + .0 + .state + .borrow() + .heap + .object(first.object_id()) + .unwrap() + .shape; + assert_ne!(detached, shared_shape); + let child = context.new_object().unwrap(); + let child_id = child.object_id(); + context + .set_property(&first, &key, Value::Object(child)) + .unwrap(); + assert!(runtime.delete_property(&first, &key).unwrap()); + let state = runtime.0.state.borrow(); + assert!( + state.heap.object(child_id).is_err(), + "removed slot must release its only object edge" + ); + assert_eq!( + state.heap.object(first.object_id()).unwrap().shape, + detached + ); + assert_eq!( + state.heap.object(second.object_id()).unwrap().shape, + shared_shape + ); + } + + #[test] + fn dictionary_order_survives_descriptors_prototype_changes_and_churn() { + let runtime = Runtime::new(); + let mut context = runtime.new_context(); + assert_eq!(context.eval(r#"(() => { + const o = {}, a = Symbol('a'), b = Symbol('b'); + for (let i=0;i<32;i++) o['p'+i]=i; + o[a]=1; o[b]=2; + delete o.p7; delete o.p0; delete o[a]; o.p7=77; o[a]=3; + Object.defineProperty(o, 'p12', {get() { return 120; }, configurable:true, enumerable:true}); + Object.setPrototypeOf(o, {inherited:42}); + const keys = Reflect.ownKeys(o); + if (keys.slice(-3)[0] !== 'p7' || keys.at(-2) !== b || keys.at(-1) !== a) return false; + if (o.p12 !== 120 || o.inherited !== 42) return false; + const expected = keys.filter(k => k !== 'p1'); + for (let i=0;i<1024;i++) { delete o.p1; o.p1=i; } + expected.push('p1'); + // Strings precede symbols even after a later string insertion. + const strings = expected.filter(k => typeof k === 'string'); + if (Object.keys(o).join(',') !== strings.join(',')) return false; + Object.freeze(o); + return Reflect.ownKeys(o).length === keys.length && Object.isFrozen(o) + && !Reflect.deleteProperty(o, 'p12'); + })()"#).unwrap(), Value::Bool(true)); + } + + #[test] + fn holey_dictionary_keeps_prototype_setters_and_partial_length_failure() { + let runtime = Runtime::new(); + let mut context = runtime.new_context(); + assert_eq!( + context + .eval( + r#"(() => { + const a = [], symbol = Symbol(); + for (let i=0;i<64;i++) a.push(i); + a.tag = 1; a[symbol] = 2; delete a[7]; + let seen = 0; + const prototype = Object.create(Array.prototype); + Object.defineProperty(prototype, '7', {set(value) {seen=value;}, get() {return 99;}}); + Object.setPrototypeOf(a, prototype); + a[7] = 42; + if (seen !== 42 || a[7] !== 99 || Object.hasOwn(a, '7')) return false; + Object.defineProperty(a, '7', {value:7,writable:true,enumerable:true,configurable:true}); + Object.defineProperty(a, '30', {configurable:false}); + let threw = false; + try { Object.defineProperty(a, 'length', {value:8,writable:false}); } + catch (error) { threw = error instanceof TypeError; } + return threw && a.length === 31 && a[30] === 30 && !Object.hasOwn(a, '31') + && !Object.getOwnPropertyDescriptor(a, 'length').writable + && a.tag === 1 && a[symbol] === 2; + })()"# + ) + .unwrap(), + Value::Bool(true) + ); + } + + #[test] + fn holey_array_churn_reuses_the_layout_after_its_initial_conversion() { + let runtime = Runtime::new(); + let mut context = runtime.new_context(); + let Value::Object(array) = context + .eval( + "(() => { const a=[]; for(let i=0;i<32;i++) a.push(i); delete a[7]; return a; })()", + ) + .unwrap() + else { + panic!("array fixture"); + }; + let shape = runtime + .0 + .state + .borrow() + .heap + .object(array.object_id()) + .unwrap() + .shape; + let key = runtime.property_key_for_index(9).unwrap(); + assert!(runtime.delete_property(&array, &key).unwrap()); + assert_eq!( + runtime + .0 + .state + .borrow() + .heap + .object(array.object_id()) + .unwrap() + .shape, + shape, + "a second interior deletion must not rebuild the entire Array layout" + ); + context.set_property(&array, &key, Value::Int(99)).unwrap(); + assert_eq!(context.get_property(&array, &key).unwrap(), Value::Int(99)); + assert_eq!( + runtime.array_fast_len(&array).unwrap(), + None, + "QuickJS representation-sensitive algorithms still observe slow form" + ); + } +} diff --git a/src/engine/object/dictionary_order.rs b/src/engine/object/dictionary_order.rs new file mode 100644 index 00000000..4c585a1a --- /dev/null +++ b/src/engine/object/dictionary_order.rs @@ -0,0 +1,146 @@ +//! Insertion order beside a dictionary shape's compact physical slots. +//! +//! Removing a property swap-removes its physical slot. These links repair the +//! moved slot's neighbours, preserving key order without tombstones or a scan. +//! Atom ownership and parallel property values belong to shape/heap storage. + +#[derive(Clone, Copy, Debug)] +struct Links { + previous: Option, + next: Option, +} + +#[derive(Clone, Debug)] +pub(super) struct DictionaryOrder { + links: Vec, + first: Option, + last: Option, +} + +impl DictionaryOrder { + pub(super) fn new(len: usize) -> Self { + Self { + links: (0..len) + .map(|index| Links { + previous: index.checked_sub(1), + next: (index + 1 < len).then_some(index + 1), + }) + .collect(), + first: (len != 0).then_some(0), + last: len.checked_sub(1), + } + } + + pub(super) fn first(&self) -> Option { + self.first + } + + pub(super) fn next(&self, index: usize) -> Option { + self.links[index].next + } + + pub(super) fn append(&mut self) { + let index = self.links.len(); + self.links.push(Links { + previous: self.last, + next: None, + }); + if let Some(last) = self.last { + self.links[last].next = Some(index); + } else { + self.first = Some(index); + } + self.last = Some(index); + } + + pub(super) fn swap_remove(&mut self, index: usize) { + let removed = self.links[index]; + if let Some(previous) = removed.previous { + self.links[previous].next = removed.next; + } else { + self.first = removed.next; + } + if let Some(next) = removed.next { + self.links[next].previous = removed.previous; + } else { + self.last = removed.previous; + } + + let previous_last_slot = self.links.len() - 1; + self.links.swap_remove(index); + if index != previous_last_slot { + // The former last physical slot has moved, even when its logical + // position is in the middle of insertion order. + let moved = self.links[index]; + if let Some(previous) = moved.previous { + self.links[previous].next = Some(index); + } else { + self.first = Some(index); + } + if let Some(next) = moved.next { + self.links[next].previous = Some(index); + } else { + self.last = Some(index); + } + } + let len = self.links.len(); + if self.links.capacity() > len.saturating_mul(4).saturating_add(16) { + self.links + .shrink_to(len.saturating_mul(2).saturating_add(8)); + } + } + + pub(super) fn is_valid(&self, len: usize) -> bool { + if self.links.len() != len { + return false; + } + let mut seen = vec![false; len]; + let mut previous = None; + let mut cursor = self.first; + let mut count = 0; + while let Some(index) = cursor { + let Some(link) = self.links.get(index) else { + return false; + }; + if seen[index] || link.previous != previous { + return false; + } + seen[index] = true; + count += 1; + previous = cursor; + cursor = link.next; + } + count == len && previous == self.last + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn swap_removal_preserves_insertion_order_through_repeated_slot_moves() { + let mut order = DictionaryOrder::new(0); + let mut physical = Vec::new(); + let mut expected = Vec::new(); + let mut seed = 0x348a_6571_u64; + for label in 0..4096 { + seed = seed.wrapping_mul(6364136223846793005).wrapping_add(1); + if !physical.is_empty() && seed % 3 != 0 { + let index = (seed >> 32) as usize % physical.len(); + let removed = physical.swap_remove(index); + expected.retain(|value| *value != removed); + order.swap_remove(index); + } else { + order.append(); + physical.push(label); + expected.push(label); + } + assert!(order.is_valid(physical.len())); + let actual = std::iter::successors(order.first(), |&index| order.next(index)) + .map(|index| physical[index]) + .collect::>(); + assert_eq!(actual, expected); + } + } +} diff --git a/src/engine/object/mod.rs b/src/engine/object/mod.rs index c051f78e..791b3f02 100644 --- a/src/engine/object/mod.rs +++ b/src/engine/object/mod.rs @@ -728,10 +728,13 @@ pub(crate) mod object_literal; pub(crate) mod private_elements; +mod array_storage; pub(crate) mod properties; pub(crate) mod template_object; +mod dictionary; +mod dictionary_order; pub mod property; pub mod shape; diff --git a/src/engine/object/properties.rs b/src/engine/object/properties.rs index a0ac0e62..ff8966f7 100644 --- a/src/engine/object/properties.rs +++ b/src/engine/object/properties.rs @@ -831,24 +831,21 @@ impl Runtime { object: &ObjectRef, key: &PropertyKey, ) -> Result { - { - let state = self.0.state.borrow(); - let object_data = state.heap.object(object.object_id())?; - if !matches!(object_data.payload, ObjectPayload::Array { .. }) { - return Ok(ArrayOwnKey::Other); - } + let state = self.0.state.borrow(); + let object_data = state.heap.object(object.object_id())?; + if !matches!(object_data.payload, ObjectPayload::Array { .. }) { + return Ok(ArrayOwnKey::Other); } - let length = self.intern_property_key("length")?; - if key == &length { + if let Some(index) = state.atoms.array_index(key.atom())? { + return Ok(ArrayOwnKey::Index(index)); + } + let info = state.atoms.resolve(key.atom())?; + if info.kind == crate::engine::atom::AtomKind::String + && matches!(info.spelling, crate::engine::atom::AtomSpelling::Text(text) if text.utf16_units().eq("length".encode_utf16())) + { return Ok(ArrayOwnKey::Length); } - Ok(self - .0 - .state - .borrow() - .atoms - .array_index(key.atom())? - .map_or(ArrayOwnKey::Other, ArrayOwnKey::Index)) + Ok(ArrayOwnKey::Other) } /// Return QuickJS's representation state for a genuine Array. `Some(n)` @@ -900,7 +897,7 @@ impl Runtime { for index in 0..dense_len { let index = u32::try_from(index) .map_err(|_| RuntimeError::Invariant("fast Array count exceeded Uint32"))?; - let key = self.intern_property_key(&index.to_string())?; + let key = self.property_key_for_index(index as u64)?; entries.push(ShapeEntry { atom: key.atom(), flags: PropertyFlags::data(true, true, true), @@ -1224,12 +1221,7 @@ impl Runtime { state.apply_cleanup(cleanup)?; } - for index in self.array_indices_at_or_above(object, new_length)? { - let index_key = self.intern_property_key(&index.to_string())?; - if self.delete_property(object, &index_key)? { - continue; - } - + if let Some(index) = self.truncate_sparse_array_indices(object, new_length)? { // ArraySetLength keeps already deleted higher indices, restores // length to the first undeletable index plus one, and still // applies a requested writable:false transition. @@ -1271,31 +1263,6 @@ impl Runtime { Ok(PropertyDefineOutcome::Defined(true)) } - fn array_indices_at_or_above( - &self, - object: &ObjectRef, - minimum: u32, - ) -> Result, RuntimeError> { - let state = self.0.state.borrow(); - let object_data = state.heap.object(object.object_id())?; - if !matches!(object_data.payload, ObjectPayload::Array { .. }) { - return Err(RuntimeError::Invariant( - "Array index scan reached a non-Array object", - )); - } - let shape = state.heap.shape(object_data.shape)?; - let mut indices = shape - .entries() - .iter() - .filter_map(|entry| state.atoms.array_index(entry.atom).transpose()) - .collect::, _>>()? - .into_iter() - .filter(|index| *index >= minimum) - .collect::>(); - indices.sort_unstable_by(|left, right| right.cmp(left)); - Ok(indices) - } - pub(crate) fn to_array_length( &self, realm: Option, @@ -1609,6 +1576,28 @@ impl Runtime { } let mut state = self.0.state.borrow_mut(); let object_id = object.object_id(); + let dictionary_eligible = { + let data = state.heap.object(object_id)?; + let shape = state.heap.shape(data.shape)?; + data.supports_dictionary_layout() + && (shape.is_dictionary() + || shape.entries().len() >= MIN_UNIQUE_SHAPE_APPEND_ENTRIES) + }; + if dictionary_eligible { + let shape = state.heap.shape(state.heap.object(object_id)?.shape)?; + let Some(index) = shape.find(key.atom()) else { + return Ok(true); + }; + if !shape.entries()[index as usize].flags.configurable { + return Ok(false); + } + state.ensure_dictionary_layout(object_id)?; + let cleanup = state + .heap + .delete_dictionary_property(object_id, key.atom())?; + state.apply_cleanup(cleanup)?; + return Ok(true); + } let (prototype, entries, mut slots, index, configurable) = { let object_data = state.heap.object(object_id)?; let shape = state.heap.shape(object_data.shape)?; @@ -1715,17 +1704,17 @@ impl Runtime { RuntimeError::Invariant("String wrapper length exceeded QuickJS index space") })?; for index in 0..length { - keys.push(self.intern_property_key(&index.to_string())?); + keys.push(self.property_key_for_index(index as u64)?); } } if let Some(length) = typed_array_length { for index in 0..length { - keys.push(self.intern_property_key(&index.to_string())?); + keys.push(self.property_key_for_index(index as u64)?); } } if let Some(length) = dense_array_len { for index in 0..length { - keys.push(self.intern_property_key(&index.to_string())?); + keys.push(self.property_key_for_index(index as u64)?); } } for atom in atoms { diff --git a/src/engine/object/shape.rs b/src/engine/object/shape.rs index 014436c2..e2c81f12 100644 --- a/src/engine/object/shape.rs +++ b/src/engine/object/shape.rs @@ -16,6 +16,7 @@ //! atom reference counts; a public API which lets the snapshot outlive the //! shape must retain those atoms at the runtime boundary. +use super::dictionary_order::DictionaryOrder; use crate::engine::atom::{Atom, AtomError, AtomTable, PropertyKeyKind}; use crate::engine::heap::ObjectId; use std::collections::HashMap; @@ -109,13 +110,17 @@ impl Error for ShapeError {} /// Prototype and property-layout metadata shared copy-on-write by objects. /// -/// `entries` is insertion ordered. `lookup` is derived exclusively by the -/// validated constructor and maps each key to its parallel payload-slot index. +/// `entries` follows physical payload-slot order. Shared layouts use insertion +/// order; dictionaries maintain separate links so removal can move the last +/// slot in constant time. `lookup` always maps a key to its current slot. +/// Slot positions are internal and must be looked up again after mutations. #[derive(Clone, Debug)] pub struct Shape { prototype: Option, entries: Vec, lookup: HashMap, + /// Present only for dynamic layouts; shared shapes pay one optional pointer. + dictionary_order: Option>, } impl Shape { @@ -149,6 +154,7 @@ impl Shape { prototype, entries: ordered, lookup, + dictionary_order: None, }) } @@ -158,12 +164,81 @@ impl Shape { self.prototype } - /// Return property metadata in insertion order. + /// Return property metadata in physical payload-slot order. + /// Use `ordered_indices` when insertion order is observable. #[must_use] pub fn entries(&self) -> &[ShapeEntry] { &self.entries } + /// Physical slot order can differ from insertion order in a dictionary. + pub(crate) fn ordered_indices(&self) -> impl Iterator + '_ { + let first = self.dictionary_order.as_ref().map_or_else( + || (!self.entries.is_empty()).then_some(0), + |order| order.first(), + ); + std::iter::successors(first, |&index| { + self.dictionary_order.as_ref().map_or_else( + || (index + 1 < self.entries.len()).then_some(index + 1), + |order| order.next(index), + ) + }) + } + + pub(crate) fn is_dictionary(&self) -> bool { + self.dictionary_order.is_some() + } + + /// Caller owns this metadata exclusively or is preparing an unpublished copy. + pub(crate) fn enable_dictionary(&mut self) { + if self.dictionary_order.is_none() { + self.dictionary_order = Some(Box::new(DictionaryOrder::new(self.entries.len()))); + } + } + + pub(crate) fn dictionary_layout_is_valid(&self) -> bool { + self.dictionary_order.as_ref().is_none_or(|order| { + order.is_valid(self.entries.len()) + && self.lookup.len() == self.entries.len() + && self + .entries + .iter() + .enumerate() + .all(|(index, entry)| self.find(entry.atom) == u32::try_from(index).ok()) + }) + } + + pub(crate) fn remove_dictionary_property( + &mut self, + atom: Atom, + ) -> Result { + let index = self.find(atom).ok_or(ShapeError::MissingAtom(atom))? as usize; + self.dictionary_order + .as_mut() + .expect("dictionary removal requires dictionary metadata") + .swap_remove(index); + let removed = self.entries.swap_remove(index); + self.lookup.remove(&atom); + if let Some(moved) = self.entries.get(index) { + self.lookup.insert(moved.atom, index as u32); + } + let len = self.entries.len(); + if self.entries.capacity() > len.saturating_mul(4).saturating_add(16) { + self.entries + .shrink_to(len.saturating_mul(2).saturating_add(8)); + } + if self.lookup.capacity() > len.saturating_mul(4).saturating_add(16) { + self.lookup + .shrink_to(len.saturating_mul(2).saturating_add(8)); + } + Ok(removed) + } + + pub(crate) fn replace_dictionary_flags(&mut self, index: usize, flags: PropertyFlags) { + debug_assert!(self.is_dictionary()); + self.entries[index].flags = flags; + } + /// Find a property and return its parallel payload-slot index. #[must_use] pub fn find(&self, atom: Atom) -> Option { @@ -184,19 +259,10 @@ impl Shape { return Err(ShapeError::DuplicateAtom(atom)); } - let index = - u32::try_from(self.entries.len()).map_err(|_| ShapeError::PropertyIndexOverflow)?; - let mut entries = Vec::with_capacity(self.entries.len().saturating_add(1)); - entries.extend_from_slice(&self.entries); - entries.push(ShapeEntry { atom, flags }); - - let mut lookup = self.lookup.clone(); - lookup.insert(atom, index); - Ok(Self { - prototype: self.prototype, - entries, - lookup, - }) + let index = self.unique_append_index(atom)?; + let mut result = self.clone(); + result.append_unique_property(atom, flags, index); + Ok(result) } /// Append one property to a shape which is exclusively owned by a single @@ -221,6 +287,9 @@ impl Shape { debug_assert!(!atom.is_null() && !self.lookup.contains_key(&atom)); self.entries.push(ShapeEntry { atom, flags }); self.lookup.insert(atom, index); + if let Some(order) = &mut self.dictionary_order { + order.append(); + } } /// Derive a shape with updated flags for an existing property. @@ -239,6 +308,7 @@ impl Shape { prototype: self.prototype, entries, lookup: self.lookup.clone(), + dictionary_order: self.dictionary_order.clone(), }) } @@ -253,6 +323,11 @@ impl Shape { } let index = usize::try_from(self.find(atom).ok_or(ShapeError::MissingAtom(atom))?) .map_err(|_| ShapeError::PropertyIndexOverflow)?; + if self.is_dictionary() { + let mut result = self.clone(); + result.remove_dictionary_property(atom)?; + return Ok(result); + } let mut entries = Vec::with_capacity(self.entries.len().saturating_sub(1)); entries.extend_from_slice(&self.entries[..index]); entries.extend_from_slice(&self.entries[index + 1..]); @@ -275,7 +350,8 @@ impl Shape { let mut strings = Vec::new(); let mut symbols = Vec::new(); - for (insertion_index, entry) in self.entries.iter().enumerate() { + for (insertion_index, slot) in self.ordered_indices().enumerate() { + let entry = &self.entries[slot]; match atoms.property_key_kind(entry.atom)? { PropertyKeyKind::String => { if let Some(array_index) = atoms.array_index(entry.atom)? { diff --git a/src/engine/object/storage.rs b/src/engine/object/storage.rs index 9bb0c6ad..d9fb4fd2 100644 --- a/src/engine/object/storage.rs +++ b/src/engine/object/storage.rs @@ -360,49 +360,77 @@ impl Runtime { ) -> Result<(), RuntimeError> { let mut state = self.0.state.borrow_mut(); let object_id = object.object_id(); - let (shape_id, shape_len, existing) = { + let (shape_id, shape_len, dictionary, existing) = { let object_data = state.heap.object(object_id)?; let shape = state.heap.shape(object_data.shape)?; + let existing = if let Some(index) = shape.find(key.atom()) { + let index = index as usize; + let entry = shape.entries().get(index).ok_or(RuntimeError::Invariant( + "shape lookup index was out of bounds", + ))?; + Some((index, entry.flags)) + } else { + None + }; ( object_data.shape, shape.entries().len(), - shape.find(key.atom()).map(|index| index as usize), + shape.is_dictionary(), + existing, ) }; + + // Replacing a value does not change the layout. Resolve that case while + // borrowing the shape, before cloning entries or unrelated value slots. + if let Some((index, existing_flags)) = existing { + if existing_flags == flags { + let retained_atoms = state.retain_slot_atoms(std::slice::from_ref(&replacement))?; + return match state + .heap + .replace_object_slot(object_id, index, replacement) + { + Ok(cleanup) => state.apply_cleanup(cleanup), + Err(error) => { + state.release_atoms(retained_atoms)?; + Err(error.into()) + } + }; + } + } + if let Some((index, _)) = existing { + if dictionary && state.heap.shape_strong_count(shape_id)? == 1 { + let atoms = state.retain_slot_atoms(std::slice::from_ref(&replacement))?; + return match state.heap.replace_dictionary_property( + object_id, + index, + flags, + replacement, + ) { + Ok(cleanup) => state.apply_cleanup(cleanup), + Err(error) => { + state.release_atoms(atoms)?; + Err(error.into()) + } + }; + } + } if existing.is_none() - && shape_len >= properties::MIN_UNIQUE_SHAPE_APPEND_ENTRIES + && (dictionary || shape_len >= properties::MIN_UNIQUE_SHAPE_APPEND_ENTRIES) && state.heap.shape_strong_count(shape_id)? == 1 { return state.append_unique_layout(object_id, key.atom(), flags, replacement); } - let (prototype, mut entries, mut slots, existing) = { + let (prototype, mut entries, mut slots) = { let object_data = state.heap.object(object_id)?; let shape = state.heap.shape(object_data.shape)?; ( shape.prototype(), shape.entries().to_vec(), object_data.slots.clone(), - shape.find(key.atom()).map(|index| index as usize), ) }; - if let Some(index) = existing { - let entry = entries.get(index).ok_or(RuntimeError::Invariant( - "shape lookup index was out of bounds", - ))?; - if entry.flags == flags { - let retained_atoms = state.retain_slot_atoms(std::slice::from_ref(&replacement))?; - match state - .heap - .replace_object_slot(object_id, index, replacement) - { - Ok(cleanup) => return state.apply_cleanup(cleanup), - Err(error) => { - state.release_atoms(retained_atoms)?; - return Err(error.into()); - } - } - } + if let Some((index, _)) = existing { entries[index].flags = flags; slots[index] = replacement; } else { diff --git a/src/engine/value/README.md b/src/engine/value/README.md index d6ab5701..256507d9 100644 --- a/src/engine/value/README.md +++ b/src/engine/value/README.md @@ -7,8 +7,14 @@ ## 文件与子目录 - [bigint.rs](bigint.rs):`QuickJS`-compatible arbitrary-precision integer values.。 +- [collection_key.rs](collection_key.rs):已验证 raw key 的 SameValueZero 与哈希;不访问堆、不执行转换或 JS,调用方负责 Runtime 域和内部哨兵检查。 - [conversion.rs](conversion.rs):ECMAScript 值转换。 - [mod.rs](mod.rs):模块入口、共享接口与子模块声明。 - [number.rs](number.rs):Exact numeric formatting primitives for the pinned QuickJS release.。 - [number_parse.rs](number_parse.rs):Pure numeric-prefix parsing used by the global `parseInt` and `parseFloat`。 - [primitive.rs](primitive.rs):primitive 的类型和操作实现。 + +字符串比较、QuickJS 内容指纹及集合键哈希对平坦 Latin-1/UTF-16 直接遍历 +切片;只有 rope 使用带所有权保护的遍历状态。混合宽度必须按 UTF-16 code +unit 比较和哈希,不按 UTF-8 字节比较。集合哈希继续由集合索引提供随机种子, +不能以 32 位 QuickJS 内容指纹替代。 diff --git a/src/engine/value/collection_key.rs b/src/engine/value/collection_key.rs new file mode 100644 index 00000000..3ede0e9b --- /dev/null +++ b/src/engine/value/collection_key.rs @@ -0,0 +1,77 @@ +//! Pure SameValueZero key operations on validated, runtime-local raw values. +//! +//! No rooting, heap access, coercion or user callbacks occur here. Callers must +//! reject internal sentinels and foreign identities at their storage boundary. + +use crate::engine::heap::RawValue; +use std::hash::{Hash, Hasher}; + +fn number(value: &RawValue) -> Option { + match value { + RawValue::Int(value) => Some(f64::from(*value)), + RawValue::Float(value) => Some(*value), + _ => None, + } +} + +pub(crate) fn same_value_zero(left: &RawValue, right: &RawValue) -> bool { + if let (Some(left), Some(right)) = (number(left), number(right)) { + return left == right || (left.is_nan() && right.is_nan()); + } + match (left, right) { + (RawValue::Undefined, RawValue::Undefined) | (RawValue::Null, RawValue::Null) => true, + (RawValue::Bool(left), RawValue::Bool(right)) => left == right, + (RawValue::String(left), RawValue::String(right)) => left == right, + (RawValue::BigInt(left), RawValue::BigInt(right)) => left == right, + (RawValue::Symbol(left), RawValue::Symbol(right)) => left == right, + (RawValue::Object(left), RawValue::Object(right)) => left == right, + _ => false, + } +} + +pub(crate) fn hash(key: &RawValue, state: &mut H) { + match key { + RawValue::Undefined => state.write_u8(0), + RawValue::Null => state.write_u8(1), + RawValue::Bool(value) => { + state.write_u8(2); + value.hash(state); + } + RawValue::Int(_) | RawValue::Float(_) => { + state.write_u8(3); + let value = number(key).expect("numeric key variant"); + // Canonicalize both zero signs and every NaN payload. Int and Float + // representations of the same Number must select the same bucket. + let bits = if value == 0.0 { + 0 + } else if value.is_nan() { + f64::NAN.to_bits() + } else { + value.to_bits() + }; + state.write_u64(bits); + } + RawValue::String(value) => { + state.write_u8(4); + value.len().hash(state); + // Hash actual content with the index's randomized hasher, not the + // existing unseeded 32-bit content fingerprint. + value.hash_code_units(state); + } + RawValue::BigInt(value) => { + state.write_u8(5); + value.hash(state); + } + RawValue::Symbol(value) => { + state.write_u8(6); + value.hash(state); + } + RawValue::Object(value) => { + state.write_u8(7); + value.hash(state); + } + RawValue::Private(_) | RawValue::Uninitialized | RawValue::Exception => { + unreachable!("internal sentinel reached a validated collection key") + } + } +} diff --git a/src/engine/value/conversion.rs b/src/engine/value/conversion.rs index 786531d8..8322bfff 100644 --- a/src/engine/value/conversion.rs +++ b/src/engine/value/conversion.rs @@ -28,6 +28,9 @@ impl Runtime { } else { value }; + if let Some(key) = self.immediate_numeric_property_key(&value) { + return Ok(NativeConversion::Value(key)); + } if let Value::Symbol(symbol) = value { if !symbol.belongs_to(self) { return Err(RuntimeError::WrongRuntime("property-key symbol")); diff --git a/src/engine/value/mod.rs b/src/engine/value/mod.rs index 89513ec6..16a17b82 100644 --- a/src/engine/value/mod.rs +++ b/src/engine/value/mod.rs @@ -1,4 +1,5 @@ pub mod bigint; +pub(crate) mod collection_key; pub mod number; pub mod number_parse; use crate::engine::api::error::{Error, ErrorKind}; diff --git a/src/engine/value/primitive.rs b/src/engine/value/primitive.rs index d82e3e39..5c3ee7b9 100644 --- a/src/engine/value/primitive.rs +++ b/src/engine/value/primitive.rs @@ -25,6 +25,12 @@ pub struct JsString(Rc); pub struct WeakJsString(Weak); impl WeakJsString { + /// Weak ownership keeps the allocation identity reserved after payload + /// destruction, so address reuse cannot create a false cache hit. + pub(crate) fn same_representation(&self, string: &JsString) -> bool { + self.0.as_ptr() == Rc::as_ptr(&string.0) + } + #[must_use] pub fn upgrade(&self) -> Option { self.0.upgrade().map(JsString) @@ -1003,6 +1009,28 @@ impl JsString { Utf16Units::new(self) } + /// Feed exact code units to a caller-owned hasher. Every representation + /// uses the same write sequence, including mixed-width equal strings. + pub(crate) fn hash_code_units(&self, state: &mut H) { + match self.0.as_ref() { + StringRepr::Latin1(units) => { + for &unit in units.iter() { + state.write_u16(u16::from(unit)); + } + } + StringRepr::Utf16(units) => { + for &unit in units.iter() { + state.write_u16(unit); + } + } + StringRepr::Rope(_) => { + for unit in self.utf16_units() { + state.write_u16(unit); + } + } + } + } + /// Return one UTF-16 code unit without decoding or normalizing surrogate /// pairs. This is the equivalent of QuickJS's `string_get` fast path. #[must_use] @@ -1165,9 +1193,12 @@ impl JsString { } fn quickjs_hash(&self, seed: u32) -> u32 { - self.utf16_units().fold(seed, |hash, unit| { - hash.wrapping_mul(263).wrapping_add(u32::from(unit)) - }) + let step = |hash: u32, unit: u16| hash.wrapping_mul(263).wrapping_add(u32::from(unit)); + match self.0.as_ref() { + StringRepr::Latin1(units) => units.iter().copied().map(u16::from).fold(seed, step), + StringRepr::Utf16(units) => units.iter().copied().fold(seed, step), + StringRepr::Rope(_) => self.utf16_units().fold(seed, step), + } } fn rope_children(rope: &RopeRepr) -> (Self, Self) { @@ -1880,8 +1911,26 @@ fn encode_quickjs_utf8(output: &mut [u8; 4], code_point: u32) -> usize { impl PartialEq for JsString { fn eq(&self, other: &Self) -> bool { - Rc::ptr_eq(&self.0, &other.0) - || (self.len() == other.len() && self.utf16_units().eq(other.utf16_units())) + if Rc::ptr_eq(&self.0, &other.0) { + return true; + } + if self.len() != other.len() { + return false; + } + // Flat strings need neither owned traversal handles nor a rope stack. + // Width is a representation choice, so mixed-width equality compares + // exact code units rather than treating Latin-1 as UTF-8. + match (self.0.as_ref(), other.0.as_ref()) { + (StringRepr::Latin1(left), StringRepr::Latin1(right)) => left == right, + (StringRepr::Utf16(left), StringRepr::Utf16(right)) => left == right, + (StringRepr::Latin1(narrow), StringRepr::Utf16(wide)) + | (StringRepr::Utf16(wide), StringRepr::Latin1(narrow)) => narrow + .iter() + .copied() + .map(u16::from) + .eq(wide.iter().copied()), + _ => self.utf16_units().eq(other.utf16_units()), + } } } @@ -2239,6 +2288,33 @@ mod tests { state.finish() } + #[test] + fn flat_and_rope_key_hashing_agree_across_storage_widths() { + let narrow = JsString::try_from_utf8(&"é".repeat(9000)).unwrap(); + let wide = JsString(Rc::new(StringRepr::Utf16( + vec![0xe9; 9000].into_boxed_slice(), + ))); + let left = JsString::try_from_utf8(&"é".repeat(8500)).unwrap(); + let right = JsString::try_from_utf8(&"é".repeat(500)).unwrap(); + let rope = left.try_concat(&right).unwrap(); + assert!(!rope.is_flat()); + let hash_units = |value: &JsString| { + let mut hasher = DefaultHasher::new(); + value.hash_code_units(&mut hasher); + hasher.finish() + }; + for value in [&wide, &rope] { + assert_eq!(narrow, *value); + assert_eq!(*value, narrow); + assert_eq!(narrow.content_hash(), value.content_hash()); + assert_eq!(hash_units(&narrow), hash_units(value)); + } + let lone_surrogate = JsString::try_from_utf16([0xd800]).unwrap(); + assert_ne!(lone_surrogate, JsString::from_static("é")); + let _ = rope.linearize(); + assert_eq!(hash_units(&rope), hash_units(&narrow)); + } + #[test] fn tagged_atom_decimal_strings_are_narrow_and_fresh() { for (value, expected) in [ diff --git a/src/engine/vm/dispatch.rs b/src/engine/vm/dispatch.rs index 78cbd8c7..2bc3642c 100644 --- a/src/engine/vm/dispatch.rs +++ b/src/engine/vm/dispatch.rs @@ -468,9 +468,7 @@ impl VmActivation { host.dynamic_import(specifier, options)? } Instruction::Call(argument_count) => { - let arguments = self.take_call_arguments(*argument_count, 1)?; - let function = self.pop()?; - host.call(function, Value::Undefined, arguments)? + self.call_from_stack(*argument_count, false, host)? } Instruction::TailCall(argument_count) => { let arguments = self.take_call_arguments(*argument_count, 1)?; @@ -486,10 +484,7 @@ impl VmActivation { self.execute_eval_call(function, arguments, *environment, host)? } Instruction::CallMethod(argument_count) => { - let arguments = self.take_call_arguments(*argument_count, 2)?; - let function = self.pop()?; - let receiver = self.pop()?; - host.call(function, receiver, arguments)? + self.call_from_stack(*argument_count, true, host)? } Instruction::TailCallMethod(argument_count) => { let arguments = self.take_call_arguments(*argument_count, 2)?; diff --git a/src/engine/vm/frame_execution.rs b/src/engine/vm/frame_execution.rs index 3ef7fb53..a1d34190 100644 --- a/src/engine/vm/frame_execution.rs +++ b/src/engine/vm/frame_execution.rs @@ -290,6 +290,38 @@ impl VmActivation { .ok_or_else(|| Error::internal("bytecode stack depth operand is out of bounds")) } + /// Reuse this activation's argument tail for ordinary calls. Callee and + /// receiver move out once; the argument values remain rooted in place. + /// Always detach consumed operands after the synchronous host entry, + /// including throws/internal errors, before the interpreter can unwind. + pub(in crate::engine::vm) fn call_from_stack( + &mut self, + argument_count: u16, + method: bool, + host: &mut impl VmHost, + ) -> Result { + let fixed_values = if method { 2 } else { 1 }; + let required = usize::from(argument_count) + .checked_add(fixed_values) + .ok_or_else(|| Error::internal("call operand count overflow"))?; + let base = self + .stack + .len() + .checked_sub(required) + .ok_or_else(|| Error::internal("call operands underflow the VM stack"))?; + let arguments_start = base + fixed_values; + let function = std::mem::replace(&mut self.stack[arguments_start - 1], Value::Undefined); + let receiver = if method { + std::mem::replace(&mut self.stack[base], Value::Undefined) + } else { + Value::Undefined + }; + let result = + host.call_with_borrowed_arguments(function, receiver, &self.stack[arguments_start..]); + self.stack.truncate(base); + result + } + pub(in crate::engine::vm) fn take_call_arguments( &mut self, argument_count: u16, diff --git a/src/engine/vm/host_bridge.rs b/src/engine/vm/host_bridge.rs index 811b32a6..3a0c0d85 100644 --- a/src/engine/vm/host_bridge.rs +++ b/src/engine/vm/host_bridge.rs @@ -1693,6 +1693,9 @@ impl RuntimeVmHost { }; } + if let Some(key) = self.runtime.immediate_numeric_property_key(&value) { + return Ok(VmPropertyKeyConversion::Key(key)); + } let key = match value { Value::Symbol(symbol) => { if !symbol.belongs_to(&self.runtime) { @@ -1720,6 +1723,9 @@ impl RuntimeVmHost { /// Convert the authenticated output of `ToPropKey` without invoking any /// user-observable coercion a second time. fn canonical_property_key_from_value(&self, value: &Value) -> Result { + if let Some(key) = self.runtime.immediate_numeric_property_key(value) { + return Ok(key); + } match value { Value::Symbol(symbol) => { if !symbol.belongs_to(&self.runtime) { @@ -4116,9 +4122,18 @@ impl VmHost for RuntimeVmHost { function: Value, this_value: Value, arguments: Vec, + ) -> Result { + self.call_with_borrowed_arguments(function, this_value, &arguments) + } + + fn call_with_borrowed_arguments( + &mut self, + function: Value, + this_value: Value, + arguments: &[Value], ) -> Result { self.runtime - .call_value_internal(self.current_realm, function, this_value, &arguments) + .call_value_internal(self.current_realm, function, this_value, arguments) .map_err(runtime_error_to_vm_error) } diff --git a/src/engine/vm/numeric_execution.rs b/src/engine/vm/numeric_execution.rs index 4d3e250a..16f60b28 100644 --- a/src/engine/vm/numeric_execution.rs +++ b/src/engine/vm/numeric_execution.rs @@ -1,5 +1,29 @@ use super::*; +/// Number-tag updates cannot call JavaScript and preserve an existing Float +/// tag, including signed zero. Int32 overflow promotes exactly once to Float64. +fn updated_number(value: &Value, increment: bool) -> Option { + match value { + Value::Int(old) => { + let next = if increment { + old.checked_add(1) + } else { + old.checked_sub(1) + }; + Some(next.map_or_else( + || Value::Float(f64::from(*old) + if increment { 1.0 } else { -1.0 }), + Value::Int, + )) + } + Value::Float(old) => Some(Value::Float(if increment { + *old + 1.0 + } else { + *old - 1.0 + })), + _ => None, + } +} + impl VmActivation { pub(in crate::engine::vm) fn neg( &mut self, @@ -50,38 +74,28 @@ impl VmActivation { increment: bool, postfix: bool, ) -> Result, Error> { + if let Some(top) = self.stack.last_mut() + && let Some(next) = updated_number(top, increment) + { + if postfix { + self.stack.push(next); + } else { + *top = next; + } + return Ok(OperationOutcome::Value(())); + } let operand = match to_primitive(host, self.pop()?, ToPrimitiveHint::Number)? { Completion::Return(value) => value, Completion::Throw(value) => return Ok(OperationOutcome::Throw(value)), }; - match operand { - Value::Int(old) => { - let new = if increment { - old.checked_add(1) - } else { - old.checked_sub(1) - }; - if postfix { - self.stack.push(Value::Int(old)); - } - self.stack.push(new.map_or_else( - || { - Value::Float(if increment { - f64::from(old) + 1.0 - } else { - f64::from(old) - 1.0 - }) - }, - Value::Int, - )); - } - Value::Float(old) => { - let new = if increment { old + 1.0 } else { old - 1.0 }; - if postfix { - self.stack.push(Value::Float(old)); - } - self.stack.push(Value::Float(new)); + if let Some(next) = updated_number(&operand, increment) { + if postfix { + self.stack.push(operand); } + self.stack.push(next); + return Ok(OperationOutcome::Value(())); + } + match operand { Value::BigInt(old) => { let one = JsBigInt::from(1_i32); let new = if increment { diff --git a/src/engine/vm/protocol.rs b/src/engine/vm/protocol.rs index 29365775..9ef0e0fd 100644 --- a/src/engine/vm/protocol.rs +++ b/src/engine/vm/protocol.rs @@ -497,6 +497,18 @@ pub(crate) trait VmHost { this_value: Value, arguments: Vec, ) -> Result; + /// Borrow a synchronous call-entry argument window. The caller keeps the + /// values rooted until this returns; any captured/suspended arguments must + /// acquire their own ownership before returning. Hosts without a borrowed + /// entry keep the existing owned-argument protocol through this fallback. + fn call_with_borrowed_arguments( + &mut self, + function: Value, + this_value: Value, + arguments: &[Value], + ) -> Result { + self.call(function, this_value, arguments.to_vec()) + } /// QuickJS `OP_apply`. The host owns callable/constructor validation /// ordering around argument-list construction. fn apply( diff --git a/src/engine/vm/tests.rs b/src/engine/vm/tests.rs index a2aee11b..e2fa9a29 100644 --- a/src/engine/vm/tests.rs +++ b/src/engine/vm/tests.rs @@ -666,6 +666,61 @@ fn swap_exchanges_only_the_top_two_values() { assert_eq!(Vm::new().execute(&function).unwrap(), Value::Int(2)); } +#[test] +fn borrowed_call_window_keeps_lower_operands_and_cleans_up_all_exit_kinds() { + let function = DetachedBytecode:: { + code: vec![], + constants: vec![], + local_count: 0, + max_stack: 5, + }; + for method in [false, true] { + for outcome in [ + Ok(Completion::Return(Value::Int(42))), + Ok(Completion::Throw(Value::Int(43))), + Err(Error::internal("test host failure")), + ] { + let mut host = DetachedHost::new(&function); + let summarize = |result: &Result| match result { + Ok(Completion::Return(value)) => Ok(("return", value.clone())), + Ok(Completion::Throw(value)) => Ok(("throw", value.clone())), + Err(error) => Err(error.to_string()), + }; + let expected = summarize(&outcome); + host.call_results.push_back(outcome); + let mut activation = VmActivation::new(5); + activation.stack.push(Value::Int(99)); + if method { + activation.stack.push(Value::Int(10)); + } + activation + .stack + .extend([Value::Int(11), Value::Int(12), Value::Int(13)]); + let result = activation.call_from_stack(2, method, &mut host); + assert_eq!(summarize(&result), expected); + assert_eq!(activation.stack, [Value::Int(99)]); + assert_eq!( + host.call_inputs, + [( + Value::Int(11), + if method { + Value::Int(10) + } else { + Value::Undefined + }, + vec![Value::Int(12), Value::Int(13)] + )] + ); + } + } + let mut host = DetachedHost::new(&function); + let mut activation = VmActivation::new(1); + activation.stack.push(Value::Int(99)); + assert!(activation.call_from_stack(1, false, &mut host).is_err()); + assert_eq!(activation.stack, [Value::Int(99)]); + assert!(host.call_inputs.is_empty()); +} + #[test] fn tail_invocations_complete_the_frame_with_exact_call_operands() { let plain = DetachedBytecode:: { diff --git a/src/source/README.md b/src/source/README.md index 10168265..85eece91 100644 --- a/src/source/README.md +++ b/src/source/README.md @@ -10,3 +10,8 @@ - [mod.rs](mod.rs):模块入口、共享接口与子模块声明。 - [text.rs](text.rs):Byte-exact carrier text for dynamically supplied ECMAScript source.。 - [unicode/](unicode/README.md):子模块职责与文件说明。 + +`QuickJsSourceLocator` 服务一次性诊断,保持无分配;大量位置查询使用其 +`index()` 生成的 `QuickJsSourceIndex`。索引按每 256 个原始字节记录行列, +跨所有子函数共享,查询最多扫描 255 字节,单个超长行也不会退化。 +两者使用相同 LF/UTF-8 continuation 计数规则,不把解析字节改成标准 UTF-8。 diff --git a/src/source/coordinates.rs b/src/source/coordinates.rs index 8bada12b..512fd421 100644 --- a/src/source/coordinates.rs +++ b/src/source/coordinates.rs @@ -112,20 +112,109 @@ impl<'source> QuickJsSourceLocator<'source> { return Err(DebugMetadataError::OffsetNotUtf8Boundary); } - let mut line = 0_u32; - let mut column = 0_u32; - for byte in &self.source[..byte_offset] { - if *byte == b'\n' { - line = line - .checked_add(1) - .ok_or(DebugMetadataError::LineOrColumnOverflow)?; - column = 0; - } else if byte & 0xc0 != 0x80 { - column = column - .checked_add(1) - .ok_or(DebugMetadataError::LineOrColumnOverflow)?; - } + advance_position(LineColumn::default(), &self.source[..byte_offset]) + } + + /// Prepare bounded-distance lookups for consumers with many source sites. + /// One-off diagnostics can keep using the allocation-free locator. + pub fn index(self) -> Result, DebugMetadataError> { + let mut checkpoints = Vec::with_capacity(self.source.len() / SOURCE_CHECKPOINT_BYTES + 1); + let mut position = LineColumn::default(); + checkpoints.push(position); + for chunk in self.source.chunks_exact(SOURCE_CHECKPOINT_BYTES) { + position = advance_position(position, chunk)?; + checkpoints.push(position); + } + Ok(QuickJsSourceIndex { + locator: self, + checkpoints, + }) + } +} + +const SOURCE_CHECKPOINT_BYTES: usize = 256; + +/// Source-owned coordinate index shared across all functions in one lowering. +/// Construction is O(source bytes); each query scans at most 255 bytes after +/// an O(1) checkpoint lookup. Storage is eight bytes per 256 source bytes, +/// excluding Vec metadata/capacity. Long single-line sources remain bounded. +#[derive(Debug)] +pub struct QuickJsSourceIndex<'source> { + locator: QuickJsSourceLocator<'source>, + checkpoints: Vec, +} + +impl QuickJsSourceIndex<'_> { + pub fn locate(&self, offset: SourceOffset) -> Result { + self.locate_byte_offset(offset.as_usize()) + } + + pub fn locate_byte_offset(&self, byte_offset: usize) -> Result { + if byte_offset > self.locator.source.len() { + return Err(DebugMetadataError::OffsetOutOfBounds); + } + if self + .locator + .utf8 + .is_some_and(|source| !source.is_char_boundary(byte_offset)) + { + return Err(DebugMetadataError::OffsetNotUtf8Boundary); + } + let checkpoint = byte_offset / SOURCE_CHECKPOINT_BYTES; + advance_position( + self.checkpoints[checkpoint], + &self.locator.source[checkpoint * SOURCE_CHECKPOINT_BYTES..byte_offset], + ) + } +} + +/// Shared byte-level rule, including malformed UTF-8 and CR-only source. +fn advance_position( + mut position: LineColumn, + bytes: &[u8], +) -> Result { + for &byte in bytes { + if byte == b'\n' { + position.line = position + .line + .checked_add(1) + .ok_or(DebugMetadataError::LineOrColumnOverflow)?; + position.column = 0; + } else if byte & 0xc0 != 0x80 { + position.column = position + .column + .checked_add(1) + .ok_or(DebugMetadataError::LineOrColumnOverflow)?; + } + } + Ok(position) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn indexed_coordinates_match_scans_at_every_raw_byte_and_utf8_boundary() { + let raw = [b'a', 0x80, 0xff, b'\r', b'\n', 0xe2, 0x80, 0xa8].repeat(100); + let locator = QuickJsSourceLocator::from_bytes(&raw); + let indexed = locator.index().unwrap(); + for offset in (0..=raw.len() + 1).rev() { + assert_eq!( + indexed.locate_byte_offset(offset), + locator.locate_byte_offset(offset) + ); + } + let text = ("é\r\n𝄞\u{2028}".to_owned() + &"x".repeat(600)).repeat(3); + let locator = QuickJsSourceLocator::new(&text); + let indexed = locator.index().unwrap(); + for offset in 0..=text.len() + 1 { + assert_eq!( + indexed.locate_byte_offset(offset), + locator.locate_byte_offset(offset) + ); } - Ok(LineColumn { line, column }) + let empty = QuickJsSourceLocator::from_bytes(b"").index().unwrap(); + assert_eq!(empty.locate_byte_offset(0), Ok(LineColumn::new(0, 0))); } }