test262/test/language/statements/try/S12.14_A18_T5.js
Mike Pennisi 650e7add4a Improve coverage for ops involving negative zero
Prior to this commit, the modified tests used the strict equality
operator to compare computed values with negative zero. Due to the
semantics of that operator, these tests would spuriously pass if the
value under test was in fact positive zero.

Update the tests to be more precise by instead asserting equality with
the `assert.sameValue` utility method (since that method correctly
distinguishes between negative zero and positive zero).
2021-09-16 16:35:41 -04:00

101 lines
1.7 KiB
JavaScript

// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
info: Catching objects with try/catch/finally statement
es5id: 12.14_A18_T5
description: Catching Number
---*/
// CHECK#1
try{
throw 13;
}
catch(e){
if (e!==13) throw new Test262Error('#1: Exception ===13. Actual: Exception ==='+ e );
}
// CHECK#2
try{
throw 10+3;
}
catch(e){
if (e!==13) throw new Test262Error('#2: Exception ===13. Actual: Exception ==='+ e );
}
// CHECK#3
var b=13;
try{
throw b;
}
catch(e){
if (e!==13) throw new Test262Error('#3: Exception ===13. Actual: Exception ==='+ e );
}
// CHECK#4
var a=3;
var b=10;
try{
throw a+b;
}
catch(e){
if (e!==13) throw new Test262Error('#4: Exception ===13. Actual: Exception ==='+ e );
}
// CHECK#5
try{
throw 2.13;
}
catch(e){
if (e!==2.13) throw new Test262Error('#5: Exception ===2.13. Actual: Exception ==='+ e );
}
// CHECK#6
var ex=2/3;
try{
throw 2/3;
}
catch(e){
if (e!==ex) throw new Test262Error('#6: Exception ===2/3. Actual: Exception ==='+ e );
}
// CHECK#7
try{
throw NaN;
}
catch(e){
assert.sameValue(e, NaN, "e is NaN");
}
// CHECK#8
try{
throw +Infinity;
}
catch(e){
if (e!==+Infinity) throw new Test262Error('#8: Exception ===+Infinity. Actual: Exception ==='+ e );
}
// CHECK#9
try{
throw -Infinity;
}
catch(e){
if (e!==-Infinity) throw new Test262Error('#9: Exception ===-Infinity. Actual: Exception ==='+ e );
}
// CHECK#10
try{
throw +0;
}
catch(e){
if (e!==+0) throw new Test262Error('#10: Exception ===+0. Actual: Exception ==='+ e );
}
// CHECK#11
try{
throw -0;
}
catch(e){
assert.sameValue(e, -0);
}