Skip to content

[TS PBT] Map property coverage to EtsIR - #381

Open
CaelmBleidd wants to merge 17 commits into
mainfrom
caelmbleidd/issue-350-property-ets-mapping
Open

[TS PBT] Map property coverage to EtsIR#381
CaelmBleidd wants to merge 17 commits into
mainfrom
caelmbleidd/issue-350-property-ets-mapping

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Aug 29, 2026

Copy link
Copy Markdown
Member

Summary

  • resolve property predicate and precondition exports to EtsIR methods with explicit receiver, input, and result bindings
  • map backend-neutral statement and binary branch coverage to exact, ambiguous, unmapped, or unsupported EtsIR targets without guessing across duplicate source candidates
  • preserve TypeScript UTF-16 coordinates, canonical source paths, backend provenance, coverage diagnostics, exhausted preconditions, and typed backend failures across the [TS PBT] Design a Kotlin-first property abstraction for PBT engines and USVM #347-[TS PBT] Map Kotlin property definitions and source coverage to EtsIR #350 block
  • separate PropertyEtsMapper orchestration from EtsEntryPointResolver export resolution and EtsCoverageMapper source/CFG mapping
  • replace the mixed projection supervisor with explicit --adapter and --command modes, one IPC lifecycle, early signal registration, bounded Node timer validation, and owned process-group cleanup
  • type projected values and invocation cloning as JsConcreteValue, preserving aliases/cycles without casts and isolating fast-check message-prefix compatibility checks
  • resolve runtime exports soundly, including type-only exports, callable locals, named/star re-exports, extensionless and directory-index candidates, and sparse ambiguous branches
  • centralize Kotlin mapping diagnostic IDs and validate non-blank diagnostic code/message values

JacoDB dependency

  • [ETS] Preserve type-only export metadata jacodb#364 is merged as ddb127d9ef1b9ec88a2e4373aa7dc2562b966472
  • current exact pin: ddb127d9ef1b9ec88a2e4373aa7dc2562b966472 (ddb127d9ef in Dependencies.kt)
  • the pin preserves isTypeOnly independently of the runtime declaration kind

Verification

  • npm test in usvm-ts-pbt/fast-check-adapter: 48/48
  • ./gradlew :usvm-ts-pbt:test :usvm-ts-pbt:detekt --rerun-tasks: 168/168 JVM tests, 0 Detekt findings
  • ./gradlew :usvm-ts-pbt:check :usvm-ts-pbt:detekt :usvm-ts-pbt:installDist: successful
  • installed-distribution command supervisor smoke: packaged process-supervisor.js relayed output and removed its PID file
  • packaged runtime contains process-supervisor.js and no stale projection-supervisor.js
  • git diff HEAD^ --check

Closes #350

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TS PBT] Map Kotlin property definitions and source coverage to EtsIR

1 participant