mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-13 21:29:19 +02:00
pastojs: test record and jsvalue
git-svn-id: trunk@41690 -
This commit is contained in:
parent
a32e69bf72
commit
65d0b1ee00
@ -455,7 +455,7 @@ type
|
|||||||
Procedure TestRecordElementFromFuncResult_AsParams;
|
Procedure TestRecordElementFromFuncResult_AsParams;
|
||||||
Procedure TestRecordElementFromWith_AsParams;
|
Procedure TestRecordElementFromWith_AsParams;
|
||||||
Procedure TestRecord_Equal;
|
Procedure TestRecord_Equal;
|
||||||
Procedure TestRecord_TypeCastJSValueToRecord;
|
Procedure TestRecord_JSValue;
|
||||||
Procedure TestRecord_VariantFail;
|
Procedure TestRecord_VariantFail;
|
||||||
Procedure TestRecord_FieldArray;
|
Procedure TestRecord_FieldArray;
|
||||||
Procedure TestRecord_Const;
|
Procedure TestRecord_Const;
|
||||||
@ -10355,20 +10355,28 @@ begin
|
|||||||
'']));
|
'']));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTestModule.TestRecord_TypeCastJSValueToRecord;
|
procedure TTestModule.TestRecord_JSValue;
|
||||||
begin
|
begin
|
||||||
StartProgram(false);
|
StartProgram(false);
|
||||||
Add('type');
|
Add([
|
||||||
Add(' TRecord = record');
|
'type',
|
||||||
Add(' i: longint;');
|
' TRecord = record',
|
||||||
Add(' end;');
|
' i: longint;',
|
||||||
Add('var');
|
' end;',
|
||||||
Add(' Jv: jsvalue;');
|
'procedure Fly(d: jsvalue; const c: jsvalue);',
|
||||||
Add(' Rec: trecord;');
|
'begin',
|
||||||
Add('begin');
|
'end;',
|
||||||
Add(' rec:=trecord(jv);');
|
'var',
|
||||||
|
' Jv: jsvalue;',
|
||||||
|
' Rec: trecord;',
|
||||||
|
'begin',
|
||||||
|
' rec:=trecord(jv);',
|
||||||
|
' jv:=rec;',
|
||||||
|
' Fly(rec,rec);',
|
||||||
|
' Fly(@rec,@rec);',
|
||||||
|
'']);
|
||||||
ConvertProgram;
|
ConvertProgram;
|
||||||
CheckSource('TestRecord_TypeCastJSValueToRecord',
|
CheckSource('TestRecord_JSValue',
|
||||||
LinesToStr([ // statements
|
LinesToStr([ // statements
|
||||||
'rtl.recNewT($mod, "TRecord", function () {',
|
'rtl.recNewT($mod, "TRecord", function () {',
|
||||||
' this.i = 0;',
|
' this.i = 0;',
|
||||||
@ -10380,11 +10388,16 @@ begin
|
|||||||
' return this;',
|
' return this;',
|
||||||
' };',
|
' };',
|
||||||
'});',
|
'});',
|
||||||
|
'this.Fly = function (d, c) {',
|
||||||
|
'};',
|
||||||
'this.Jv = undefined;',
|
'this.Jv = undefined;',
|
||||||
'this.Rec = $mod.TRecord.$new();',
|
'this.Rec = $mod.TRecord.$new();',
|
||||||
'']),
|
'']),
|
||||||
LinesToStr([
|
LinesToStr([
|
||||||
'$mod.Rec.$assign(rtl.getObject($mod.Jv));',
|
'$mod.Rec.$assign(rtl.getObject($mod.Jv));',
|
||||||
|
'$mod.Jv = $mod.Rec;',
|
||||||
|
'$mod.Fly($mod.TRecord.$clone($mod.Rec), $mod.Rec);',
|
||||||
|
'$mod.Fly($mod.Rec, $mod.Rec);',
|
||||||
'']));
|
'']));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user