Alexander (HH): Maximale Länge eines Literals

Beitrag lesen

Moin Moin!

Hast Du übrigens mal in die Spezifikationen geschaut? Was hast Du dort gefunden?

Ich habe die Spezifikationen nicht gefunden. Deswegen habe ich hier gefragt ;)

Dann ist Deine Suchmaschine oder Dein Recherche-Vorgehen reichlich kaputt. Ich tippe auf letzteres, denn:

Google schmeißt bei der Suche nach javascript spezifikation als ERSTES Ergebnis ECMA-262 aus. Das zweite Suchergebnis führt zum Mozilla-Projekt, dort definiert man Javascript als Superset von ECMA-262. Das dritte Suchergebnis führt zu einer (noch nicht fertiggestellten) Dokumentation von molily, wo die ganze Standardisierung von JS aufgedröselt und auch wieder auf ECMA-262 verwiesen wird. Treffer vier ist die der Artikel zu Javascript in der deutschen Wikipedia, und Nummer fünf eine Verfeinerung der WhatWG, beide referenzieren wiederum ECMA-262.

Bing sieht das sehr ähnlich, ebenso Metager und Yahoo.

In ECMA-262  sind keine expliziten Längenbeschränkungen zu finden, ein String Literal ist definiert als "zero or more characters enclosed in single or double quotes" (7.8.4 String Literals). Danach wären auch Terabyte große String-Literals möglich.

In der Spec wird allerdings sehr oft mit 32-Bit-Integern (gerne auch signed) herumgefummelt (eben weil wohl fast alle JS-Implementationen mit 32-Bit-Integern arbeiten), deswegen würde ich mich nicht darauf verlassen, dass Strings mit mehr als 2^31 Zeichen (in ECMA-262 als 16-Bit-Integer definiert, d.h. UTF-16) oder auch nur mit mehr 2^31 Bytes unterstützt werden.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".