[TS] Replace the constant toString call approximation
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 62/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- kotlin, node.js, typescript
- Domaine
- compilers
Piste de recherche
Read usvm-ts/src/main/kotlin/org/usvm/machine/expr/CallApproximations.kt around lines 90-107, then replay the provided text() example with TypeScript/Node.js as the concrete reference. Add a focused symbolic test covering the supported receiver case and verify that unsupported operand or environment behavior remains explicit rather than exact.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Current state (2026-10-14)
Audited against usvm main at 19866c959d.
The default model dispatcher routes toString away from the old generic constant path, but the compatibility dispatcher still returns "I am a string" and no Number.toString exact model was identified for the original 42 example.
Remaining acceptance boundary
Provide receiver-proven supported toString semantics (starting with the original numeric example), explicitly classify remaining receivers and cover both dispatcher configurations. Removing a constant via STOP_PATH is not exact execution support.
Original report and acceptance context, retained for traceability
Problem
The generic .toString() approximation returns "I am a string" for every receiver.
Minimal TypeScript example
export function text(): string {
return (42).toString();
}
Expected behavior
text() returns "42". Select semantics based on proven receiver type; avoid applying one fixed result to arrays, numbers and arbitrary objects. Unknown receiver behavior must remain explicit.
Current source evidence
Checked against USVM main 53dce8f3bca2713642c783ba8308a6a360a9e516. This exact snippet is a proposed regression from source audit; it has not yet been run as a new end-to-end test. #368 audits the existing call approximations but does not implement these individual fixes.
Acceptance criteria
- A focused test checks the symbolic outcome without reporting an approximation as exact semantics.
- The supported case agrees with concrete TypeScript/Node.js replay.
- Unsupported operand or environment cases remain explicit.
- Langage dominant
- Kotlin
- Étoiles
- 33
- Forks
- 27
- Merge moyen
- 3 j 21 h
- PR mergées (30 j)
- 88
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de UnitTestBot/usvm
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
UnitTestBot/usvm#612 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 18/100
UnitTestBot/usvm#618 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
UnitTestBot/usvm#613 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 43/100
UnitTestBot/usvm#604 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
UnitTestBot/usvm#592 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de UnitTestBot/usvm
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
software-mansion/enriched-markdown#1033 ·
Les mainteneurs répondent en général sous 2 jours
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Les mainteneurs répondent en général sous 1 jour
-
Improve navigation menuOuverteapp
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
LawnchairLauncher/lawnicons#4180 ·
Les mainteneurs répondent en général sous 1 jour
-
Kotlin extra warnings in GeneratedAppGlideModuleImplPeut-être pris @bacecek l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 18 jours