NumberAtReadFlow: catch starts from the try's entry state, so a non-Number write before a throw is not seen in the catch (suspected)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 30/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, rust, typescript
- Ambito
- compilers
Direzione di ricerca
Start in the number_by_construction pass and find how NumberAtReadFlow seeds the entry state for a catch block. First reproduce the example from the issue with node and with perry, since the report says the bug is unconfirmed. Done means the repro shows the mismatch and the catch entry state includes writes made inside the try before a throw.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Found by review in the lblk lane (#12665); not yet reproduced. In number_by_construction's NumberAtReadFlow, a catch block starts from the state at try entry. A write that can make a local non-Number inside the try before a throw is therefore not joined into the catch, e.g.
function f(k) { let v = 1; try { v = k ? undefined : 2; if (k) throw 0; } catch (e) { return v + 1; } return v; }
console.log(f(1)); // node: NaN
Expected fix: the catch entry state is the join of the states at every point in the try that can throw (conservatively: the join of entry and every state reached in the try). Needs a repro run first.
- Lingua principale
- Rust
- Stelle
- 4.9k
- Fork
- 166
- Merge medio
- 3h 6m
- PR unite (30g)
- 868
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PerryTS/perry
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
performance
Difficoltà 5/5 Più di una settimana Idoneità per principianti 8/100
I maintainer di solito rispondono entro 1 giorno
-
perf: `s += a[i]` over a `Uint8Array` parameter is 4x slower than over other typed arraysForse già presa @delef l’ha presa oggi. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 18/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di PerryTS/perry
Issue simili
-
area:docs documentation good first issue priority:medium
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
rtk-ai/rtk#4958 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
calagopus/panel#285 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: streamed Responses API flex_unavailable error maps to 500 InternalServerError instead of 429Apertallm translation
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 85/100
BerriAI/litellm#49736 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
question
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
autoindex tests: denied loopback bind shows only PermissionDenied (255 failures), not the causeApertafield-report
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno