function assertLatin1(s) {
assertEq(isLatin1(s), true , "String: " + s);
}
// string literals
assertLatin1("" );
assertLatin1("x" );
assertLatin1("xy" );
assertLatin1("while" );
assertLatin1("xyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\u00ff." );
assertLatin1("-1" );
assertLatin1("50" );
assertLatin1("873939" );
assertLatin1("12.34" );
assertLatin1("NaN" );
// int32
assertLatin1(String(1 ));
assertLatin1("" + 40 );
assertLatin1(String(873939 ));
assertLatin1(String(-1 ));
assertLatin1((-12983 ).toString());
assertLatin1(20 ..toString(16 ));
assertLatin1((-20 ).toString(12 ));
assertLatin1(12121 ..toString(16 ));
assertLatin1(12144 ..toString(2 ));
// doubles
assertLatin1(String(12 .34 ));
assertLatin1(45 .6 .toString(16 ));
assertLatin1(String(-0 ));
assertLatin1(NaN.toString());
assertLatin1("" + -Infinity);
assertLatin1("a" + 85899345929 );
// other types
assertLatin1(true .toString());
assertLatin1(String(false ));
assertLatin1(String(null ));
assertLatin1(String(undefined));
// objects
assertLatin1(Math.toString());
assertLatin1(({x:1 }).toString());
if (Object.prototype.toSource) {
assertLatin1(({x:"foo" }).toSource());
}
assertLatin1([1 , "bar" ].toString());
// typeof
assertLatin1(typeof "foo" );
assertLatin1(typeof assertEq);
// join
assertLatin1([1 , "foo" , null , true ].join());
assertLatin1([1 , "foo" , null , true ].join(":" ));
// JSON
assertLatin1(JSON.stringify({x:1 ,y:"bar" ,z:[null ],1281298 :Math.PI}));
assertLatin1(JSON.stringify([1 , 2 , 3 ], null , "foo" ));
assertLatin1(JSON.stringify({x:1 ,y:"bar" }, function (k, v) {
assertLatin1(k);
return v;
}));
var arr = [1 , 2 , 3 ]; arr.length = 300 ;
assertLatin1(JSON.stringify(arr, function (k, v) {
assertLatin1(k);
return v;
}));
// Date
assertLatin1(new Date().toString());
assertLatin1(new Date().toISOString());
assertLatin1(Date());
// native functions
assertLatin1(Math.abs.toString());
assertLatin1(Object.getOwnPropertyNames.name);
// scripted functions
function fun1(a, b) { return ["foo\xAA" ]; }
assertLatin1(fun1.toString());
assertLatin1(fun1.name);
// fromCharCode
assertLatin1(String.fromCharCode(99 ));
assertLatin1(String.fromCharCode(99 , 0 xff, 1 ));
// charAt
assertLatin1("foo\u00ff\u1200" .charAt(3 ));
// RegExps
var re = /a\.*b[cC]+/g;
assertLatin1(re.source);
assertLatin1(re.toString());
// For-in
var o = {x: 1 , y: 2 , z\u00ff: 3 , 987654 : 4 , 22 : 5 };
for (var prop in o)
assertLatin1(prop);
// Object.keys
assertLatin1(Object.keys(o)[2 ]);
// Error
(function foo() {
var err;
try { this (); } catch (e) { err = e; }
assertEq(err.name, "TypeError" );
assertLatin1(err.name);
assertLatin1(err.message);
assertLatin1(err.stack);
assertLatin1(err.toString());
try { throw new Error("foo" ); } catch (e) { err = e; }
assertLatin1(err.name);
assertLatin1(err.message);
assertLatin1(err.stack);
assertLatin1(err.toString());
})();
Messung V0.5 in Prozent C=96 H=89 G=92
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland