Je pensais qu'asm.js permettait des optimisations qui marchaient sur tous les navigateurs.
Si c'était le cas, il n'y aurais pas besoin d'asm.js.
rajouter des |0 ou autre pour annoter des types est une astuce qui existait déjà avant asm.js, depuis que V8 fait de la détection de type.
asm.js consiste à implémenter un compilateur spécial qui reconnait un dialecte spécial de javascript.
Quelqu'un d'autre aurais pu faire la même chose. mais si ils prennent d'autre convention alors asm.js est inutile.
Par exemple, a|0 est choisis par asm.js pour spécifier un entier, mais ils auraient pu prendre ~~a ou a&0xffffffff.
Ils ont aussi ajouté une fonction "imul" dans leur stdlib. Quelqu'un d'autre aurait pu choisir "integer_multiplication" comme nom.
Si dans du code asm.js on commet une seule erreur et utilise quelque chose qui n'est pas valide asm.js, alors le compilateur asm.js n'est pas utilisé et le compilateur javascript normal est utilisé.
[^] # Re: Je viens de tester avec Firefox 19.0.2
Posté par Gof (site web personnel) . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 5.
Si c'était le cas, il n'y aurais pas besoin d'asm.js.
rajouter des |0 ou autre pour annoter des types est une astuce qui existait déjà avant asm.js, depuis que V8 fait de la détection de type.
asm.js consiste à implémenter un compilateur spécial qui reconnait un dialecte spécial de javascript.
Quelqu'un d'autre aurais pu faire la même chose. mais si ils prennent d'autre convention alors asm.js est inutile.
Par exemple, a|0 est choisis par asm.js pour spécifier un entier, mais ils auraient pu prendre ~~a ou a&0xffffffff.
Ils ont aussi ajouté une fonction "imul" dans leur stdlib. Quelqu'un d'autre aurait pu choisir "integer_multiplication" comme nom.
Si dans du code asm.js on commet une seule erreur et utilise quelque chose qui n'est pas valide asm.js, alors le compilateur asm.js n'est pas utilisé et le compilateur javascript normal est utilisé.
Bref, asm.js est un nouveau langage.