anchor.diff:  parse_object_next({struct, Props} = Obj, C, OrigCache, Kv) ->
       get_token(C,
                 fun
  -                  (obj_end, {Chars, Cache}) ->
  +                  (obj_end, C1 = #cont{cache=Cache}) ->
                         Obj1 = {struct, lists:reverse(Props)},
                         Cache1 = append_new_elems(
                                       Cache, Obj1, OrigCache),
  -                      Kv(Obj1, {Chars, Cache1});
  +                      Kv(Obj1, C1#cont{cache=Cache1});
                     (eof, C1) ->
                         {done, {error, premature_eof}, C1};
                     (T, C1) ->                
  
positive.code:              RefType == str_ref);
  
  %% if the key is a string, we put it in the cache and continue
  parse_object_field(Obj, Field, {Chars, Cache}, OrigCache, Kv)
    when is_list(Field) ->
      NewCache = put_str(Field, Cache),
      parse_object_val(Obj, Field, {Chars, NewCache}, OrigCache, Kv).
  
  parse_object_val(Obj, Field, {Chars, Cache}, OrigCache, Kv)
    when is_list(Field) ->
      get_token({Chars, Cache},
                fun(T, C2) ->
                        parse_value
                          (T, C2,
  
negative.code:         Token -> {done, {ok, Token}, Rest}
      end.
  
  token_vsn2([]) -> {more, []};
  token_vsn2(eof) -> {done, eof, []};
  token_vsn2([C | Rest]) ->
      case token_identifier(2, C) of
          int -> scan_int(Rest);
          float -> scan_float(Rest);
          string -> scan_string(Rest);
          url_encoded_string -> scan_url_encoded_string(Rest);
          base64_bytes -> scan_base64_bytes(Rest);
          error -> {done, {error, invalid_token}, Rest};
          Token -> {done, {ok, Token}, Rest}
      end.
  
  token_identifier(Vsn, C) ->
      case C of
          $i -> int;
          $d -> float;
          $s -> case Vsn of
                    1 -> string;
                    2 -> base64_bytes %% redefined to bytes (base64) in haXe 2.0
                end;
          $j -> case Vsn of
                    1 -> utf8;
                    2 -> enum  %% redefined from utf8 to enum in haXe 1.16
                end;
          $n -> null;
          $t -> true;
          $f -> false;   
  