Skip to content

Commit a7aadfa

Browse files
Coldzer0Coldzer0
Coldzer0
authored and
Coldzer0
committed
Update quickjs.pas
Bug fixes
1 parent 53e0d70 commit a7aadfa

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

quickjs.pas

+20-18
Original file line numberDiff line numberDiff line change
@@ -447,11 +447,11 @@ JSClassDef = record
447447
magic:Integer):JSValue; cdecl;
448448
JSCFunctionType = record
449449
case Integer of
450-
0 : ( &generic : PJSCFunction );
450+
0 : ( &generic : JSCFunction );
451451
1 : ( generic_magic : JSCFunctionMagic);
452-
2 : ( &constructor : PJSCFunction );
452+
2 : ( &constructor : JSCFunction );
453453
3 : ( constructor_magic : constructor_magic_func);
454-
4 : ( constructor_or_func : PJSCFunction );
454+
4 : ( constructor_or_func : JSCFunction );
455455
5 : ( f_f : f_f_func);
456456
6 : ( f_f_f : f_f_f_func);
457457
7 : ( getter : Getter_func);
@@ -843,12 +843,12 @@ function JS_NewCFunctionMagic(ctx : JSContext; func : PJSCFunctionMagic; name :
843843

844844
{ C property definition }
845845

846-
function JS_CFUNC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; func1 : JSCFunctionType) : JSCFunctionListEntry;
846+
function JS_CFUNC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; func : JSCFunction) : JSCFunctionListEntry;
847847
function JS_CFUNC_MAGIC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; func1 : JSCFunctionType; magic : Int16) : JSCFunctionListEntry;
848848
function JS_CFUNC_SPECIAL_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; cproto : JSCFunctionEnum ; func1 : JSCFunctionType) : JSCFunctionListEntry;
849849
function JS_ITERATOR_NEXT_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; func1 : JSCFunctionType; magic : Int16) : JSCFunctionListEntry;
850-
function JS_CGETSET_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; fgetter, fsetter : JSCFunctionType) : JSCFunctionListEntry;
851-
function JS_CGETSET_MAGIC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; fgetter, fsetter : JSCFunctionType; magic : Int16) : JSCFunctionListEntry;
850+
function JS_CGETSET_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; fgetter : Getter_func; fsetter : Setter_func) : JSCFunctionListEntry;
851+
function JS_CGETSET_MAGIC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; fgetter_magic : getter_magic_func; fsetter_magic : setter_magic_func; magic : Int16) : JSCFunctionListEntry;
852852
function JS_PROP_STRING_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; val : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; prop_flags : UInt8) : JSCFunctionListEntry;
853853
function JS_PROP_INT32_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; val : Int32; prop_flags : UInt8) : JSCFunctionListEntry;
854854
function JS_PROP_INT64_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; val : Int64; prop_flags : UInt8) : JSCFunctionListEntry;
@@ -1296,15 +1296,15 @@ function JS_NewCFunctionMagic(ctx : JSContext; func : PJSCFunctionMagic; name :
12961296

12971297
{ C property definition }
12981298

1299-
function JS_CFUNC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; func1 : JSCFunctionType) : JSCFunctionListEntry;
1299+
function JS_CFUNC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; func : JSCFunction) : JSCFunctionListEntry;
13001300
begin
13011301
Result.name := name;
13021302
Result.prop_flags := JS_PROP_WRITABLE or JS_PROP_CONFIGURABLE;
13031303
Result.def_type := JS_DEF_CFUNC;
13041304
Result.magic := 0;
13051305
Result.u.func.length := length;
13061306
Result.u.func.cproto := JS_CFUNC_generic;
1307-
Result.u.func.cfunc.&generic := func1.&generic;
1307+
Result.u.func.cfunc.&generic := func;
13081308
end;
13091309

13101310
function JS_CFUNC_MAGIC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; length : Integer; func1 : JSCFunctionType; magic : Int16) : JSCFunctionListEntry;
@@ -1343,26 +1343,28 @@ function JS_ITERATOR_NEXT_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf};
13431343
Result.u.func.cfunc.iterator_next := func1.iterator_next;
13441344
end;
13451345

1346-
function JS_CGETSET_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; fgetter, fsetter : JSCFunctionType) : JSCFunctionListEntry;
1346+
function JS_CGETSET_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf};
1347+
fgetter : Getter_func; fsetter : Setter_func ) : JSCFunctionListEntry;
13471348
begin
13481349
Result.name := name;
13491350
Result.prop_flags := JS_PROP_CONFIGURABLE;
13501351
Result.def_type := JS_DEF_CGETSET;
13511352
Result.magic := 0;
1352-
// TODO: Check if this type assigment is working or not - Need some test cases.
1353-
Result.u.getset.get := fgetter;
1354-
Result.u.getset._set := fsetter;
1353+
Result.u.getset.get.getter := fgetter;
1354+
Result.u.getset._set.setter := fsetter;
13551355
end;
13561356

1357-
function JS_CGETSET_MAGIC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; fgetter, fsetter : JSCFunctionType; magic : Int16) : JSCFunctionListEntry;
1357+
function JS_CGETSET_MAGIC_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf};
1358+
fgetter_magic : getter_magic_func;
1359+
fsetter_magic : setter_magic_func; magic : Int16) : JSCFunctionListEntry;
13581360
begin
13591361
Result.name := name;
13601362
Result.prop_flags := JS_PROP_CONFIGURABLE;
13611363
Result.def_type := JS_DEF_CGETSET_MAGIC;
13621364
Result.magic := magic;
13631365
// TODO: Check if this type assigment is working or not - Need some test cases.
1364-
Result.u.getset.get.getter_magic := fgetter.getter_magic;
1365-
Result.u.getset._set.setter_magic := fsetter.setter_magic;
1366+
Result.u.getset.get.getter_magic := fgetter_magic;
1367+
Result.u.getset._set.setter_magic := fsetter_magic;
13661368
end;
13671369

13681370
function JS_PROP_STRING_DEF(name : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; val : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf}; prop_flags : UInt8) : JSCFunctionListEntry;
@@ -1441,12 +1443,12 @@ function JS_ALIAS_BASE_DEF(name, from : {$IFDEF FPC}PChar{$Else}PAnsiChar{$EndIf
14411443
end;
14421444

14431445
{ bignum stuff :D }
1444-
{$IfDef BIGNUM}
1445-
function c_udivti3(num,den:uint64):uint64; cdecl; {$ifdef darwin}[public, alias: '___udivti3'];{$else}[public, alias: '__udivdi3'];{$endif}
1446+
1447+
function c_udivti3(num,den:uint64):uint64; cdecl; public alias: {$ifdef darwin}'___udivti3'{$else} '__udivdi3']{$endif};
14461448
begin
14471449
result:=num div den;
14481450
end;
1449-
{$ENDIF}
1451+
14501452

14511453
initialization
14521454
// fix the Invalid floating point operation .

0 commit comments

Comments
 (0)