anchor.diff:  Var i : Integer;
     NV : TPCJSONNameValue;
     JSOND : TPCJSONData;
  -  s : AnsiString;
  +  s : String;
   begin
     if Not Assigned(PCJSONData) then Abort;
     if (PCJSONData is TPCJSONObject) AND (Self is TPCJSONObject) then begin
  
positive.code:     Procedure GrowToIndex(index : Integer);
      function GetItemOfType(Index: Integer; DataClass:TPCJSONDataClass): TPCJSONData;
    protected
      Function ToJSONFormatted(pretty:Boolean;const prefix : AnsiString) : AnsiString; override;
    public
      Constructor Create; override;
      Constructor CreateFromJSONArray(JSONArray : TJSONArray);
  
negative.code: implementation
  
  Function UTF8JSONEncode(plainTxt : String; includeSeparator : Boolean) : String;
  Var ws : String;
    i : Integer;
  Begin
     ws := UTF8Encode(plainTxt);
     {ALERT:
      UTF8Encode function deletes last char if equal to #0, so we put it manually
      }
     if plainTxt.Substring(Length(plainTxt)-1,1)=#0 then  ws := ws + #0;
          i := 0;
          result := '"';
          while i < Length(ws) do
            begin
              case ws.Chars[i] of
                '/', '\', '"': result := result + '\' + ws.Chars[i];
                #8: result := result + '\b';
                #9: result := result + '\t';
                #10: result := result + '\n';
                #13: result := result + '\r';
                #12: result := result + '\f';
              else
                if (ord(ws.Chars[i]) < 32) Or (ord(ws.Chars[i])>122) then
                  result := result + '\u' + inttohex(ord(ws.Chars[i]), 4)
                else
                  result := result + ws.Chars[i];
              end;
              inc(i);
            end;
  