S11.6.1_A4_T1.js (1297B)
1 // Copyright 2009 the Sputnik authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 info: | 6 The result of an addition is determined using the rules of IEEE 754 7 double-precision arithmetics 8 es5id: 11.6.1_A4_T1 9 description: If either operand is NaN, the result is NaN 10 ---*/ 11 12 //CHECK#1 13 if (isNaN(Number.NaN + 1) !== true ) { 14 throw new Test262Error('#1: NaN + 1 === Not-a-Number. Actual: ' + (NaN + 1)); 15 } 16 17 //CHECK#2 18 if (isNaN(1 + Number.NaN) !== true ) { 19 throw new Test262Error('#2: 1 + NaN === Not-a-Number. Actual: ' + (1 + NaN)); 20 } 21 22 //CHECK#3 23 if (isNaN(Number.NaN + Number.POSITIVE_INFINITY) !== true ) { 24 throw new Test262Error('#3: NaN + Infinity === Not-a-Number. Actual: ' + (NaN + Infinity)); 25 } 26 27 //CHECK#4 28 if (isNaN(Number.POSITIVE_INFINITY + Number.NaN) !== true ) { 29 throw new Test262Error('#4: Infinity + NaN === Not-a-Number. Actual: ' + (Infinity + NaN)); 30 } 31 32 //CHECK#5 33 if (isNaN(Number.NaN + Number.NEGATIVE_INFINITY) !== true ) { 34 throw new Test262Error('#5: NaN + Infinity === Not-a-Number. Actual: ' + (NaN + Infinity)); 35 } 36 37 //CHECK#6 38 if (isNaN(Number.NEGATIVE_INFINITY + Number.NaN) !== true ) { 39 throw new Test262Error('#6: Infinity + NaN === Not-a-Number. Actual: ' + (Infinity + NaN)); 40 } 41 42 reportCompare(0, 0);