Browse Source

pastojs: fixed intf function

git-svn-id: trunk@37254 -
Mattias Gaertner 8 years ago
parent
commit
2d33a8d949
1 changed files with 6 additions and 4 deletions
  1. 6 4
      packages/pastojs/src/fppas2js.pp

+ 6 - 4
packages/pastojs/src/fppas2js.pp

@@ -1134,7 +1134,7 @@ type
     FTargetProcessor: TPasToJsProcessor;
     FTargetProcessor: TPasToJsProcessor;
     Function CreatePrimitiveDotExpr(AName: string; Src: TPasElement = nil): TJSElement;
     Function CreatePrimitiveDotExpr(AName: string; Src: TPasElement = nil): TJSElement;
     Function CreateSubDeclNameExpr(El: TPasElement; const Name: string;
     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(El: TPasElement; AContext: TConvertContext): TJSElement;
     Function CreateIdentifierExpr(AName: string; El: TPasElement; AContext: TConvertContext): TJSElement;
     Function CreateIdentifierExpr(AName: string; El: TPasElement; AContext: TConvertContext): TJSElement;
     Function CreateSwitchStatement(El: TPasImplCaseOf; AContext: TConvertContext): TJSElement;
     Function CreateSwitchStatement(El: TPasImplCaseOf; AContext: TConvertContext): TJSElement;
@@ -4445,16 +4445,18 @@ begin
 end;
 end;
 
 
 function TPasToJSConverter.CreateSubDeclNameExpr(El: TPasElement;
 function TPasToJSConverter.CreateSubDeclNameExpr(El: TPasElement;
-  const Name: string; AContext: TConvertContext): TJSElement;
+  const Name: string; AContext: TConvertContext; PosEl: TPasElement
+  ): TJSElement;
 var
 var
   CurName, ParentName: String;
   CurName, ParentName: String;
 begin
 begin
+  if PosEl=nil then PosEl:=El;
   CurName:=TransformVariableName(El,Name,AContext);
   CurName:=TransformVariableName(El,Name,AContext);
   ParentName:=AContext.GetLocalName(El.Parent);
   ParentName:=AContext.GetLocalName(El.Parent);
   if ParentName='' then
   if ParentName='' then
     ParentName:='this';
     ParentName:='this';
   CurName:=ParentName+'.'+CurName;
   CurName:=ParentName+'.'+CurName;
-  Result:=CreatePrimitiveDotExpr(CurName,El);
+  Result:=CreatePrimitiveDotExpr(CurName,PosEl);
 end;
 end;
 
 
 function TPasToJSConverter.ConvertPrimitiveExpression(El: TPrimitiveExpr;
 function TPasToJSConverter.ConvertPrimitiveExpression(El: TPrimitiveExpr;
@@ -8620,7 +8622,7 @@ begin
     begin
     begin
     AssignSt:=TJSSimpleAssignStatement(CreateElement(TJSSimpleAssignStatement,ImplProc));
     AssignSt:=TJSSimpleAssignStatement(CreateElement(TJSSimpleAssignStatement,ImplProc));
     Result:=AssignSt;
     Result:=AssignSt;
-    AssignSt.LHS:=CreateSubDeclNameExpr(ImplProc,El.Name,AContext);
+    AssignSt.LHS:=CreateSubDeclNameExpr(El,El.Name,AContext,ImplProc);
     end;
     end;
 
 
   FS:=CreateFunction(ImplProc,ImplProc.Body<>nil);
   FS:=CreateFunction(ImplProc,ImplProc.Body<>nil);