anchor.diff:  get_text_field_values_obj([], _, FAcc) ->
       FAcc;
   get_text_field_values_obj([{Key, Val} | Rest], TAcc, FAcc) ->
  +	ArrayLengthFieldEnabled = TAcc#tacc.array_length_field,
       NewPath = [Key | TAcc#tacc.path],
  -    NewTAcc = TAcc#tacc{path = NewPath},
  +    NewTAcc = TAcc#tacc{array_length_field = ArrayLengthFieldEnabled, path = NewPath},
       Fields = get_text_field_values(Val, NewTAcc),
       get_text_field_values_obj(Rest, TAcc, Fields ++ FAcc).
   
  
positive.code: 
  get_text_entries0(IdxProps, Doc) ->
      DefaultEnabled = get_default_enabled(IdxProps),
      FieldsList = get_text_field_list(IdxProps),
      TAcc = #tacc{fields = FieldsList},
      Fields0 = get_text_field_values(Doc, TAcc),
      Fields = if not DefaultEnabled -> Fields0; true ->
          add_default_text_field(Fields0)
  
negative.code:     get_text_field_values_obj(Props, TAcc, []);
  
  get_text_field_values(Values, TAcc) when is_list(Values) ->
  	ArrayLengthFieldEnabled = TAcc#tacc.array_length_field,
      NewPath = ["[]" | TAcc#tacc.path],
      NewTAcc = TAcc#tacc{array_length_field = ArrayLengthFieldEnabled, path = NewPath},
  	case ArrayLengthFieldEnabled of 
  		true ->
  			% We bypass make_text_field and directly call make_text_field_name
  		    % because the length field name is not part of the path.
  		    LengthFieldName = make_text_field_name(NewTAcc#tacc.path, <<"length">>),
  		    LengthField = [{LengthFieldName, <<"length">>, length(Values)}],
  		    get_text_field_values_arr(Values, NewTAcc,LengthField);
  		_ ->
  			get_text_field_values_arr(Values, NewTAcc,[])
  	end;
  get_text_field_values(Bin, TAcc) when is_binary(Bin) ->
      make_text_field(TAcc, <<"string">>, Bin);
  
  