Create single javascript object with Records

Top 

Example code : Create single javascript object with Records

type

  TSinglePoint = record

    x: Integer;

    y: Integer;

  end;

 

   TSinglePointArray = array of TSinglePoint;

 

procedure TForm1.W3Button11Click(Sender: TObject);

var a: TSinglePointArray;

 

begin

 a.SetLength(1);

 a[0].x := 10;

 a[0].y := 33;

 WriteLn(a[0]);  // {x$1: 10, y: 33}

end;

{x$1: 10, y: 33} 

 

JS output:

var a$66 = [];

  $ArraySetLenC(a$66,1,function (){return {x$1:0,y:0}});

  $DIdxR(a$66,0,"").x$1 = 10;

  $DIdxR(a$66,0,"").y = 33;

  WriteLn($DIdxR(a$66,0,""));

 

// TSinglePoint = record

function Copy$TSinglePoint(s,d) {

   d.x$1=s.x$1;

   d.y=s.y;

   return d;

}

 

function Clone$TSinglePoint($) {

   return {

      x$1:$.x$1,

      y:$.y

   }

}

 

function $DIdxR(a,i,z) {

   if (i<0throw Exception.Create($New(Exception),"Lower bound exceeded! Index "+i.toString()+z);

   if (i>a.length) throw Exception.Create($New(Exception),"Upper bound exceeded! Index "+i.toString()+z);

   return a[i];

};