summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2017-09-18 18:57:26 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2017-09-18 18:57:26 +0000
commit764c1b54701fbd8d692d57d749419013d63e1bc5 (patch)
tree055d027030f7f5841416b6d9589751f63ee68135
parentdba8bc8ff6b88704acb16d80dcea25aeea01f83c (diff)
downloadfpc-764c1b54701fbd8d692d57d749419013d63e1bc5.tar.gz
pastojs: fixed intf function
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@37254 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/pastojs/src/fppas2js.pp10
1 files changed, 6 insertions, 4 deletions
diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp
index 1c91ea67e2..ec5ff5d2be 100644
--- a/packages/pastojs/src/fppas2js.pp
+++ b/packages/pastojs/src/fppas2js.pp
@@ -1134,7 +1134,7 @@ type
FTargetProcessor: TPasToJsProcessor;
Function CreatePrimitiveDotExpr(AName: string; Src: TPasElement = nil): TJSElement;
Function CreateSubDeclNameExpr(El: TPasElement; const Name: string;
- AContext: TConvertContext): TJSElement;
+ AContext: TConvertContext; PosEl: TPasElement = nil): TJSElement;
Function CreateIdentifierExpr(El: TPasElement; AContext: TConvertContext): TJSElement;
Function CreateIdentifierExpr(AName: string; El: TPasElement; AContext: TConvertContext): TJSElement;
Function CreateSwitchStatement(El: TPasImplCaseOf; AContext: TConvertContext): TJSElement;
@@ -4445,16 +4445,18 @@ begin
end;
function TPasToJSConverter.CreateSubDeclNameExpr(El: TPasElement;
- const Name: string; AContext: TConvertContext): TJSElement;
+ const Name: string; AContext: TConvertContext; PosEl: TPasElement
+ ): TJSElement;
var
CurName, ParentName: String;
begin
+ if PosEl=nil then PosEl:=El;
CurName:=TransformVariableName(El,Name,AContext);
ParentName:=AContext.GetLocalName(El.Parent);
if ParentName='' then
ParentName:='this';
CurName:=ParentName+'.'+CurName;
- Result:=CreatePrimitiveDotExpr(CurName,El);
+ Result:=CreatePrimitiveDotExpr(CurName,PosEl);
end;
function TPasToJSConverter.ConvertPrimitiveExpression(El: TPrimitiveExpr;
@@ -8620,7 +8622,7 @@ begin
begin
AssignSt:=TJSSimpleAssignStatement(CreateElement(TJSSimpleAssignStatement,ImplProc));
Result:=AssignSt;
- AssignSt.LHS:=CreateSubDeclNameExpr(ImplProc,El.Name,AContext);
+ AssignSt.LHS:=CreateSubDeclNameExpr(El,El.Name,AContext,ImplProc);
end;
FS:=CreateFunction(ImplProc,ImplProc.Body<>nil);