Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
peach-html5-editor.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
594fc20
)
fix self-closing and mathml ints
author
Jason Woofenden
<jason@jasonwoof.com>
Thu, 24 Dec 2015 04:00:07 +0000
(23:00 -0500)
committer
Jason Woofenden
<jason@jasonwoof.com>
Thu, 24 Dec 2015 04:00:07 +0000
(23:00 -0500)
parse-html.coffee
patch
|
blob
|
history
diff --git
a/parse-html.coffee
b/parse-html.coffee
index
0e79a1d
..
2b8fda7
100644
(file)
--- a/
parse-html.coffee
+++ b/
parse-html.coffee
@@
-112,7
+112,7
@@
class Node
@id = "#{++prev_node_id}"
acknowledge_self_closing: ->
if @token?
@id = "#{++prev_node_id}"
acknowledge_self_closing: ->
if @token?
- @token.flag 'did_self_close'
+ @token.flag 'did_self_close', true
else
@flag 'did_self_close', true
flag: (key, value = null) ->
else
@flag 'did_self_close', true
flag: (key, value = null) ->
@@
-649,10
+649,10
@@
parse_html = (args) ->
standard_scopers = {
applet: NS_HTML, caption: NS_HTML, html: NS_HTML, table: NS_HTML,
td: NS_HTML, th: NS_HTML, marquee: NS_HTML, object: NS_HTML,
standard_scopers = {
applet: NS_HTML, caption: NS_HTML, html: NS_HTML, table: NS_HTML,
td: NS_HTML, th: NS_HTML, marquee: NS_HTML, object: NS_HTML,
- template: NS_HTML, mi: NS_MATHML,
+ template: NS_HTML,
- mo: NS_MATHML, mn: NS_MATHML, ms: NS_MATHML, mtext: NS_MATHML,
- 'annotation-xml': NS_MATHML,
+ mi: NS_MATHML, mo: NS_MATHML, mn: NS_MATHML, ms: NS_MATHML,
+ mtext: NS_MATHML, 'annotation-xml': NS_MATHML,
foreignObject: NS_SVG, desc: NS_SVG, title: NS_SVG
}
foreignObject: NS_SVG, desc: NS_SVG, title: NS_SVG
}
@@
-1213,7
+1213,7
@@
parse_html = (args) ->
ins_mode t
return
if is_mathml_text_integration_point(acn)
ins_mode t
return
if is_mathml_text_integration_point(acn)
- if t.type is TYPE_START_TAG and (t.name is 'mglyph' or t.name is 'malignmark')
+ if t.type is TYPE_START_TAG and not (t.name is 'mglyph' or t.name is 'malignmark')
ins_mode t
return
if t.type is TYPE_TEXT
ins_mode t
return
if t.type is TYPE_TEXT
@@
-2872,7
+2872,7
@@
parse_html = (args) ->
adjust_svg_attributes t
adjust_foreign_attributes t
insert_foreign_element t, acn.namespace
adjust_svg_attributes t
adjust_foreign_attributes t
insert_foreign_element t, acn.namespace
- if t.flag 'self-closing' # FIXME CONTINUE this isn't getting set
+ if t.flag 'self-closing'
if t.name is 'script'
t.acknowledge_self_closing()
in_foreign_content_end_script()
if t.name is 'script'
t.acknowledge_self_closing()
in_foreign_content_end_script()
@@
-2906,8
+2906,7
@@
parse_html = (args) ->
return
loop # is this safe?
open_els.shift()
return
loop # is this safe?
open_els.shift()
- cn = open_els[0]
- if is_mathml_text_integration_point(cn) or is_html_integration(cn) or cn.namespace is NS_HTML
+ if is_mathml_text_integration_point(open_els[0]) or is_html_integration(open_els[0]) or open_els[0].namespace is NS_HTML
break
process_token t
return
break
process_token t
return
@@
-2918,9
+2917,11
@@
parse_html = (args) ->
in_foreign_content_end_script()
return
if t.type is TYPE_END_TAG
in_foreign_content_end_script()
return
if t.type is TYPE_END_TAG
- if open_els[0].name.toLowerCase() isnt t.name
+ i = 0
+ node = open_els[i]
+ if node.name.toLowerCase() isnt t.name
parse_error()
parse_error()
- for node in open_els
+ loop
if node is open_els[open_els.length - 1]
return
if node.name.toLowerCase() is t.name
if node is open_els[open_els.length - 1]
return
if node.name.toLowerCase() is t.name
@@
-2928,6
+2929,8
@@
parse_html = (args) ->
el = open_els.shift()
if el is node
return
el = open_els.shift()
if el is node
return
+ i += 1
+ node = open_els[i]
if node.namespace is NS_HTML
break
ins_mode t # explicitly call HTML insertion mode
if node.namespace is NS_HTML
break
ins_mode t # explicitly call HTML insertion mode
@@
-3767,7
+3770,7
@@
parse_html = (args) ->
tok_state_self_closing_start_tag = ->
c = txt.charAt(cur++)
if c is '>'
tok_state_self_closing_start_tag = ->
c = txt.charAt(cur++)
if c is '>'
- tok_cur_tag.flag 'self-closing'
+ tok_cur_tag.flag 'self-closing', true
tok_state = tok_state_data
return tok_cur_tag
if c is ''
tok_state = tok_state_data
return tok_cur_tag
if c is ''