11550 sujets

JavaScript, DOM et API Web HTML5

Bonsoir tout le monde.

J'aimerai savoir où trouver le code des fonctions natives du langage javascript, tel que celui de la fonction getElementsByTagName, par exemple.

C'est dans l'optique de comprendre un petit peu plus comment marchent ces fonctions, pour approfondir ma connaissance du langage.

Ce sont des fonctions que nous utilisons tous les jours, et je suis curieux de voir comment elles marchent.

Je sais que quand je vais dans le DOM Inspector de Firefox, je vois juste ceci function getElementsByTagName() { [native code] }.

C'est ce qu'il y a à la place du [native code] qui m'intéresse...

J'ai bien essayé de chercher dans les fichiers de mon firefox, mais je ne trouve pas. J'vais essayer de chercher dans les sources du programme que je vais télécharger, mais comme je n'y connais rien en programmation dure, je crains ne pas arriver à trouver ce que je cherche en fouillant le code source de FF...

Si vous avez une petite piste pour trouver ces fonctions, n'hésitez pas. Smiley ravi

Bonne soirée.


ps: si ça intéresse des gens, je veux même bien retaper le code de certaines fonctions ici quand je les aurai... Smiley biggrin
Modifié par Lisarael (10 Feb 2006 - 11:10)
Tout dépend de ce que tu veux savoir exactement !

Si tu cherche la signature des diverses fonctions javaScript (c'est à dire le nom des fonctions, la liste de leur arguments et les valeurs qu'elles retourne), tu as déjà largement de quoi faire :

> http://www.ecma-international.org/publications/standards/ECMA-262.HTM
> http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference
> http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide
> http://xmlfr.org/w3c/TR/REC-DOM-Level-1/
> http://www.yoyodesign.org/doc/w3c/dom2-core/Overview.html
> http://fr.selfhtml.org/javascript/index.htm
> Le JScript de Microsoft

Si maintenant tu t'interresse à l'implémentation des moteurs d'interprétation javascript, il va falloire que tu te mettes aux langages bas-niveau et que tu plonges dans des codes sources assez abscond. En effet, les fonctions natives du JavaScript ne sont jamais codées en JavaScript Smiley cligne

Voir ce post pour avoir un accès aux principaux codes sources des navigateurs Open Sources :
Jep a écrit :
En effet, les fonctions natives du JavaScript ne sont jamais codées en JavaScript Smiley cligne


sérieux ?

j'pensais que si, en particulier pour celle que j'ai cité, par exemple...
Lisarael a écrit :
j'pensais que si, en particulier pour celle que j'ai cité, par exemple...

Il faut bien comprendre que JavaScript est un langage interprété... dont les performance ne sont pas exceptionnel (Contrairement à Java). Pour pouvoir créer un interpréteur digne de ce nom, il faut utiliser des langages compilés qui offre des performances supérieurs
<troll>
Java a des performances exceptionnelles ? On m'aurait menti ?
</troll>

Sinon je ne puis que t'inviter à jeter un oeil dans l'implémentation DOM de KHTML/Safari et KJS. C'est un code plutôt clair, bien qu'en C++.

Tu devrais pouvoir trouver ça sur The WebKit Open Source Project ou chez KHTML
Je ne trouve pas du tout ce que je cherche, tant pis, je me débrouillerai autrement.

Le principe était de pouvoir voir certaines fonctions javascript pour les "copier" dans d'autres langages plus facilement, mais c'est pas grave, je me débrouillerai autrement.

Merci quand même pour votre aide, c'est sympa.