[TS] Normalize negative indices in Array.fill
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 72/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- kotlin, node.js, typescript
- Domínio
- devtools, testing-qa
Direção de pesquisa
Start at the Fill negative-index TODO in usvm-ts/src/main/kotlin/org/usvm/machine/expr/CallApproximations.kt, lines 495-520, and run the minimal TypeScript example against concrete Node.js behavior. Trace how symbolic indices are represented and how approximation results are classified. Done means a focused symbolic test covers the supported case without claiming exact semantics, while unsupported operands or environments remain explicit.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
The Array.fill approximation explicitly leaves negative start and end indices unsupported.
Minimal TypeScript example
export function fill(): number[] {
return [1, 2, 3].fill(9, -2);
}
Expected behavior
fill() returns [1, 9, 9]. Normalize negative indices relative to length and clamp to the valid interval, including symbolic indices in the supported domain.
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.
- Linguagem predominante
- Kotlin
- Estrelas
- 33
- Forks
- 27
- Merge médio
- 3d 21h
- PRs com merge (30d)
- 88
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de UnitTestBot/usvm
-
[TS PBT] Save campaign-file artifacts before stdout publicationTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
UnitTestBot/usvm#612 ·
Mantenedores costumam responder em até 1 dia
-
[TS PBT] Preserve class verification after expected PBT budget expiryTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 18/100
UnitTestBot/usvm#618 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
UnitTestBot/usvm#613 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 43/100
UnitTestBot/usvm#604 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
UnitTestBot/usvm#592 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de UnitTestBot/usvm
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
lysine-dev/okhttp#9814 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
getdictus/dictus-android#187 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
bryangerlach/rdgen#319 ·
-
documentation follow-up
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia