|
@@ -2785,6 +2785,8 @@ procedure TPas2JSResolver.ComputeBinaryExprRes(Bin: TBinaryExpr; out
|
|
SetResolverValueExpr(ResolvedEl,BaseType,BaseTypes[BaseType],Bin,[rrfReadable]);
|
|
SetResolverValueExpr(ResolvedEl,BaseType,BaseTypes[BaseType],Bin,[rrfReadable]);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+var
|
|
|
|
+ RightTypeEl: TPasType;
|
|
begin
|
|
begin
|
|
if (LeftResolved.BaseType=btCustom)
|
|
if (LeftResolved.BaseType=btCustom)
|
|
or (RightResolved.BaseType=btCustom) then
|
|
or (RightResolved.BaseType=btCustom) then
|
|
@@ -2800,6 +2802,14 @@ begin
|
|
SetBaseType(btBoolean);
|
|
SetBaseType(btBoolean);
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
|
|
+ RightTypeEl:=ResolveAliasType(RightResolved.TypeEl);
|
|
|
|
+ if (RightTypeEl is TPasClassOfType) then
|
|
|
|
+ begin
|
|
|
|
+ // e.g. if aJSValue is TClass then ;
|
|
|
|
+ // or if aJSValue is ImageClass then ;
|
|
|
|
+ SetBaseType(btBoolean);
|
|
|
|
+ exit;
|
|
|
|
+ end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -4487,10 +4497,12 @@ begin
|
|
// aJSValue is ... -> "rtl.isExt(A,B)"
|
|
// aJSValue is ... -> "rtl.isExt(A,B)"
|
|
Call.Expr:=CreateMemberExpression([FBuiltInNames[pbivnRTL],FBuiltInNames[pbifnIsExt]]);
|
|
Call.Expr:=CreateMemberExpression([FBuiltInNames[pbivnRTL],FBuiltInNames[pbifnIsExt]]);
|
|
Call.AddArg(B); B:=nil;
|
|
Call.AddArg(B); B:=nil;
|
|
- if TypeEl is TPasClassType then
|
|
|
|
|
|
+ if RightTypeEl is TPasClassType then
|
|
Call.AddArg(CreateLiteralNumber(El.right,IsExtModePasClassInstance))
|
|
Call.AddArg(CreateLiteralNumber(El.right,IsExtModePasClassInstance))
|
|
- else if TypeEl is TPasClassOfType then
|
|
|
|
- Call.AddArg(CreateLiteralNumber(El.right,IsExtModePasClass));
|
|
|
|
|
|
+ else if RightTypeEl is TPasClassOfType then
|
|
|
|
+ Call.AddArg(CreateLiteralNumber(El.right,IsExtModePasClass))
|
|
|
|
+ else
|
|
|
|
+ RaiseNotSupported(El,AContext,20180119005904);
|
|
end
|
|
end
|
|
else if (RightTypeEl is TPasClassType) and TPasClassType(RightTypeEl).IsExternal then
|
|
else if (RightTypeEl is TPasClassType) and TPasClassType(RightTypeEl).IsExternal then
|
|
begin
|
|
begin
|