Je viens de passer trente minutes à résoudre un bug de l'interpréteur Javascript de Safari 1.3 (ayant l'interdiction d'entrer dans la pièce d'à côté pendant l'emballage des paquets, il fallait bien que je m'occupe, hein... Bon, j'aurais pu faire la vaisselle, mais c'était un peu trop attendu, j'ai préféré faire original ;-) )

  • Description du symptome : un code Javascript utilisant des exceptions fonctionne sur IE6, Gecko, KHTML, Opera, mais... pas avec JavascriptCore.
  • Début de solution : ajoutez donc un point-virgule à la fin de vos instructions "throw"

(Je rappelle qu'a priori, les point-virgules ne sont pas obligatoires en Javascript)

C'est vraiment curieux, comme bug... D'ailleurs, si quelqu'un pouvait me dire s'il est également présent dans Safari 2.0, ça serait chouette.

Bon, au passage, ça m'aura permis de découvrir la console Javascript de Safari, qui est bien cachée, mais terriblement pratique. Pour les curieux, donc, il suffit, dans un terminal, de taper :

defaults write com.apple.Safari IncludeDebugMenu 1

Vous trouverez plus d'infos dans la FAQ Safari