'),
[{t: 'Tag', n: 'div', attrs: { 'class': [{t: 'CharRef', v: '&', cp: [38]}] }}]);
test.equal(tokenize('
'),
[{t: 'Tag', n: 'div', attrs: { 'class': [
{t: 'Chars', v: 'aa&'},
{t: 'CharRef', v: '𝕫', cp: [120171]},
{t: 'CharRef', v: '∾̳', cp: [8766, 819]},
{t: 'Chars', v: '&bb'}
] }}]);
test.equal(tokenize('
'),
[{t: 'Tag', n: 'div', attrs: { 'class': [
{t: 'Chars', v: 'aa &'},
{t: 'CharRef', v: '𝕫', cp: [120171]},
{t: 'CharRef', v: '∾̳', cp: [8766, 819]},
{t: 'Chars', v: '& bb'}
] }}]);
test.equal(tokenize('
'),
[{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '\'`<>&'}] }}]);
test.equal(tokenize('&\'>'),
[{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '"`<>&'}] }}]);
fatal('>');
fatal('>c');
test.equal(tokenize(''),
[{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '>c' }] }}]);
test.equal(tokenize(''),
[{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '>c' }] }}]);
fatal('');
fatal('');
fatal('');
fatal('');
fatal('');
fatal('<{{a}}>');
fatal(''); // end tag can't have attributes
fatal(''); // end tag can't be self-closing
fatal('');
});