anchor.diff:        decoder.run();
         expect(listener.lastValue, ["a", "b", "c"]);
         expect(listener.lastSize, 1);
  +      decoder.setListener(slistener);
  +      input.reset();
  +      slistener.stack.clear();
  +      decoder.run();
  +      final List<dynamic> slist = slistener.stack.walk();
  +      expect(slist.length, 1);
  +      expect(slist[0], [
  +        "a",
  +        {"b": "c"}
  +      ]);
       });
   
       test('{"a": "A", "b": "B", "c": "C", "d": "D", "e": "E"}', () {
  
positive.code:       decoder.run();
        final List<dynamic> slist = slistener.stack.walk();
        expect(slist.length, 1);
        expect(slist[0], {"a": 1, "b": [2, 3]});
      });
  
      test('{"a", {"b": "c"}', () {
        output.clear();
        listener.clear();
        final List<int> values = [0xa2, 0x61, 0x61, 0xa1, 0x61, 0x62, 0x61, 0x63];
        final typed.Uint8Buffer buffer = new typed.Uint8Buffer();
        buffer.addAll(values);
        output.putBytes(buffer);
  
negative.code:       expect(listener.lastValue,
            ["a", "A", "b", "B", "c", "C", "d", "D", "e", "E"]);
        expect(listener.lastSize, 5);
        decoder.setListener(slistener);
        input.reset();
        slistener.stack.clear();
        decoder.run();
        final List<dynamic> slist = slistener.stack.walk();
        expect(slist.length, 1);
        expect(slist[0], {"a": "A", "b": "B", "c": "C", "d": "D", "e": "E"});
      });
  
      test("(_ h'0102', h'030405')", () {
  