Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Non standard: Cette fonctionnalité n'est pas standardisée. Nous déconseillons d'utiliser des fonctionnalités non standard en production, car leur prise en charge par les navigateurs est limitée, et elles peuvent être modifiées ou supprimées. Toutefois, elles peuvent constituer une alternative appropriée dans certains cas où aucune option standard n'existe.
Note : La propriété stack est de facto implémentée par tous les principaux moteurs JavaScript, et le comité de standardisation JavaScript envisage de la standardiser (angl.). Vous ne pouvez pas vous fier au contenu précis de la chaîne de la pile à cause des incohérences d'implémentation, mais vous pouvez généralement supposer qu'elle existe et l'utiliser à des fins de débogage.
La propriété non standard stack d'une instance de Error fournit une trace des fonctions appelées, dans quel ordre, depuis quelle ligne et quel fichier, et avec quels arguments. La chaîne de la pile va des appels les plus récents aux plus anciens, jusqu'à l'appel initial dans la portée globale.
Une chaîne de caractères.
Comme la propriété stack n'est pas standard, les implémentations diffèrent quant à l'endroit où elle est installée.
| Écrivable | Oui |
| Énumérable | Non |
| Configurable | Oui |
Chaque moteur JavaScript utilise son propre format pour les traces de pile, mais ils sont assez cohérents dans leur structure générale. Chaque implémentation utilise une ligne distincte dans la pile pour représenter chaque appel de fonction. L'appel qui a directement causé l'erreur est placé en haut, et l'appel qui a démarré toute la chaîne d'appels est placé en bas. Voici quelques exemples de traces de pile :
V8 fournit l'API de trace de pile (angl.) non standard pour personnaliser la trace de pile, incluant Error.captureStackTrace(), Error.stackTraceLimit et Error.prepareStackTrace(). D'autres moteurs prennent en charge cette API à des degrés divers.
Différents moteurs définissent cette valeur à des moments différents. La plupart des moteurs modernes la définissent lors de la création de l'objet Error. Cela signifie que vous pouvez obtenir la pile complète d'appels dans une fonction en utilisant ce qui suit :
Sans avoir à lever une erreur puis à l'intercepter.
Les trames de pile peuvent aussi provenir d'autres éléments que des appels de fonction explicites. Par exemple, les gestionnaires d'évènements, les tâches temporisées et les gestionnaires de promesses démarrent tous leur propre chaîne d'appels. Le code source à l'intérieur des appels à eval() et au constructeur Function apparaît aussi dans la pile :
Dans Firefox, vous pouvez utiliser la directive //# sourceURL pour nommer une source d'évaluation. Voir la documentation Firefox Déboguer des sources évaluées (angl.).
Le script suivant montre comment utiliser la propriété stack pour afficher une trace de pile dans la fenêtre de votre navigateur. Vous pouvez l'utiliser pour vérifier à quoi ressemble la structure de pile de votre navigateur.
Ne fait partie d'aucune spécification.
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 21 févr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.