michael@0: var gTestcases = new Array(); michael@0: var gTc = gTestcases.length; michael@0: function TestCase(n, d, e, a) { michael@0: this.passed = getTestCaseResult(e, a); michael@0: gTestcases[gTc++] = this; michael@0: } michael@0: function getTestCaseResult(expected, actual) { michael@0: if (typeof expected != 'number') michael@0: return actual == expected; michael@0: return Math.abs(actual - expected) <= 1E-10; michael@0: } michael@0: function test() { michael@0: for ( gTc=0; gTc < gTestcases.length; gTc++ ) { michael@0: gTestcases[gTc].passed = writeTestCaseResult(gTestcases[gTc].description +" = "+ gTestcases[gTc].actual); michael@0: } michael@0: function writeTestCaseResult( expect, actual, string ) { michael@0: var passed = getTestCaseResult( expect, actual ); michael@0: } michael@0: } michael@0: var SECTION = "15.4.2.1-1"; michael@0: new TestCase( SECTION, eval("var arr = (new Array(1,2)); arr[0]") ); michael@0: new TestCase( SECTION, "var arr = (new Array(1,2)); String(arr)", "1,2", (this.abstract++)); michael@0: test(); michael@0: new TestCase( SECTION, "VAR1 = NaN; VAR2=1; VAR1 -= VAR2", Number.NaN, eval("VAR1 = Number.NaN; VAR2=1; VAR1 -= VAR2"));