anchor.diff:        0: Result := Join();
         1: Result := Join(Args[0]);
         2: Result := Join(Args[0], Args[1]);
  -      3: Result := Join(Args[0], Args[1], Args[3]);
  +      3: Result := Join(Args[0], Args[1], Args[2]);
       end
     else if AName = 'INITLOCK' then
       InitLock
  
positive.code:  *                                                        *
   * hprose common unit for delphi.                         *
   *                                                        *
   * LastModified: Dec 14, 2016                             *
   * Author: Ma Bingyao <andot@hprose.com>                  *
   *                                                        *
  \**********************************************************/
  
negative.code:     function GetValues: IImmutableList; virtual; abstract;
      function CompareKey(const Entry1, Entry2: TMapEntry): Integer; virtual; abstract;
      function CompareValue(const Entry1, Entry2: TMapEntry): Integer; virtual; abstract;
      function Invoke(const Name: string; const Arguments: TVarDataArray): Variant; virtual;
    public
      constructor Create(ACapacity: Integer = 16; Factor: Single = 0.75;
        Sync: Boolean = True; ReadWriteSync: Boolean = False); overload; virtual; abstract;
  