Storing past the end of a truncated sparse array does not update `length`
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- c, javascript
- Ambito
- backend
Direzione di ricerca
Start by tracing QuickJS's array element assignment and length update paths for sparse arrays, then compare behavior when an array is truncated and an old index is assigned again. Use the reproducer in the issue and check length, indexed access, Object.keys, and indexOf against the listed engines. Done means the affected assignments update the array consistently with the expected output.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
After an array with a hole is truncated with length = 0, storing again at an index it held before can add the element but leave length at 0, so indexOf, join and the other array methods don't see it. It needs at least 8 elements before the truncation, and which indices are affected depends on the array's size.
var a = [0, 1, 2, 3, 4, 5, 6, 7];
a[10] = 1;
a.length = 0;
a[10] = 2;
console.log(a.length, a[10], Object.keys(a).join(), a.indexOf(2));
V8, JSC, SpiderMonkey:
11 2 10 10
QuickJS master (19d6bd8, 2026-10-26):
0 2 10 -1
- Lingua principale
- C
- Stelle
- 11.1k
- Fork
- 1.2k
- Merge medio
- 11h 20m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 bellard/quickjs
-
Collecting WeakMap keys requires multiple GC passesForse già presa @jluxenberg l’ha presa 4 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
bellard/quickjs#581 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 58/100
bellard/quickjs#575 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
I maintainer di solito rispondono entro 3 giorni
-
Update to Unicode 18.0.0Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
bellard/quickjs#559 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di bellard/quickjs
Issue simili
-
documentation
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
-
BUG: `tandg` and `cotdg` lose precision near their poles, `fresnel` is NaN for `|x| >= 2^512`Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
0.kind: build failure
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
I maintainer di solito rispondono entro 2 giorni