if (!this.hasOwnProperty("TypedObject")) quit(); setJitCompilerOption("ion.warmup.trigger", 30); var PointType2 = new TypedObject.StructType({ x: TypedObject.float64, y: TypedObject.float64}); var PointType3 = new TypedObject.StructType({ x: TypedObject.float64, y: TypedObject.float64, z: TypedObject.float64}); function xPlusY(p) { return p.x + p.y; } function xPlusYTweak(p) { p.x = 22; return xPlusY(p); } function foo() { var N = 100; var points = []; var obj; var s; for (var i = 0; i < N; i++) { if ((i % 2) == 0) obj = new PointType2({x: i, y: i+1}); else obj = new PointType3({x: i, y: i+1, z: i+2}); assertEq(xPlusY(obj), i + i + 1); assertEq(xPlusYTweak(obj), 22 + i + 1); } } foo();