Firefox 3.5 – Bugs in der neuen JavaScript Engine?

Unser Service-Space CMS ist momentan nicht kompatibel zu dem letzte Woche erschienenen Firefox 3.5. Das Problem liegt in der Verwendung einer neuen JavaScript-Engine („Tracemonkey“), die den neuen Firefox beschleunigen soll.

Diese ist leider nicht 100% kompatibel zu der vorherigen, und nach aktuellem Kenntnisstand unsererseits fehlerbehaftet.

Es scheint sich um einen Fehler in der automatischen Typenkonvertierung von Strings nach numerisch zu handeln.

Wir konnten das Problem in einer Testumgebung umgehen, indem wir String-Literale, die eine hexadezimale Notation enthalten, durch parseInt(x ,16) manuell in eine Zahl konvertieren.

Laut ECMAScript Spezifikation, Kapitel 9, werden in JavaScript automatisch Typkonvertierungen vorgenommen, wenn dies notwendig ist. Im speziellen geht 9.3.1 auf die Konvertierung von Strings in numerische Werte ein und definiert, dass hier auch hexadezimale Werte zulässig sind.

Diese Regel scheint die neue JavaScript-Engine von Firefox 3.5 zu verletzen. Ein String der Form „0xabcd“ wird in numerischem Kontext nicht automatisch in den Wert 43981 umgewandelt, zumindest nicht in dem Kontext wie er in unserer Programmierung vorkommt (right-side eines bitwise XOR).

Das Problem wird momentan von uns weiter untersucht und ein Hotfix wird baldmöglichst implementiert werden.


Manuel Hirsch

Kommentarfunktion ist deaktiviert