aredridel / html5

Event-driven HTML5 Parser in Javascript
http://dinhe.net/~aredridel/projects/js/html5/
MIT License
590 stars 168 forks source link

Parser Error - wrong token #32

Closed mashihua closed 13 years ago

mashihua commented 13 years ago

I find some error with following code:

var HTML5 = require('html5') var p = new HTML5.Parser(); HTML5.enableDebug('tokenizer.token') var str = '<!DOCTYPE html>\n' + '<html> \n'+ '<body>\n'+ '<script>\n' + 'var a = 1;\n' +
'</script>\n' + '<a href="#">top</a>\n'
p.parse(str);

The output is:

DEBUG: 'tokenizer.token' { type: 'Doctype', name: 'html', publicId: null, systemId: null, correct: true } DEBUG: 'tokenizer.token' { type: 'SpaceCharacters', data: '\n' } DEBUG: 'tokenizer.token' { type: 'StartTag', name: 'html', data: [] } DEBUG: 'tokenizer.token' { type: 'SpaceCharacters', data: ' ' } DEBUG: 'tokenizer.token' { type: 'SpaceCharacters', data: ' ' } DEBUG: 'tokenizer.token' { type: 'SpaceCharacters', data: '\n' } DEBUG: 'tokenizer.token' { type: 'StartTag', name: 'body', data: [] } DEBUG: 'tokenizer.token' { type: 'SpaceCharacters', data: '\n' } DEBUG: 'tokenizer.token' { type: 'Characters', data: undefined } DEBUG: 'tokenizer.token' { type: 'StartTag', name: 'script', data: [] } DEBUG: 'tokenizer.token' { type: 'SpaceCharacters', data: '\n' } DEBUG: 'tokenizer.token' { type: 'Characters', data: 'var a = 1;\n' } DEBUG: 'tokenizer.token' { type: 'Characters', data: 'var a = 1;\n' } DEBUG: 'tokenizer.token' { type: 'EndTag', name: 'script', data: [] } DEBUG: 'tokenizer.token' { type: 'SpaceCharacters', data: '\n' } DEBUG: 'tokenizer.token' { type: 'StartTag', name: 'a', data: [ { nodeName: 'href', nodeValue: '#' } ] } DEBUG: 'tokenizer.token' { type: 'Characters', data: 'top' } DEBUG: 'tokenizer.token' { type: 'EndTag', name: 'a', data: [] } DEBUG: 'tokenizer.token' { type: 'EOF', data: 'End of File' }

The token give me { type: 'Characters', data: undefined } after { type: 'StartTag', name: 'body', data: [] } which is wrong.