// Copyright 2009 the Sputnik authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- info: Using "try" with "catch" or "finally" statement in a constructor es5id: 12.14_A17 description: Creating exceptions within constructor ---*/ var i=1; function Integer( value, exception ) { try{ this.value = checkValue( value ); if(exception) $ERROR('#'+i+'.1: Must be exception'); } catch(e){ this.value = e.toString(); if(!exception) $ERROR('#'+i+'.2: Don`t must be exception'); } i++; } function checkValue(value){ if(Math.floor(value)!=value||isNaN(value)){ throw (INVALID_INTEGER_VALUE +": " + value); } else{ return value; } } // CHECK#1 new Integer(13, false); // CHECK#2 new Integer(NaN, true); // CHECK#3 new Integer(0, false); // CHECK#4 new Integer(Infinity, false); // CHECK#5 new Integer(-1.23, true); // CHECK#6 new Integer(Math.LN2, true); reportCompare(0, 0);