max-string-length.js (479B)
1 load(libdir + "asserts.js"); 2 3 const MaxStringLength = 2**30 - 2; 4 5 // First check MaxStringLength is accurate. 6 assertThrowsInstanceOf(() => "a".repeat(MaxStringLength + 1), 7 RangeError); 8 9 // escape() must handle uint32_t overflow correctly. 10 var s = "\u0390".repeat(MaxStringLength); 11 assertEq(s.length, MaxStringLength); 12 var ex = null; 13 try { 14 escape(s); 15 } catch (e) { 16 ex = e; 17 } 18 assertEq(ex === "out of memory" || (ex instanceof InternalError), true);