<html>
<head>
<script src="../htmlrunner.js"></script>
<script>
window.onload = function(){ startTest("dromaeo-object-string", 'ef8605c3');
// Try to force real results
var ret;
var num = 80000;
// TESTS: String concatenation
test( "Concat String", function(){
var str = "";
for ( var i = 0; i < num; i++ )
str += "a";
ret = str;
});
test( "Concat String Object", function(){
var str = new String();
for ( var i = 0; i < num; i++ )
str += "a";
ret = str;
});
test( "Concat String from charCode", function(){
var str = "";
for ( var i = 0; i < num / 2; i++ )
str += String.fromCharCode(97);
ret = str;
});
test( "Array String Join", function(){
var str = [];
for ( var i = 0; i < num / 2; i++ )
str.push("a");
ret = str.join("");
});
var ostr = [], tmp, tmp2, num = 5000, tmpstr;
for ( var i = 0; i < 16384; i++ )
ostr.push( String.fromCharCode( (25 * Math.random()) + 97 ) );
ostr = ostr.join("");
ostr += ostr;
ostr += ostr;
var str;
var i = 52288;
prep(function(){
str = new String(ostr);
});
// TESTS: split
test( "String Split", function(){
ret = str.split("");
});
prep(function(){
tmpstr = str;
tmpstr += tmpstr;
tmpstr += tmpstr;
tmpstr += tmpstr;
tmpstr += tmpstr;
});
test( "String Split on Char", function(){
ret = tmpstr.split("a");
});
prep(function(){
str += str;
});
// TESTS: characters
test( "charAt", function(){
for ( var j = 0; j < num; j++ ) {
ret = str.charAt(0);
ret = str.charAt(str.length - 1);
ret = str.charAt( 15000 );
ret = str.charAt( 12000 );
}
});
test( "[Number]", function(){
for ( var j = 0; j < num; j++ ) {
ret = str[0];
ret = str[str.length - 1];
ret = str[ 15000 ];
ret = str[ 10000 ];
ret = str[ 5000 ];
}
});
test( "charCodeAt", function(){
for ( var j = 0; j < num; j++ ) {
ret = str.charCodeAt(0);
ret = str.charCodeAt(str.length - 1);
ret = str.charCodeAt( 15000 );
ret = str.charCodeAt( 10000 );
ret = str.charCodeAt( 5000 );
}
});
// TESTS: indexOf
test( "indexOf", function(){
for ( var j = 0; j < num; j++ ) {
ret = str.indexOf("a");
ret = str.indexOf("b");
ret = str.indexOf("c");
ret = str.indexOf("d");
}
});
test( "lastIndexOf", function(){
for ( var j = 0; j < num; j++ ) {
ret = str.lastIndexOf("a");
ret = str.lastIndexOf("b");
ret = str.lastIndexOf("c");
ret = str.lastIndexOf("d");
}
});
// TESTS: slice
test( "slice", function(){
for ( var j = 0; j < num; j++ ) {
ret = str.slice(0);
ret = str.slice(0,5);
ret = str.slice(-1);
ret = str.slice(-6,-1);
ret = str.slice( 15000, 15005 );
ret = str.slice( 12000, -1 );
}
});
// TESTS: substr
test( "substr", function(){
for ( var j = 0; j < num; j++ ) {
ret = str.substr(0);
ret = str.substr(0,5);
ret = str.substr(-1);
ret = str.substr(-6,1);
ret = str.substr( 15000, 5 );
ret = str.substr( 12000, 5 );
}
});
// TESTS: substring
test( "substring", function(){
for ( var j = 0; j < num; j++ ) {
ret = str.substring(0);
ret = str.substring(0,5);
ret = str.substring(-1);
ret = str.substring(-6,-1);
ret = str.substring( 15000, 15005 );
ret = str.substring( 12000, -1 );
}
});
// TESTS: toLower/UpperCase
test( "toLowerCase", function(){
for ( var j = 0; j < num / 1000; j++ ) {
ret = str.toLowerCase();
}
});
test( "toUpperCase", function(){
for ( var j = 0; j < num / 1000; j++ ) {
ret = str.toUpperCase();
}
});
// TESTS: comparing
prep(function(){
tmp = str;
tmp2 = str;
});
test( "comparing", function(){
tmp = "a" + tmp + "a";
tmp2 = "a" + tmp2 + "a";
for ( var j = 0; j < num / 1000; j++ ) {
ret = tmp == tmp2;
ret = tmp < tmp2;
ret = tmp > tmp2;
}
});
endTest(); };
</script>
</head>
<body></body>
</html>