Files
rust_browser/Cargo.toml
Zachary D. Rowitsch 3edcd53fe8 Add Phase 5 JS262 conformance harness with 99 test cases
Introduce a Test262-inspired conformance test suite with parallel runner,
TOML manifest, and policy enforcement (pass/known_fail/skip). Covers
language core (variables, expressions, functions, control flow, types),
DOM bindings, events, Promises, scheduling, and 20 known-fail cases
documenting unsupported features (for/while loops, try/catch, arrays,
objects, arrow functions, etc.).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:02:23 -05:00

178 lines
3.4 KiB
TOML

[package]
name = "rust_browser"
version = "0.1.0"
edition = "2021"
publish = false
[workspace]
resolver = "2"
members = [
"crates/app_browser",
"crates/browser_runtime",
"crates/web_api",
"crates/js",
"crates/js_vm",
"crates/js_parser",
"crates/dom",
"crates/html",
"crates/css",
"crates/selectors",
"crates/style",
"crates/layout",
"crates/display_list",
"crates/render",
"crates/graphics",
"crates/net",
"crates/storage",
"crates/image",
"crates/fonts",
"crates/platform",
"crates/shared",
]
default-members = [
"crates/app_browser"
]
# --- Workspace-wide dependency versions ---
# Keep this list small and intentional. Prefer std where possible.
[workspace.dependencies]
# Error handling
anyhow = "1"
thiserror = "1"
# Logging / tracing
log = "0.4"
tracing = "0.1"
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt"] }
# Utilities
bitflags = "2"
image_decoder = { package = "image", version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp"] }
resvg = "0.47"
once_cell = "1"
smallvec = "1"
indexmap = "2"
# Bytes / text
bytes = "1"
encoding_rs = "0.8"
unicode-segmentation = "1"
unicode-bidi = "0.3"
# Parsing helpers (use sparingly)
logos = "0.14"
# Windowing and graphics
winit = "0.30"
softbuffer = "0.4"
url = "2"
# Networking
ureq = "2"
# Testing
proptest = "1"
tiny_http = "0.12"
# --- Workspace lints (Rust 1.70+) ---
[workspace.lints.rust]
unsafe_code = "forbid"
[workspace.lints.clippy]
# Pedantic-by-default is often too noisy; start conservative and tighten over time.
all = { level = "warn", priority = -1 }
correctness = { level = "deny", priority = -1 }
suspicious = { level = "deny", priority = -1 }
perf = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
# Allow some lints that tend to create churn early on
module_name_repetitions = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
# --- Profile defaults ---
[profile.dev]
debug = true
[profile.release]
debug = 1
lto = false
codegen-units = 16
# Dependencies for the root package (integration tests)
[dependencies]
html = { path = "crates/html" }
dom = { path = "crates/dom" }
css = { path = "crates/css" }
selectors = { path = "crates/selectors" }
style = { path = "crates/style" }
layout = { path = "crates/layout" }
display_list = { path = "crates/display_list" }
render = { path = "crates/render" }
shared = { path = "crates/shared" }
net = { path = "crates/net" }
image = { path = "crates/image" }
browser_runtime = { path = "crates/browser_runtime" }
js = { path = "crates/js" }
js_vm = { path = "crates/js_vm" }
web_api = { path = "crates/web_api" }
[dev-dependencies]
app_browser = { path = "crates/app_browser" }
tempfile = "3"
[[test]]
name = "goldens"
path = "tests/goldens.rs"
[[test]]
name = "main_cli_tests"
path = "tests/main_cli_tests.rs"
[[test]]
name = "external_css_test"
path = "tests/external_css_test.rs"
[[test]]
name = "navigation_tests"
path = "tests/navigation_tests.rs"
[[test]]
name = "regen_goldens"
path = "tests/regen_goldens.rs"
[[test]]
name = "wpt_harness"
path = "tests/wpt_harness.rs"
[[test]]
name = "js_tests"
path = "tests/js_tests.rs"
[[test]]
name = "js_dom_tests"
path = "tests/js_dom_tests.rs"
[[test]]
name = "js_events"
path = "tests/js_events.rs"
[[test]]
name = "js_scheduling"
path = "tests/js_scheduling.rs"
[[test]]
name = "js262_harness"
path = "tests/js262_harness.rs"