text: load("201224b0d1c296b45befd2285e95dd42.js");
  if (!this.hasOwnProperty("TypedObject"))
      quit();
  
  var TO = TypedObject;
  
  var PointType = new TO.StructType({x: TO.int32, y: TO.int32});
  var LineType = new TO.StructType({from: PointType, to: PointType});
  
  function testBasic(how) {
      var line = new LineType();
      var from = line.from;
      var to = line.to;
      TO.storage(to).buffer.expando = "hello";
      var dataview = new DataView(TO.storage(from).buffer);
      line.from.x = 12;
      line.to.x = 3;
      if (how == 1)
          minorgc();
      else if (how == 2)
  	gc();
      assertEq(from.x, 12);
      assertEq(from.y, 0);
      assertEq(to.x, 3);
      assertEq(to.y, 0);
      assertEq(TO.storage(to).byteOffset, 8);
      dataview.setInt32(8, 10, true);
      assertEq(to.x, 10);
      assertEq(TO.storage(line).buffer.expando, "hello");
  }
  for (var i = 0; i < 5; i++)
      testBasic(0);
  for (var i = 0; i < 5; i++)
      testBasic(1);
  for (var i = 0; i < 5; i++)
      testBasic(2);
  