url: URLPattern.exec() does not preserve capture group declaration order
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 122k
- Forks
- 37.3k
- Merge moyen
- 4 j 2 h
- PR mergées (30 j)
- 283
Description
Version
latest main branch
Platform
7.1.4-arch1-1
Subsystem
url
What steps will reproduce the bug?
const assert = require('node:assert');
const { URLPattern } = require('node:url');
const pattern = new URLPattern({
pathname: '/:one/:two/:three',
});
const result = pattern.exec('https://example.com/a/b/c');
console.log(Object.entries(result.pathname.groups));
How often does it reproduce? Is there a required condition?
Every
What is the expected behavior? Why is that the expected behavior?
[
['one', 'a'],
['two', 'b'],
['three', 'c'],
]
URLPattern.exec() may expose named capture groups in an order different from their declaration order.
The captured values remain accessible by name, but the incorrect property insertion order is observable through Object.keys(), Object.values(), Object.entries(), object spread, and JSON serialization.
What do you see instead?
[
['three', 'c'],
['two', 'b'],
['one', 'a'],
]
Additional information
No response
Guide de contribution
Ouvrir le guide de contribution
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.
Piste de recherche
Commencez par exécuter la reproduction avec URLPattern.exec() de node:url et examinez l’objet pathname.groups obtenu. Suivez l’implémentation de URLPattern et ses tests afin d’identifier comment les groupes nommés sont insérés ; le travail est considéré comme terminé lorsque les groupes apparaissent dans l’ordre de déclaration tout en restant accessibles par leur nom, avec une couverture de régression pour l’exemple.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript
- Domaine
- api
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 68/100