| if (!this.hasOwnProperty("TypedObject")) |
| quit(); |
| |
| var TO = TypedObject; |
| |
| var PointType = new TO.StructType({x: TO.float64, y: TO.float64, name:TO.string}); |
| var LineType = new TO.StructType({from: PointType, to: PointType}); |
| |
| function testBasic(gc) { |
| var line = new LineType(); |
| var from = line.from; |
| var to = line.to; |
| line.from.x = 12; |
| line.from.name = "three"; |
| if (gc) |
| minorgc(); |
| assertEq(to.name, ""); |
| assertEq(from.name, "three"); |
| assertEq(from.x, 12); |
| assertEq(from.y, 0); |
| } |
| for (var i = 0; i < 5; i++) |
| testBasic(false); |
| for (var i = 0; i < 5; i++) |
| testBasic(true); |