@@ -1262,16 +1262,18 @@ def startTagOther(self, token):
1262
1262
self .tree .insertElement (token )
1263
1263
1264
1264
def endTagP (self , token ):
1265
- if self . tree . elementInScope ( "p" ):
1266
- self .tree .generateImpliedEndTags ("p" )
1267
- if self . tree . openElements [ - 1 ]. name != "p" :
1265
+
1266
+ if not self .tree .elementInScope ("p" ):
1267
+ self . startTagCloseP ( impliedTagToken ( "p" , "StartTag" ))
1268
1268
self .parser .parseError ("unexpected-end-tag" , {"name" : "p" })
1269
- if self .tree .elementInScope ("p" ):
1270
- while self .tree .elementInScope ("p" ):
1271
- self .tree .openElements .pop ()
1269
+ self .endTagP (impliedTagToken ("p" , "EndTag" ))
1272
1270
else :
1273
- self .startTagCloseP (impliedTagToken ("p" , "StartTag" ))
1274
- self .endTagP (impliedTagToken ("p" ))
1271
+ self .tree .generateImpliedEndTags ("p" )
1272
+ if self .tree .openElements [- 1 ].name != "p" :
1273
+ self .parser .parseError ("unexpected-end-tag" , {"name" : "p" })
1274
+ node = self .tree .openElements .pop ()
1275
+ while node .name != "p" :
1276
+ node = self .tree .openElements .pop ()
1275
1277
1276
1278
def endTagBody (self , token ):
1277
1279
# XXX Need to take open <p> tags into account here. We shouldn't imply
0 commit comments