зеркало из https://github.com/mozilla/pjs.git
57 строки
1.4 KiB
JavaScript
57 строки
1.4 KiB
JavaScript
/**
|
|
* File Name: try-008.js
|
|
* ECMA Section:
|
|
* Description: The try statement
|
|
*
|
|
* This test has a try block in a constructor.
|
|
*
|
|
*
|
|
* Author: christine@netscape.com
|
|
* Date: 11 August 1998
|
|
*/
|
|
var SECTION = "try-008";
|
|
var VERSION = "ECMA_2";
|
|
var TITLE = "The try statement: try in a constructor";
|
|
|
|
startTest();
|
|
writeHeaderToLog( SECTION + " "+ TITLE);
|
|
|
|
var tc = 0;
|
|
var testcases = new Array();
|
|
|
|
function Integer( value, exception ) {
|
|
try {
|
|
this.value = checkValue( value );
|
|
} catch ( e ) {
|
|
this.value = e.toString();
|
|
}
|
|
|
|
testcases[tc++] = new TestCase(
|
|
SECTION,
|
|
"Integer( " + value +" )",
|
|
(exception ? INVALID_INTEGER_VALUE +": " + value : this.value),
|
|
this.value );
|
|
}
|
|
|
|
var INVALID_INTEGER_VALUE = "Invalid value for java.lang.Integer constructor";
|
|
|
|
function checkValue( value ) {
|
|
if ( Math.floor(value) != value || isNaN(value) ) {
|
|
throw ( INVALID_INTEGER_VALUE +": " + value );
|
|
} else {
|
|
return value;
|
|
}
|
|
}
|
|
|
|
// add test cases
|
|
|
|
new Integer( 3, false );
|
|
new Integer( NaN, true );
|
|
new Integer( 0, false );
|
|
new Integer( Infinity, false );
|
|
new Integer( -2.12, true );
|
|
new Integer( Math.LN2, true );
|
|
|
|
|
|
test();
|