const join = Array.prototype.join;
let obj = { length: 10 };
assertEq(join.call(obj, "" ), "" );
assertEq(join.call(obj), "," .repeat(9 ));
assertEq(join.call(obj, "abc" ), "abc" .repeat(9 ));
obj = { [0 ]: 1 , length: 10 };
assertEq(join.call(obj, "" ), "1" );
assertEq(join.call(obj), "1" + "," .repeat(9 ));
assertEq(join.call(obj, "abc" ), "1" + "abc" .repeat(9 ));
obj = { [0 ]: 1 , [1 ]: 2 , [2 ]: 3 , [3 ]: 4 , [4 ]: 5 , length: 2 };
assertEq(join.call(obj), "1,2" );
assertEq(join.call(obj, "" ), "12" );
assertEq(join.call(obj, "abc" ), "1abc2" );
obj = { [0 ]: 1 , [1 ]: 2 , [2 ]: {}, [3 ]: 4 , length: 3 };
assertEq(join.call(obj), "1,2,[object Object]" );
assertEq(join.call(obj, "" ), "12[object Object]" );
assertEq(join.call(obj, "abc" ), "1abc2abc[object Object]" );
assertEq(new Array(10 ).join("" ), "" );
assertEq(new Array(10 ).join(), "," .repeat(9 ));
assertEq(new Array(10 ).join("abc" ), "abc" .repeat(9 ));
assertEq(new Array(100 ).join(), "," .repeat(99 ));
assertEq(new Array(100 ).join("" ), "" );
assertEq(new Array(100 ).join("abc" ), "abc" .repeat(99 ));
var a = [1 ];
a.length = 10 ;
assertEq(a.join(), "1" + "," .repeat(9 ));
assertEq(a.join("" ), "1" );
assertEq(a.join("abc" ), "1" + "abc" .repeat(9 ));
var a = [1 , 2 , 3 , 4 , 5 ]
a.length = 2 ;
assertEq(a.join(), "1,2" );
assertEq(a.join("" ), "12" );
assertEq(a.join("abc" ), "1abc2" );
var a = [1 , 2 , {}, 4 ];
a.length = 3 ;
assertEq(a.join(), "1,2,[object Object]" );
assertEq(a.join("" ), "12[object Object]" );
assertEq(a.join("abc" ), "1abc2abc[object Object]" );
// Too slow:
// var obj = { [0]: 1, length: 2 ** 33 };
// join.call(obj, "");
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland