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: * 1. Evaluate Expression michael@0: * michael@0: * @path ch12/12.13/S12.13_A3_T4.js michael@0: * @description Evaluating array expression michael@0: */ michael@0: michael@0: var mycars = new Array(); michael@0: mycars[0] = "Saab"; michael@0: mycars[1] = "Volvo"; michael@0: mycars[2] = "BMW"; michael@0: michael@0: var mycars2 = new Array(); michael@0: mycars2[0] = "Mercedes"; michael@0: mycars2[1] = "Jeep"; michael@0: mycars2[2] = "Suzuki"; michael@0: michael@0: // CHECK#1 michael@0: try{ michael@0: throw mycars.concat(mycars2); michael@0: } michael@0: catch(e){ michael@0: for (var i=0;i<3;i++){ michael@0: if (e[i]!==mycars[i]) $ERROR('#1.'+i+': Exception['+i+']===mycars['+i+'](operation .concat). Actual: Exception['+i+']==='+ e[i] ); michael@0: } michael@0: for (var i=3;i<6;i++){ michael@0: if (e[i]!==mycars2[i-3]) $ERROR('#1.'+i+': Exception['+i+']===mycars2['+(i-3)+'](operation .concat). Actual: Exception['+i+']==='+ e[i] ); michael@0: } michael@0: } michael@0: michael@0: // CHECK#2 michael@0: try{ michael@0: throw new Array("Mercedes","Jeep","Suzuki"); michael@0: } michael@0: catch(e){ michael@0: for (var i=0;i<3;i++){ michael@0: if (e[i]!==mycars2[i]) $ERROR('#2.'+i+': Exception['+i+']===mycars2['+i+'](operation new). Actual: Exception['+i+']==='+ e[i] ); michael@0: } michael@0: } michael@0: michael@0: // CHECK#3 michael@0: try{ michael@0: throw mycars.concat(new Array("Mercedes","Jeep","Suzuki")); michael@0: } michael@0: catch(e){ michael@0: for (var i=0;i<3;i++){ michael@0: if (e[i]!==mycars[i]) $ERROR('#3.'+i+': Exception['+i+']===mycars['+i+'](operation .concat(new)). Actual: Exception['+i+']==='+ e[i] ); michael@0: } michael@0: for (var i=3;i<6;i++){ michael@0: if (e[i]!==mycars2[i-3]) $ERROR('#3.'+i+': Exception['+i+']===mycars2['+(i-3)+'](operation .concat(new)). Actual: Exception['+i+']==='+ e[i] ); michael@0: } michael@0: } michael@0: