regexp-enumerate-001.js [plain text]
var SECTION = "regexp-enumerate-001";
var VERSION = "ECMA_2";
var TITLE = "Regression Test for Enumerating Properties";
var BUGNUMBER="339403";
startTest();
writeHeaderToLog( SECTION + " "+ TITLE);
var tc = 0;
var testcases = new Array();
var r = new RegExp();
var e = new Array();
var t = new TestRegExp();
for ( p in r ) { e[e.length] = { property:p, value:r[p] }; t.addProperty( p, r[p]) };
testcases[testcases.length] = new TestCase( SECTION,
"r = new RegExp(); e = new Array(); "+
"for ( p in r ) { e[e.length] = { property:p, value:r[p] }; e.length",
0,
e.length );
test();
function TestRegExp() {
this.addProperty = addProperty;
}
function addProperty(name, value) {
var pass = false;
if ( eval("this."+name) != void 0 ) {
pass = true;
} else {
eval( "this."+ name+" = "+ false );
}
testcases[testcases.length] = new TestCase( SECTION,
"Property: " + name +" already enumerated?",
false,
pass );
if ( testcases[ testcases.length-1].passed == false ) {
testcases[testcases.length-1].reason = "property already enumerated";
}
}
function test() {
for ( tc=0; tc < testcases.length; tc++ ) {
testcases[tc].passed = writeTestCaseResult(
testcases[tc].expect,
testcases[tc].actual,
testcases[tc].description +" = "+
testcases[tc].actual );
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
}
stopTest();
return ( testcases );
}