mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-10 17:12:41 +02:00
The scope collector stored identifier_groups and variables in HashMaps and then sorted them alphabetically before assigning local register indices. The sorts existed only because HashMap iteration order is non-deterministic; alphabetical was a stable choice for comparing bytecode against the now-removed C++ port. Switch both maps to indexmap::IndexMap so iteration follows the order of first reference (= source order), and drop the alphabetical sorts. Local indices now reflect declaration order, which matches what shows up in bytecode dumps and is easier to read alongside the source. Add a focused bytecode test using zebra/yak/aardvark to pin the new allocation order; existing tests using let/var declarations have their local indices renumbered to match.
24 lines
496 B
TOML
24 lines
496 B
TOML
[package]
|
|
name = "libjs_rust"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[lib]
|
|
crate-type = ["staticlib"]
|
|
|
|
# After changing dependencies, regenerate the Flatpak sources:
|
|
# python3 Meta/CMake/flatpak/generate-cargo-sources.py
|
|
[dependencies]
|
|
libunicode_rust = { path = "../../LibUnicode/Rust", default-features = false }
|
|
num-bigint = "0.4"
|
|
num-traits = "0.2"
|
|
num-integer = "0.1"
|
|
indexmap = "2"
|
|
|
|
[build-dependencies]
|
|
bytecode_def = { path = "../BytecodeDef" }
|
|
cbindgen = "0.29"
|
|
|
|
[lints]
|
|
workspace = true
|