[TS] Evaluate instanceof against the runtime constructor value
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- kotlin, node.js, typescript
- Domínio
- compilers, devtools, testing-qa
Direção de pesquisa
Start at the current instanceof evaluator and its use of the static EtsIR checkType, then review the focused symbolic-test entry point described in the issue. Account for dependencies JacoDB #390 and UnitTestBot/jacodb#396 before testing. Done means both outcomes share one static RHS type, direct checks remain covered, and generated inputs and results replay in Node.js.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
The current instanceof evaluator uses the static checkType from EtsIR. For a dynamic right-hand side, that type does not identify which constructor object the program actually selected. JacoDB PR #395 therefore marks dynamic checks unsupported instead of reporting a possibly false Boolean.
Minimal TypeScript example
class A {}
class B {}
export function check(useA: boolean): boolean {
const ctor = useA ? A : B;
return new A() instanceof ctor;
}
Node.js returns true for check(true) and false for check(false). The ctor expression must be evaluated once; the membership check must use that runtime value, not its static union type.
Expected support
Use the right-hand constructor value and the left-hand object's prototype chain for the supported class-constructor model. Preserve JavaScript behavior for a non-callable RHS (TypeError) where that value is representable. If custom Symbol.hasInstance is outside the current model, report that case as unsupported explicitly.
Acceptance criteria
- A focused symbolic test obtains both outcomes with the same static RHS type and distinguishes unsupported from failure.
- Generated inputs and results replay in Node.js.
- Direct
value instanceof Aremains covered and correct.
Dependencies: JacoDB #390 (RHS evaluation) and UnitTestBot/jacodb#396 (declared class runtime values). Implement this as a separate USVM PR.
- 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
-
enhancement impact:U1 P3 reach:R2 size:S
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
enhancement triaged
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
ankidroid/Anki-Android#22677 ·
Mantenedores costumam responder em até 1 dia
-
Type Pick Request
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
reactwg/react-native-releases#1456 · 1 comentário ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
yschimke/homeassistant-remotecompose#1038 ·
Mantenedores costumam responder em até 1 dia