michael@0: // Copyright 2009 the Sputnik authors. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * If Result.type is break and Result.target is in the current michael@0: * label set, return (normal, Result.value, empty) michael@0: * michael@0: * @path ch12/12.11/S12.11_A1_T3.js michael@0: * @description Using case with null, NaN, Infinity michael@0: */ michael@0: michael@0: function SwitchTest(value){ michael@0: var result = 0; michael@0: michael@0: switch(value) { michael@0: case 0: michael@0: result += 2; michael@0: case 1: michael@0: result += 4; michael@0: break; michael@0: case 2: michael@0: result += 8; michael@0: case 3: michael@0: result += 16; michael@0: default: michael@0: result += 32; michael@0: break; michael@0: case null: michael@0: result += 64; michael@0: case NaN: michael@0: result += 128; michael@0: break; michael@0: case Infinity: michael@0: result += 256; michael@0: case 2+3: michael@0: result += 512; michael@0: break; michael@0: case undefined: michael@0: result += 1024; michael@0: } michael@0: michael@0: return result; michael@0: } michael@0: michael@0: if(!(SwitchTest(0) === 6)){ michael@0: $ERROR("#1: SwitchTest(0) === 6. Actual: SwitchTest(0) ==="+ SwitchTest(0) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(1) === 4)){ michael@0: $ERROR("#2: SwitchTest(1) === 4. Actual: SwitchTest(1) ==="+ SwitchTest(1) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(2) === 56)){ michael@0: $ERROR("#3: SwitchTest(2) === 56. Actual: SwitchTest(2) ==="+ SwitchTest(2) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(3) === 48)){ michael@0: $ERROR("#4: SwitchTest(3) === 48. Actual: SwitchTest(3) ==="+ SwitchTest(3) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(4) === 32)){ michael@0: $ERROR("#5: SwitchTest(4) === 32. Actual: SwitchTest(4) ==="+ SwitchTest(4) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(5) === 512)){ michael@0: $ERROR("#5: SwitchTest(5) === 512. Actual: SwitchTest(5) ==="+ SwitchTest(5) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(true) === 32)){ michael@0: $ERROR("#6: SwitchTest(true) === 32. Actual: SwitchTest(true) ==="+ SwitchTest(true) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(false) === 32)){ michael@0: $ERROR("#7: SwitchTest(false) === 32. Actual: SwitchTest(false) ==="+ SwitchTest(false) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(null) === 192)){ michael@0: $ERROR("#8: SwitchTest(null) === 192. Actual: SwitchTest(null) ==="+ SwitchTest(null) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(void 0) === 1024)){ michael@0: $ERROR("#9: SwitchTest(void 0) === 1024. Actual: SwitchTest(void 0) ==="+ SwitchTest(void 0) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(NaN) === 32)){ michael@0: $ERROR("#10: SwitchTest(NaN) === 32. Actual: SwitchTest(NaN) ==="+ SwitchTest(NaN) ); michael@0: } michael@0: michael@0: if(!(SwitchTest(Infinity) === 768)){ michael@0: $ERROR("#10: SwitchTest(NaN) === 768. Actual: SwitchTest(NaN) ==="+ SwitchTest(NaN) ); michael@0: } michael@0: