anchor.diff:  {$IFDEF VER210}
         v := f.GetValue(IValueData(TValueData(Value).FHeapData).GetReferenceToRawData);
   {$ELSE}
  -
  -      ft := f.FieldType;
  -      if ft.Handle^.Kind = tkString then
  -      begin
  -        PTd := GetTypeData(ft.Handle);
  -        LBuffer := PByte(TValueData(Value).FValueData.GetReferenceToRawData) + f.Offset;
  -
  -
  -        TValueEx(v).FData.FTypeInfo := ft.Handle;
  -        TValueEx(v).FData.FValueData := IValueData(Nop_Instance);
  -        inlineSize := -(PTd^.MaxLength + 2);
  -
  -        TValueEx(v).FData.FValueData := TValueDataImpl.Create(LBuffer, -inlineSize, ft.Handle);
  -
  -      end
  -      else
  -        TValue.Make(PByte(TValueData(Value).FValueData.GetReferenceToRawData) + f.Offset, ft.Handle, v);
  -
  +      v := f.GetValue(TValueData(Value).FValueData.GetReferenceToRawData);
   {$ENDIF}
         Result.AsObject[GetFieldName(f)] := ToJson(v, index);
       end;
  
positive.code:   if obj <> nil then
      Result := obj.DataType else
      Result := stNull;
  end;
  
  function ObjectFindFirst(const obj: ISuperObject; var F: TSuperObjectIter): boolean;
  
negative.code:  * Software distributed under the License is distributed on an "AS IS" basis,
   * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
   * the specific language governing rights and limitations under the License.
   *
   * Embarcadero Technologies Inc is not permitted to use or redistribute
   * this source code without explicit permission.
   *
   * Unit owner : Henri Gourvest <hgourvest@gmail.com>
   * Web site   : http://www.progdigy.com
  