Bug 531056 - Make the HTML5 parser unaware of <spacer>. r=jonas, a=jst.
authorHenri Sivonen <hsivonen@iki.fi>
Wed, 15 Sep 2010 11:37:55 +0300
changeset 54237 bc15c280c430
parent 54236 0ab712643a66
child 54238 a03d65efc824
push id15818
push userhsivonen@iki.fi
push date2010-09-17 10:49 +0000
treeherdermozilla-central@bc15c280c430 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjonas, jst
bugs531056
milestone2.0b7pre
Bug 531056 - Make the HTML5 parser unaware of <spacer>. r=jonas, a=jst.
parser/html/javasrc/ElementName.java
parser/html/javasrc/TreeBuilder.java
parser/html/nsHtml5AtomList.h
parser/html/nsHtml5ElementName.cpp
parser/html/nsHtml5ElementName.h
parser/html/nsHtml5TreeBuilder.cpp
parser/html/nsHtml5TreeBuilder.h
--- a/parser/html/javasrc/ElementName.java
+++ b/parser/html/javasrc/ElementName.java
@@ -1,10 +1,10 @@
 /*
- * Copyright (c) 2008 Mozilla Foundation
+ * Copyright (c) 2008-2010 Mozilla Foundation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a 
  * copy of this software and associated documentation files (the "Software"), 
  * to deal in the Software without restriction, including without limitation 
  * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
  * and/or sell copies of the Software, and to permit persons to whom the 
  * Software is furnished to do so, subject to the following conditions:
  *
@@ -278,18 +278,18 @@ public final class ElementName
 //            case TreeBuilder.UL_OR_OL_OR_DL:
 //                return "UL_OR_OL_OR_DL";
 //            case TreeBuilder.IFRAME:
 //                return "IFRAME";
 //            case TreeBuilder.NOEMBED:
 //                return "NOEMBED";
 //            case TreeBuilder.EMBED_OR_IMG:
 //                return "EMBED_OR_IMG";
-//            case TreeBuilder.AREA_OR_SPACER_OR_WBR:
-//                return "AREA_OR_SPACER_OR_WBR";
+//            case TreeBuilder.AREA_OR_WBR:
+//                return "AREA_OR_WBR";
 //            case TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
 //                return "DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU";
 //            case TreeBuilder.FIELDSET:
 //                return "FIELDSET";
 //            case TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION:
 //                return "ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION";
 //            case TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR:
 //                return "RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR";
@@ -428,20 +428,20 @@ public final class ElementName
     public static final ElementName SUM = new ElementName("sum", "sum", TreeBuilder.OTHER, false, false, false);
     public static final ElementName SIN = new ElementName("sin", "sin", TreeBuilder.OTHER, false, false, false);
     public static final ElementName SEP = new ElementName("sep", "sep", TreeBuilder.OTHER, false, false, false);
     public static final ElementName SUP = new ElementName("sup", "sup", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, false, false, false);
     public static final ElementName SET = new ElementName("set", "set", TreeBuilder.OTHER, false, false, false);
     public static final ElementName TAN = new ElementName("tan", "tan", TreeBuilder.OTHER, false, false, false);
     public static final ElementName USE = new ElementName("use", "use", TreeBuilder.OTHER, false, false, false);
     public static final ElementName VAR = new ElementName("var", "var", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, false, false, false);
-    public static final ElementName WBR = new ElementName("wbr", "wbr", TreeBuilder.AREA_OR_SPACER_OR_WBR, true, false, false);
+    public static final ElementName WBR = new ElementName("wbr", "wbr", TreeBuilder.AREA_OR_WBR, true, false, false);
     public static final ElementName XMP = new ElementName("xmp", "xmp", TreeBuilder.XMP, false, false, false);
     public static final ElementName XOR = new ElementName("xor", "xor", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName AREA = new ElementName("area", "area", TreeBuilder.AREA_OR_SPACER_OR_WBR, true, false, false);
+    public static final ElementName AREA = new ElementName("area", "area", TreeBuilder.AREA_OR_WBR, true, false, false);
     public static final ElementName ABBR = new ElementName("abbr", "abbr", TreeBuilder.OTHER, false, false, false);
     public static final ElementName BASE = new ElementName("base", "base", TreeBuilder.BASE, true, false, false);
     public static final ElementName BVAR = new ElementName("bvar", "bvar", TreeBuilder.OTHER, false, false, false);
     public static final ElementName BODY = new ElementName("body", "body", TreeBuilder.BODY, true, false, false);
     public static final ElementName CARD = new ElementName("card", "card", TreeBuilder.OTHER, false, false, false);
     public static final ElementName CODE = new ElementName("code", "code", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
     public static final ElementName CITE = new ElementName("cite", "cite", TreeBuilder.OTHER, false, false, false);
     public static final ElementName CSCH = new ElementName("csch", "csch", TreeBuilder.OTHER, false, false, false);
@@ -573,17 +573,16 @@ public final class ElementName
     public static final ElementName OBJECT = new ElementName("object", "object", TreeBuilder.OBJECT, false, true, false);
     public static final ElementName OUTPUT = new ElementName("output", "output", TreeBuilder.OUTPUT_OR_LABEL, false, false, false);
     public static final ElementName PRIMES = new ElementName("primes", "primes", TreeBuilder.OTHER, false, false, false);
     public static final ElementName SOURCE = new ElementName("source", "source", TreeBuilder.PARAM_OR_SOURCE, false, false, false);
     public static final ElementName STRIKE = new ElementName("strike", "strike", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
     public static final ElementName STRONG = new ElementName("strong", "strong", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
     public static final ElementName SWITCH = new ElementName("switch", "switch", TreeBuilder.OTHER, false, false, false);
     public static final ElementName SYMBOL = new ElementName("symbol", "symbol", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SPACER = new ElementName("spacer", "spacer", TreeBuilder.AREA_OR_SPACER_OR_WBR, true, false, false);
     public static final ElementName SELECT = new ElementName("select", "select", TreeBuilder.SELECT, true, false, false);
     public static final ElementName SUBSET = new ElementName("subset", "subset", TreeBuilder.OTHER, false, false, false);
     public static final ElementName SCRIPT = new ElementName("script", "script", TreeBuilder.SCRIPT, true, false, false);
     public static final ElementName TBREAK = new ElementName("tbreak", "tbreak", TreeBuilder.OTHER, false, false, false);
     public static final ElementName VECTOR = new ElementName("vector", "vector", TreeBuilder.OTHER, false, false, false);
     public static final ElementName ARTICLE = new ElementName("article", "article", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
     public static final ElementName ANIMATE = new ElementName("animate", "animate", TreeBuilder.OTHER, false, false, false);
     public static final ElementName ARCSECH = new ElementName("arcsech", "arcsech", TreeBuilder.OTHER, false, false, false);
@@ -964,17 +963,16 @@ public final class ElementName
     OBJECT,
     OUTPUT,
     PRIMES,
     SOURCE,
     STRIKE,
     STRONG,
     SWITCH,
     SYMBOL,
-    SPACER,
     SELECT,
     SUBSET,
     SCRIPT,
     TBREAK,
     VECTOR,
     ARTICLE,
     ANIMATE,
     ARCSECH,
@@ -1356,17 +1354,16 @@ public final class ElementName
     217713834,
     217732628,
     218731945,
     221417045,
     221424946,
     221493746,
     221515401,
     221658189,
-    221844577,
     221908140,
     221910626,
     221921586,
     222659762,
     225001091,
     236105833,
     236113965,
     236194995,
@@ -1516,9 +1513,10 @@ public final class ElementName
     543958612,
     576960820,
     577242548,
     610515252,
     642202932,
     644420819,
     };
 
+
 }
--- a/parser/html/javasrc/TreeBuilder.java
+++ b/parser/html/javasrc/TreeBuilder.java
@@ -158,17 +158,17 @@ public abstract class TreeBuilder<T> imp
     final static int B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U = 45;
 
     final static int UL_OR_OL_OR_DL = 46;
 
     final static int IFRAME = 47;
 
     final static int EMBED_OR_IMG = 48;
 
-    final static int AREA_OR_SPACER_OR_WBR = 49;
+    final static int AREA_OR_WBR = 49;
 
     final static int DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU = 50;
 
     final static int ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION = 51;
 
     final static int RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR = 52;
 
     final static int RT_OR_RP = 53;
@@ -1790,17 +1790,17 @@ public abstract class TreeBuilder<T> imp
                             // NOT falling through!
                         case PRE_OR_LISTING:
                         case LI:
                         case DD_OR_DT:
                         case BUTTON:
                         case MARQUEE_OR_APPLET:
                         case OBJECT:
                         case TABLE:
-                        case AREA_OR_SPACER_OR_WBR:
+                        case AREA_OR_WBR:
                         case BR:
                         case EMBED_OR_IMG:
                         case INPUT:
                         case KEYGEN:
                         case HR:
                         case TEXTAREA:
                         case XMP:
                         case IFRAME:
@@ -2011,17 +2011,17 @@ public abstract class TreeBuilder<T> imp
                                 appendToCurrentNodeAndPushElementMayFoster(
                                         "http://www.w3.org/1999/xhtml",
                                         elementName, attributes);
                                 mode = IN_TABLE;
                                 attributes = null; // CPP
                                 break starttagloop;
                             case BR:
                             case EMBED_OR_IMG:
-                            case AREA_OR_SPACER_OR_WBR:
+                            case AREA_OR_WBR:
                                 reconstructTheActiveFormattingElements();
                                 // FALL THROUGH to PARAM_OR_SOURCE
                             case PARAM_OR_SOURCE:
                                 appendVoidElementToCurrentMayFoster(
                                         "http://www.w3.org/1999/xhtml",
                                         elementName, attributes);
                                 selfClosing = false;
                                 attributes = null; // CPP
@@ -3547,17 +3547,17 @@ public abstract class TreeBuilder<T> imp
                                 inForeign = false;
                             }
                             reconstructTheActiveFormattingElements();
                             appendVoidElementToCurrentMayFoster(
                                     "http://www.w3.org/1999/xhtml",
                                     elementName,
                                     HtmlAttributes.EMPTY_ATTRIBUTES);
                             break endtagloop;
-                        case AREA_OR_SPACER_OR_WBR:
+                        case AREA_OR_WBR:
                         case PARAM_OR_SOURCE:
                         case EMBED_OR_IMG:
                         case IMAGE:
                         case INPUT:
                         case KEYGEN: // XXX??
                         case HR:
                         case ISINDEX:
                         case IFRAME:
--- a/parser/html/nsHtml5AtomList.h
+++ b/parser/html/nsHtml5AtomList.h
@@ -865,17 +865,16 @@ HTML5_ATOM(moment, "moment")
 HTML5_ATOM(matrix, "matrix")
 HTML5_ATOM(output, "output")
 HTML5_ATOM(primes, "primes")
 HTML5_ATOM(source, "source")
 HTML5_ATOM(strike, "strike")
 HTML5_ATOM(strong, "strong")
 HTML5_ATOM(switch_, "switch")
 HTML5_ATOM(symbol, "symbol")
-HTML5_ATOM(spacer, "spacer")
 HTML5_ATOM(subset, "subset")
 HTML5_ATOM(tbreak, "tbreak")
 HTML5_ATOM(vector, "vector")
 HTML5_ATOM(article, "article")
 HTML5_ATOM(animate, "animate")
 HTML5_ATOM(arcsech, "arcsech")
 HTML5_ATOM(arccsch, "arccsch")
 HTML5_ATOM(arctanh, "arctanh")
--- a/parser/html/nsHtml5ElementName.cpp
+++ b/parser/html/nsHtml5ElementName.cpp
@@ -1,10 +1,10 @@
 /*
- * Copyright (c) 2008 Mozilla Foundation
+ * Copyright (c) 2008-2010 Mozilla Foundation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a 
  * copy of this software and associated documentation files (the "Software"), 
  * to deal in the Software without restriction, including without limitation 
  * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
  * and/or sell copies of the Software, and to permit persons to whom the 
  * Software is furnished to do so, subject to the following conditions:
  *
@@ -128,17 +128,17 @@ nsHtml5ElementName::~nsHtml5ElementName(
 }
 
 nsHtml5ElementName* 
 nsHtml5ElementName::cloneElementName(nsHtml5AtomTable* interner)
 {
   return this;
 }
 
-static PRInt32 const ELEMENT_HASHES_DATA[] = { 1057, 1090, 1255, 1321, 1552, 1585, 1651, 1717, 68162, 68899, 69059, 69764, 70020, 70276, 71077, 71205, 72134, 72232, 72264, 72296, 72328, 72360, 72392, 73351, 74312, 75209, 78124, 78284, 78476, 79149, 79309, 79341, 79469, 81295, 81487, 82224, 84498, 84626, 86164, 86292, 86612, 86676, 87445, 3183041, 3186241, 3198017, 3218722, 3226754, 3247715, 3256803, 3263971, 3264995, 3289252, 3291332, 3295524, 3299620, 3326725, 3379303, 3392679, 3448233, 3460553, 3461577, 3510347, 3546604, 3552364, 3556524, 3576461, 3586349, 3588141, 3590797, 3596333, 3622062, 3625454, 3627054, 3675728, 3749042, 3771059, 3771571, 3776211, 3782323, 3782963, 3784883, 3785395, 3788979, 3815476, 3839605, 3885110, 3917911, 3948984, 3951096, 135304769, 135858241, 136498210, 136906434, 137138658, 137512995, 137531875, 137548067, 137629283, 137645539, 137646563, 137775779, 138529956, 138615076, 139040932, 140954086, 141179366, 141690439, 142738600, 143013512, 146979116, 147175724, 147475756, 147902637, 147936877, 148017645, 148131885, 148228141, 148229165, 148309165, 148395629, 148551853, 148618829, 149076462, 149490158, 149572782, 151277616, 151639440, 153268914, 153486514, 153563314, 153750706, 153763314, 153914034, 154406067, 154417459, 154600979, 154678323, 154680979, 154866835, 155366708, 155375188, 155391572, 155465780, 155869364, 158045494, 168988979, 169321621, 169652752, 173151309, 174240818, 174247297, 174669292, 175391532, 176638123, 177380397, 177879204, 177886734, 180753473, 181020073, 181503558, 181686320, 181999237, 181999311, 182048201, 182074866, 182078003, 182083764, 182920847, 184716457, 184976961, 185145071, 187281445, 187872052, 188100653, 188875944, 188919873, 188920457, 189203987, 189371817, 189414886, 189567458, 190266670, 191318187, 191337609, 202479203, 202493027, 202835587, 202843747, 203013219, 203036048, 203045987, 203177552, 203898516, 204648562, 205067918, 205078130, 205096654, 205689142, 205690439, 205988909, 207213161, 207794484, 207800999, 208023602, 208213644, 208213647, 210261490, 210310273, 210940978, 213325049, 213946445, 214055079, 215125040, 215134273, 215135028, 215237420, 215418148, 215553166, 215553394, 215563858, 215627949, 215754324, 217529652, 217713834, 217732628, 218731945, 221417045, 221424946, 221493746, 221515401, 221658189, 221844577, 221908140, 221910626, 221921586, 222659762, 225001091, 236105833, 236113965, 236194995, 236195427, 236206132, 236206387, 236211683, 236212707, 236381647, 236571826, 237124271, 238172205, 238210544, 238270764, 238435405, 238501172, 239224867, 239257644, 239710497, 240307721, 241208789, 241241557, 241318060, 241319404, 241343533, 241344069, 241405397, 241765845, 243864964, 244502085, 244946220, 245109902, 247647266, 247707956, 248648814, 248648836, 248682161, 248986932, 249058914, 249697357, 252132601, 252135604, 252317348, 255007012, 255278388, 256365156, 257566121, 269763372, 271202790, 271863856, 272049197, 272127474, 272770631, 274339449, 274939471, 275388004, 275388005, 275388006, 275977800, 278267602, 278513831, 278712622, 281613765, 281683369, 282120228, 282250732, 282508942, 283743649, 283787570, 284710386, 285391148, 285478533, 285854898, 285873762, 286931113, 288964227, 289445441, 289689648, 291671489, 303512884, 305319975, 305610036, 305764101, 308448294, 308675890, 312085683, 312264750, 315032867, 316391000, 317331042, 317902135, 318950711, 319447220, 321499182, 322538804, 323145200, 337067316, 337826293, 339905989, 340833697, 341457068, 345302593, 349554733, 349771471, 349786245, 350819405, 356072847, 370349192, 373962798, 375558638, 375574835, 376053993, 383276530, 383373833, 383407586, 384439906, 386079012, 404133513, 404307343, 407031852, 408072233, 409112005, 409608425, 409771500, 419040932, 437730612, 439529766, 442616365, 442813037, 443157674, 443295316, 450118444, 450482697, 456789668, 459935396, 471217869, 474073645, 476230702, 476665218, 476717289, 483014825, 485083298, 489306281, 538364390, 540675748, 543819186, 543958612, 576960820, 577242548, 610515252, 642202932, 644420819 };
+static PRInt32 const ELEMENT_HASHES_DATA[] = { 1057, 1090, 1255, 1321, 1552, 1585, 1651, 1717, 68162, 68899, 69059, 69764, 70020, 70276, 71077, 71205, 72134, 72232, 72264, 72296, 72328, 72360, 72392, 73351, 74312, 75209, 78124, 78284, 78476, 79149, 79309, 79341, 79469, 81295, 81487, 82224, 84498, 84626, 86164, 86292, 86612, 86676, 87445, 3183041, 3186241, 3198017, 3218722, 3226754, 3247715, 3256803, 3263971, 3264995, 3289252, 3291332, 3295524, 3299620, 3326725, 3379303, 3392679, 3448233, 3460553, 3461577, 3510347, 3546604, 3552364, 3556524, 3576461, 3586349, 3588141, 3590797, 3596333, 3622062, 3625454, 3627054, 3675728, 3749042, 3771059, 3771571, 3776211, 3782323, 3782963, 3784883, 3785395, 3788979, 3815476, 3839605, 3885110, 3917911, 3948984, 3951096, 135304769, 135858241, 136498210, 136906434, 137138658, 137512995, 137531875, 137548067, 137629283, 137645539, 137646563, 137775779, 138529956, 138615076, 139040932, 140954086, 141179366, 141690439, 142738600, 143013512, 146979116, 147175724, 147475756, 147902637, 147936877, 148017645, 148131885, 148228141, 148229165, 148309165, 148395629, 148551853, 148618829, 149076462, 149490158, 149572782, 151277616, 151639440, 153268914, 153486514, 153563314, 153750706, 153763314, 153914034, 154406067, 154417459, 154600979, 154678323, 154680979, 154866835, 155366708, 155375188, 155391572, 155465780, 155869364, 158045494, 168988979, 169321621, 169652752, 173151309, 174240818, 174247297, 174669292, 175391532, 176638123, 177380397, 177879204, 177886734, 180753473, 181020073, 181503558, 181686320, 181999237, 181999311, 182048201, 182074866, 182078003, 182083764, 182920847, 184716457, 184976961, 185145071, 187281445, 187872052, 188100653, 188875944, 188919873, 188920457, 189203987, 189371817, 189414886, 189567458, 190266670, 191318187, 191337609, 202479203, 202493027, 202835587, 202843747, 203013219, 203036048, 203045987, 203177552, 203898516, 204648562, 205067918, 205078130, 205096654, 205689142, 205690439, 205988909, 207213161, 207794484, 207800999, 208023602, 208213644, 208213647, 210261490, 210310273, 210940978, 213325049, 213946445, 214055079, 215125040, 215134273, 215135028, 215237420, 215418148, 215553166, 215553394, 215563858, 215627949, 215754324, 217529652, 217713834, 217732628, 218731945, 221417045, 221424946, 221493746, 221515401, 221658189, 221908140, 221910626, 221921586, 222659762, 225001091, 236105833, 236113965, 236194995, 236195427, 236206132, 236206387, 236211683, 236212707, 236381647, 236571826, 237124271, 238172205, 238210544, 238270764, 238435405, 238501172, 239224867, 239257644, 239710497, 240307721, 241208789, 241241557, 241318060, 241319404, 241343533, 241344069, 241405397, 241765845, 243864964, 244502085, 244946220, 245109902, 247647266, 247707956, 248648814, 248648836, 248682161, 248986932, 249058914, 249697357, 252132601, 252135604, 252317348, 255007012, 255278388, 256365156, 257566121, 269763372, 271202790, 271863856, 272049197, 272127474, 272770631, 274339449, 274939471, 275388004, 275388005, 275388006, 275977800, 278267602, 278513831, 278712622, 281613765, 281683369, 282120228, 282250732, 282508942, 283743649, 283787570, 284710386, 285391148, 285478533, 285854898, 285873762, 286931113, 288964227, 289445441, 289689648, 291671489, 303512884, 305319975, 305610036, 305764101, 308448294, 308675890, 312085683, 312264750, 315032867, 316391000, 317331042, 317902135, 318950711, 319447220, 321499182, 322538804, 323145200, 337067316, 337826293, 339905989, 340833697, 341457068, 345302593, 349554733, 349771471, 349786245, 350819405, 356072847, 370349192, 373962798, 375558638, 375574835, 376053993, 383276530, 383373833, 383407586, 384439906, 386079012, 404133513, 404307343, 407031852, 408072233, 409112005, 409608425, 409771500, 419040932, 437730612, 439529766, 442616365, 442813037, 443157674, 443295316, 450118444, 450482697, 456789668, 459935396, 471217869, 474073645, 476230702, 476665218, 476717289, 483014825, 485083298, 489306281, 538364390, 540675748, 543819186, 543958612, 576960820, 577242548, 610515252, 642202932, 644420819 };
 void
 nsHtml5ElementName::initializeStatics()
 {
   ELT_NULL_ELEMENT_NAME = new nsHtml5ElementName(nsnull);
   ELT_A = new nsHtml5ElementName(nsHtml5Atoms::a, nsHtml5Atoms::a, NS_HTML5TREE_BUILDER_A, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_B = new nsHtml5ElementName(nsHtml5Atoms::b, nsHtml5Atoms::b, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_G = new nsHtml5ElementName(nsHtml5Atoms::g, nsHtml5Atoms::g, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_I = new nsHtml5ElementName(nsHtml5Atoms::i, nsHtml5Atoms::i, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, PR_FALSE, PR_FALSE, PR_FALSE);
@@ -220,20 +220,20 @@ nsHtml5ElementName::initializeStatics()
   ELT_SUM = new nsHtml5ElementName(nsHtml5Atoms::sum, nsHtml5Atoms::sum, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SIN = new nsHtml5ElementName(nsHtml5Atoms::sin, nsHtml5Atoms::sin, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SEP = new nsHtml5ElementName(nsHtml5Atoms::sep, nsHtml5Atoms::sep, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SUP = new nsHtml5ElementName(nsHtml5Atoms::sup, nsHtml5Atoms::sup, NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SET = new nsHtml5ElementName(nsHtml5Atoms::set, nsHtml5Atoms::set, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_TAN = new nsHtml5ElementName(nsHtml5Atoms::tan, nsHtml5Atoms::tan, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_USE = new nsHtml5ElementName(nsHtml5Atoms::use, nsHtml5Atoms::use, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_VAR = new nsHtml5ElementName(nsHtml5Atoms::var, nsHtml5Atoms::var, NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, PR_FALSE, PR_FALSE, PR_FALSE);
-  ELT_WBR = new nsHtml5ElementName(nsHtml5Atoms::wbr, nsHtml5Atoms::wbr, NS_HTML5TREE_BUILDER_AREA_OR_SPACER_OR_WBR, PR_TRUE, PR_FALSE, PR_FALSE);
+  ELT_WBR = new nsHtml5ElementName(nsHtml5Atoms::wbr, nsHtml5Atoms::wbr, NS_HTML5TREE_BUILDER_AREA_OR_WBR, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_XMP = new nsHtml5ElementName(nsHtml5Atoms::xmp, nsHtml5Atoms::xmp, NS_HTML5TREE_BUILDER_XMP, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_XOR = new nsHtml5ElementName(nsHtml5Atoms::xor_, nsHtml5Atoms::xor_, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
-  ELT_AREA = new nsHtml5ElementName(nsHtml5Atoms::area, nsHtml5Atoms::area, NS_HTML5TREE_BUILDER_AREA_OR_SPACER_OR_WBR, PR_TRUE, PR_FALSE, PR_FALSE);
+  ELT_AREA = new nsHtml5ElementName(nsHtml5Atoms::area, nsHtml5Atoms::area, NS_HTML5TREE_BUILDER_AREA_OR_WBR, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_ABBR = new nsHtml5ElementName(nsHtml5Atoms::abbr, nsHtml5Atoms::abbr, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_BASE = new nsHtml5ElementName(nsHtml5Atoms::base, nsHtml5Atoms::base, NS_HTML5TREE_BUILDER_BASE, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_BVAR = new nsHtml5ElementName(nsHtml5Atoms::bvar, nsHtml5Atoms::bvar, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_BODY = new nsHtml5ElementName(nsHtml5Atoms::body, nsHtml5Atoms::body, NS_HTML5TREE_BUILDER_BODY, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_CARD = new nsHtml5ElementName(nsHtml5Atoms::card, nsHtml5Atoms::card, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_CODE = new nsHtml5ElementName(nsHtml5Atoms::code, nsHtml5Atoms::code, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_CITE = new nsHtml5ElementName(nsHtml5Atoms::cite, nsHtml5Atoms::cite, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_CSCH = new nsHtml5ElementName(nsHtml5Atoms::csch, nsHtml5Atoms::csch, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@@ -365,17 +365,16 @@ nsHtml5ElementName::initializeStatics()
   ELT_OBJECT = new nsHtml5ElementName(nsHtml5Atoms::object, nsHtml5Atoms::object, NS_HTML5TREE_BUILDER_OBJECT, PR_FALSE, PR_TRUE, PR_FALSE);
   ELT_OUTPUT = new nsHtml5ElementName(nsHtml5Atoms::output, nsHtml5Atoms::output, NS_HTML5TREE_BUILDER_OUTPUT_OR_LABEL, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_PRIMES = new nsHtml5ElementName(nsHtml5Atoms::primes, nsHtml5Atoms::primes, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SOURCE = new nsHtml5ElementName(nsHtml5Atoms::source, nsHtml5Atoms::source, NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_STRIKE = new nsHtml5ElementName(nsHtml5Atoms::strike, nsHtml5Atoms::strike, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_STRONG = new nsHtml5ElementName(nsHtml5Atoms::strong, nsHtml5Atoms::strong, NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SWITCH = new nsHtml5ElementName(nsHtml5Atoms::switch_, nsHtml5Atoms::switch_, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SYMBOL = new nsHtml5ElementName(nsHtml5Atoms::symbol, nsHtml5Atoms::symbol, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
-  ELT_SPACER = new nsHtml5ElementName(nsHtml5Atoms::spacer, nsHtml5Atoms::spacer, NS_HTML5TREE_BUILDER_AREA_OR_SPACER_OR_WBR, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_SELECT = new nsHtml5ElementName(nsHtml5Atoms::select, nsHtml5Atoms::select, NS_HTML5TREE_BUILDER_SELECT, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_SUBSET = new nsHtml5ElementName(nsHtml5Atoms::subset, nsHtml5Atoms::subset, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_SCRIPT = new nsHtml5ElementName(nsHtml5Atoms::script, nsHtml5Atoms::script, NS_HTML5TREE_BUILDER_SCRIPT, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_TBREAK = new nsHtml5ElementName(nsHtml5Atoms::tbreak, nsHtml5Atoms::tbreak, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_VECTOR = new nsHtml5ElementName(nsHtml5Atoms::vector, nsHtml5Atoms::vector, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_ARTICLE = new nsHtml5ElementName(nsHtml5Atoms::article, nsHtml5Atoms::article, NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, PR_TRUE, PR_FALSE, PR_FALSE);
   ELT_ANIMATE = new nsHtml5ElementName(nsHtml5Atoms::animate, nsHtml5Atoms::animate, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_ARCSECH = new nsHtml5ElementName(nsHtml5Atoms::arcsech, nsHtml5Atoms::arcsech, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
@@ -523,17 +522,17 @@ nsHtml5ElementName::initializeStatics()
   ELT_CARTESIANPRODUCT = new nsHtml5ElementName(nsHtml5Atoms::cartesianproduct, nsHtml5Atoms::cartesianproduct, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_FONT_FACE_FORMAT = new nsHtml5ElementName(nsHtml5Atoms::font_face_format, nsHtml5Atoms::font_face_format, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_FECONVOLVEMATRIX = new nsHtml5ElementName(nsHtml5Atoms::feconvolvematrix, nsHtml5Atoms::feConvolveMatrix, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_FEDIFFUSELIGHTING = new nsHtml5ElementName(nsHtml5Atoms::fediffuselighting, nsHtml5Atoms::feDiffuseLighting, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_FEDISPLACEMENTMAP = new nsHtml5ElementName(nsHtml5Atoms::fedisplacementmap, nsHtml5Atoms::feDisplacementMap, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_FESPECULARLIGHTING = new nsHtml5ElementName(nsHtml5Atoms::fespecularlighting, nsHtml5Atoms::feSpecularLighting, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_DOMAINOFAPPLICATION = new nsHtml5ElementName(nsHtml5Atoms::domainofapplication, nsHtml5Atoms::domainofapplication, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
   ELT_FECOMPONENTTRANSFER = new nsHtml5ElementName(nsHtml5Atoms::fecomponenttransfer, nsHtml5Atoms::feComponentTransfer, NS_HTML5TREE_BUILDER_OTHER, PR_FALSE, PR_FALSE, PR_FALSE);
-  ELEMENT_NAMES = new nsHtml5ElementName*[390];
+  ELEMENT_NAMES = new nsHtml5ElementName*[389];
   ELEMENT_NAMES[0] = ELT_A;
   ELEMENT_NAMES[1] = ELT_B;
   ELEMENT_NAMES[2] = ELT_G;
   ELEMENT_NAMES[3] = ELT_I;
   ELEMENT_NAMES[4] = ELT_P;
   ELEMENT_NAMES[5] = ELT_Q;
   ELEMENT_NAMES[6] = ELT_S;
   ELEMENT_NAMES[7] = ELT_U;
@@ -756,175 +755,174 @@ nsHtml5ElementName::initializeStatics()
   ELEMENT_NAMES[224] = ELT_OBJECT;
   ELEMENT_NAMES[225] = ELT_OUTPUT;
   ELEMENT_NAMES[226] = ELT_PRIMES;
   ELEMENT_NAMES[227] = ELT_SOURCE;
   ELEMENT_NAMES[228] = ELT_STRIKE;
   ELEMENT_NAMES[229] = ELT_STRONG;
   ELEMENT_NAMES[230] = ELT_SWITCH;
   ELEMENT_NAMES[231] = ELT_SYMBOL;
-  ELEMENT_NAMES[232] = ELT_SPACER;
-  ELEMENT_NAMES[233] = ELT_SELECT;
-  ELEMENT_NAMES[234] = ELT_SUBSET;
-  ELEMENT_NAMES[235] = ELT_SCRIPT;
-  ELEMENT_NAMES[236] = ELT_TBREAK;
-  ELEMENT_NAMES[237] = ELT_VECTOR;
-  ELEMENT_NAMES[238] = ELT_ARTICLE;
-  ELEMENT_NAMES[239] = ELT_ANIMATE;
-  ELEMENT_NAMES[240] = ELT_ARCSECH;
-  ELEMENT_NAMES[241] = ELT_ARCCSCH;
-  ELEMENT_NAMES[242] = ELT_ARCTANH;
-  ELEMENT_NAMES[243] = ELT_ARCSINH;
-  ELEMENT_NAMES[244] = ELT_ARCCOSH;
-  ELEMENT_NAMES[245] = ELT_ARCCOTH;
-  ELEMENT_NAMES[246] = ELT_ACRONYM;
-  ELEMENT_NAMES[247] = ELT_ADDRESS;
-  ELEMENT_NAMES[248] = ELT_BGSOUND;
-  ELEMENT_NAMES[249] = ELT_COMMAND;
-  ELEMENT_NAMES[250] = ELT_COMPOSE;
-  ELEMENT_NAMES[251] = ELT_CEILING;
-  ELEMENT_NAMES[252] = ELT_CSYMBOL;
-  ELEMENT_NAMES[253] = ELT_CAPTION;
-  ELEMENT_NAMES[254] = ELT_DISCARD;
-  ELEMENT_NAMES[255] = ELT_DECLARE;
-  ELEMENT_NAMES[256] = ELT_DETAILS;
-  ELEMENT_NAMES[257] = ELT_ELLIPSE;
-  ELEMENT_NAMES[258] = ELT_FEFUNCA;
-  ELEMENT_NAMES[259] = ELT_FEFUNCB;
-  ELEMENT_NAMES[260] = ELT_FEBLEND;
-  ELEMENT_NAMES[261] = ELT_FEFLOOD;
-  ELEMENT_NAMES[262] = ELT_FEIMAGE;
-  ELEMENT_NAMES[263] = ELT_FEMERGE;
-  ELEMENT_NAMES[264] = ELT_FEFUNCG;
-  ELEMENT_NAMES[265] = ELT_FEFUNCR;
-  ELEMENT_NAMES[266] = ELT_HANDLER;
-  ELEMENT_NAMES[267] = ELT_INVERSE;
-  ELEMENT_NAMES[268] = ELT_IMPLIES;
-  ELEMENT_NAMES[269] = ELT_ISINDEX;
-  ELEMENT_NAMES[270] = ELT_LOGBASE;
-  ELEMENT_NAMES[271] = ELT_LISTING;
-  ELEMENT_NAMES[272] = ELT_MFENCED;
-  ELEMENT_NAMES[273] = ELT_MPADDED;
-  ELEMENT_NAMES[274] = ELT_MARQUEE;
-  ELEMENT_NAMES[275] = ELT_MACTION;
-  ELEMENT_NAMES[276] = ELT_MSUBSUP;
-  ELEMENT_NAMES[277] = ELT_NOEMBED;
-  ELEMENT_NAMES[278] = ELT_POLYGON;
-  ELEMENT_NAMES[279] = ELT_PATTERN;
-  ELEMENT_NAMES[280] = ELT_PRODUCT;
-  ELEMENT_NAMES[281] = ELT_SETDIFF;
-  ELEMENT_NAMES[282] = ELT_SECTION;
-  ELEMENT_NAMES[283] = ELT_TENDSTO;
-  ELEMENT_NAMES[284] = ELT_UPLIMIT;
-  ELEMENT_NAMES[285] = ELT_ALTGLYPH;
-  ELEMENT_NAMES[286] = ELT_BASEFONT;
-  ELEMENT_NAMES[287] = ELT_CLIPPATH;
-  ELEMENT_NAMES[288] = ELT_CODOMAIN;
-  ELEMENT_NAMES[289] = ELT_COLGROUP;
-  ELEMENT_NAMES[290] = ELT_DATAGRID;
-  ELEMENT_NAMES[291] = ELT_EMPTYSET;
-  ELEMENT_NAMES[292] = ELT_FACTOROF;
-  ELEMENT_NAMES[293] = ELT_FIELDSET;
-  ELEMENT_NAMES[294] = ELT_FRAMESET;
-  ELEMENT_NAMES[295] = ELT_FEOFFSET;
-  ELEMENT_NAMES[296] = ELT_GLYPHREF;
-  ELEMENT_NAMES[297] = ELT_INTERVAL;
-  ELEMENT_NAMES[298] = ELT_INTEGERS;
-  ELEMENT_NAMES[299] = ELT_INFINITY;
-  ELEMENT_NAMES[300] = ELT_LISTENER;
-  ELEMENT_NAMES[301] = ELT_LOWLIMIT;
-  ELEMENT_NAMES[302] = ELT_METADATA;
-  ELEMENT_NAMES[303] = ELT_MENCLOSE;
-  ELEMENT_NAMES[304] = ELT_MPHANTOM;
-  ELEMENT_NAMES[305] = ELT_NOFRAMES;
-  ELEMENT_NAMES[306] = ELT_NOSCRIPT;
-  ELEMENT_NAMES[307] = ELT_OPTGROUP;
-  ELEMENT_NAMES[308] = ELT_POLYLINE;
-  ELEMENT_NAMES[309] = ELT_PREFETCH;
-  ELEMENT_NAMES[310] = ELT_PROGRESS;
-  ELEMENT_NAMES[311] = ELT_PRSUBSET;
-  ELEMENT_NAMES[312] = ELT_QUOTIENT;
-  ELEMENT_NAMES[313] = ELT_SELECTOR;
-  ELEMENT_NAMES[314] = ELT_TEXTAREA;
-  ELEMENT_NAMES[315] = ELT_TEXTPATH;
-  ELEMENT_NAMES[316] = ELT_VARIANCE;
-  ELEMENT_NAMES[317] = ELT_ANIMATION;
-  ELEMENT_NAMES[318] = ELT_CONJUGATE;
-  ELEMENT_NAMES[319] = ELT_CONDITION;
-  ELEMENT_NAMES[320] = ELT_COMPLEXES;
-  ELEMENT_NAMES[321] = ELT_FONT_FACE;
-  ELEMENT_NAMES[322] = ELT_FACTORIAL;
-  ELEMENT_NAMES[323] = ELT_INTERSECT;
-  ELEMENT_NAMES[324] = ELT_IMAGINARY;
-  ELEMENT_NAMES[325] = ELT_LAPLACIAN;
-  ELEMENT_NAMES[326] = ELT_MATRIXROW;
-  ELEMENT_NAMES[327] = ELT_NOTSUBSET;
-  ELEMENT_NAMES[328] = ELT_OTHERWISE;
-  ELEMENT_NAMES[329] = ELT_PIECEWISE;
-  ELEMENT_NAMES[330] = ELT_PLAINTEXT;
-  ELEMENT_NAMES[331] = ELT_RATIONALS;
-  ELEMENT_NAMES[332] = ELT_SEMANTICS;
-  ELEMENT_NAMES[333] = ELT_TRANSPOSE;
-  ELEMENT_NAMES[334] = ELT_ANNOTATION;
-  ELEMENT_NAMES[335] = ELT_BLOCKQUOTE;
-  ELEMENT_NAMES[336] = ELT_DIVERGENCE;
-  ELEMENT_NAMES[337] = ELT_EULERGAMMA;
-  ELEMENT_NAMES[338] = ELT_EQUIVALENT;
-  ELEMENT_NAMES[339] = ELT_IMAGINARYI;
-  ELEMENT_NAMES[340] = ELT_MALIGNMARK;
-  ELEMENT_NAMES[341] = ELT_MUNDEROVER;
-  ELEMENT_NAMES[342] = ELT_MLABELEDTR;
-  ELEMENT_NAMES[343] = ELT_NOTANUMBER;
-  ELEMENT_NAMES[344] = ELT_SOLIDCOLOR;
-  ELEMENT_NAMES[345] = ELT_ALTGLYPHDEF;
-  ELEMENT_NAMES[346] = ELT_DETERMINANT;
-  ELEMENT_NAMES[347] = ELT_FEMERGENODE;
-  ELEMENT_NAMES[348] = ELT_FECOMPOSITE;
-  ELEMENT_NAMES[349] = ELT_FESPOTLIGHT;
-  ELEMENT_NAMES[350] = ELT_MALIGNGROUP;
-  ELEMENT_NAMES[351] = ELT_MPRESCRIPTS;
-  ELEMENT_NAMES[352] = ELT_MOMENTABOUT;
-  ELEMENT_NAMES[353] = ELT_NOTPRSUBSET;
-  ELEMENT_NAMES[354] = ELT_PARTIALDIFF;
-  ELEMENT_NAMES[355] = ELT_ALTGLYPHITEM;
-  ELEMENT_NAMES[356] = ELT_ANIMATECOLOR;
-  ELEMENT_NAMES[357] = ELT_DATATEMPLATE;
-  ELEMENT_NAMES[358] = ELT_EXPONENTIALE;
-  ELEMENT_NAMES[359] = ELT_FETURBULENCE;
-  ELEMENT_NAMES[360] = ELT_FEPOINTLIGHT;
-  ELEMENT_NAMES[361] = ELT_FEMORPHOLOGY;
-  ELEMENT_NAMES[362] = ELT_OUTERPRODUCT;
-  ELEMENT_NAMES[363] = ELT_ANIMATEMOTION;
-  ELEMENT_NAMES[364] = ELT_COLOR_PROFILE;
-  ELEMENT_NAMES[365] = ELT_FONT_FACE_SRC;
-  ELEMENT_NAMES[366] = ELT_FONT_FACE_URI;
-  ELEMENT_NAMES[367] = ELT_FOREIGNOBJECT;
-  ELEMENT_NAMES[368] = ELT_FECOLORMATRIX;
-  ELEMENT_NAMES[369] = ELT_MISSING_GLYPH;
-  ELEMENT_NAMES[370] = ELT_MMULTISCRIPTS;
-  ELEMENT_NAMES[371] = ELT_SCALARPRODUCT;
-  ELEMENT_NAMES[372] = ELT_VECTORPRODUCT;
-  ELEMENT_NAMES[373] = ELT_ANNOTATION_XML;
-  ELEMENT_NAMES[374] = ELT_DEFINITION_SRC;
-  ELEMENT_NAMES[375] = ELT_FONT_FACE_NAME;
-  ELEMENT_NAMES[376] = ELT_FEGAUSSIANBLUR;
-  ELEMENT_NAMES[377] = ELT_FEDISTANTLIGHT;
-  ELEMENT_NAMES[378] = ELT_LINEARGRADIENT;
-  ELEMENT_NAMES[379] = ELT_NATURALNUMBERS;
-  ELEMENT_NAMES[380] = ELT_RADIALGRADIENT;
-  ELEMENT_NAMES[381] = ELT_ANIMATETRANSFORM;
-  ELEMENT_NAMES[382] = ELT_CARTESIANPRODUCT;
-  ELEMENT_NAMES[383] = ELT_FONT_FACE_FORMAT;
-  ELEMENT_NAMES[384] = ELT_FECONVOLVEMATRIX;
-  ELEMENT_NAMES[385] = ELT_FEDIFFUSELIGHTING;
-  ELEMENT_NAMES[386] = ELT_FEDISPLACEMENTMAP;
-  ELEMENT_NAMES[387] = ELT_FESPECULARLIGHTING;
-  ELEMENT_NAMES[388] = ELT_DOMAINOFAPPLICATION;
-  ELEMENT_NAMES[389] = ELT_FECOMPONENTTRANSFER;
-  ELEMENT_HASHES = jArray<PRInt32,PRInt32>((PRInt32*)ELEMENT_HASHES_DATA, 390);
+  ELEMENT_NAMES[232] = ELT_SELECT;
+  ELEMENT_NAMES[233] = ELT_SUBSET;
+  ELEMENT_NAMES[234] = ELT_SCRIPT;
+  ELEMENT_NAMES[235] = ELT_TBREAK;
+  ELEMENT_NAMES[236] = ELT_VECTOR;
+  ELEMENT_NAMES[237] = ELT_ARTICLE;
+  ELEMENT_NAMES[238] = ELT_ANIMATE;
+  ELEMENT_NAMES[239] = ELT_ARCSECH;
+  ELEMENT_NAMES[240] = ELT_ARCCSCH;
+  ELEMENT_NAMES[241] = ELT_ARCTANH;
+  ELEMENT_NAMES[242] = ELT_ARCSINH;
+  ELEMENT_NAMES[243] = ELT_ARCCOSH;
+  ELEMENT_NAMES[244] = ELT_ARCCOTH;
+  ELEMENT_NAMES[245] = ELT_ACRONYM;
+  ELEMENT_NAMES[246] = ELT_ADDRESS;
+  ELEMENT_NAMES[247] = ELT_BGSOUND;
+  ELEMENT_NAMES[248] = ELT_COMMAND;
+  ELEMENT_NAMES[249] = ELT_COMPOSE;
+  ELEMENT_NAMES[250] = ELT_CEILING;
+  ELEMENT_NAMES[251] = ELT_CSYMBOL;
+  ELEMENT_NAMES[252] = ELT_CAPTION;
+  ELEMENT_NAMES[253] = ELT_DISCARD;
+  ELEMENT_NAMES[254] = ELT_DECLARE;
+  ELEMENT_NAMES[255] = ELT_DETAILS;
+  ELEMENT_NAMES[256] = ELT_ELLIPSE;
+  ELEMENT_NAMES[257] = ELT_FEFUNCA;
+  ELEMENT_NAMES[258] = ELT_FEFUNCB;
+  ELEMENT_NAMES[259] = ELT_FEBLEND;
+  ELEMENT_NAMES[260] = ELT_FEFLOOD;
+  ELEMENT_NAMES[261] = ELT_FEIMAGE;
+  ELEMENT_NAMES[262] = ELT_FEMERGE;
+  ELEMENT_NAMES[263] = ELT_FEFUNCG;
+  ELEMENT_NAMES[264] = ELT_FEFUNCR;
+  ELEMENT_NAMES[265] = ELT_HANDLER;
+  ELEMENT_NAMES[266] = ELT_INVERSE;
+  ELEMENT_NAMES[267] = ELT_IMPLIES;
+  ELEMENT_NAMES[268] = ELT_ISINDEX;
+  ELEMENT_NAMES[269] = ELT_LOGBASE;
+  ELEMENT_NAMES[270] = ELT_LISTING;
+  ELEMENT_NAMES[271] = ELT_MFENCED;
+  ELEMENT_NAMES[272] = ELT_MPADDED;
+  ELEMENT_NAMES[273] = ELT_MARQUEE;
+  ELEMENT_NAMES[274] = ELT_MACTION;
+  ELEMENT_NAMES[275] = ELT_MSUBSUP;
+  ELEMENT_NAMES[276] = ELT_NOEMBED;
+  ELEMENT_NAMES[277] = ELT_POLYGON;
+  ELEMENT_NAMES[278] = ELT_PATTERN;
+  ELEMENT_NAMES[279] = ELT_PRODUCT;
+  ELEMENT_NAMES[280] = ELT_SETDIFF;
+  ELEMENT_NAMES[281] = ELT_SECTION;
+  ELEMENT_NAMES[282] = ELT_TENDSTO;
+  ELEMENT_NAMES[283] = ELT_UPLIMIT;
+  ELEMENT_NAMES[284] = ELT_ALTGLYPH;
+  ELEMENT_NAMES[285] = ELT_BASEFONT;
+  ELEMENT_NAMES[286] = ELT_CLIPPATH;
+  ELEMENT_NAMES[287] = ELT_CODOMAIN;
+  ELEMENT_NAMES[288] = ELT_COLGROUP;
+  ELEMENT_NAMES[289] = ELT_DATAGRID;
+  ELEMENT_NAMES[290] = ELT_EMPTYSET;
+  ELEMENT_NAMES[291] = ELT_FACTOROF;
+  ELEMENT_NAMES[292] = ELT_FIELDSET;
+  ELEMENT_NAMES[293] = ELT_FRAMESET;
+  ELEMENT_NAMES[294] = ELT_FEOFFSET;
+  ELEMENT_NAMES[295] = ELT_GLYPHREF;
+  ELEMENT_NAMES[296] = ELT_INTERVAL;
+  ELEMENT_NAMES[297] = ELT_INTEGERS;
+  ELEMENT_NAMES[298] = ELT_INFINITY;
+  ELEMENT_NAMES[299] = ELT_LISTENER;
+  ELEMENT_NAMES[300] = ELT_LOWLIMIT;
+  ELEMENT_NAMES[301] = ELT_METADATA;
+  ELEMENT_NAMES[302] = ELT_MENCLOSE;
+  ELEMENT_NAMES[303] = ELT_MPHANTOM;
+  ELEMENT_NAMES[304] = ELT_NOFRAMES;
+  ELEMENT_NAMES[305] = ELT_NOSCRIPT;
+  ELEMENT_NAMES[306] = ELT_OPTGROUP;
+  ELEMENT_NAMES[307] = ELT_POLYLINE;
+  ELEMENT_NAMES[308] = ELT_PREFETCH;
+  ELEMENT_NAMES[309] = ELT_PROGRESS;
+  ELEMENT_NAMES[310] = ELT_PRSUBSET;
+  ELEMENT_NAMES[311] = ELT_QUOTIENT;
+  ELEMENT_NAMES[312] = ELT_SELECTOR;
+  ELEMENT_NAMES[313] = ELT_TEXTAREA;
+  ELEMENT_NAMES[314] = ELT_TEXTPATH;
+  ELEMENT_NAMES[315] = ELT_VARIANCE;
+  ELEMENT_NAMES[316] = ELT_ANIMATION;
+  ELEMENT_NAMES[317] = ELT_CONJUGATE;
+  ELEMENT_NAMES[318] = ELT_CONDITION;
+  ELEMENT_NAMES[319] = ELT_COMPLEXES;
+  ELEMENT_NAMES[320] = ELT_FONT_FACE;
+  ELEMENT_NAMES[321] = ELT_FACTORIAL;
+  ELEMENT_NAMES[322] = ELT_INTERSECT;
+  ELEMENT_NAMES[323] = ELT_IMAGINARY;
+  ELEMENT_NAMES[324] = ELT_LAPLACIAN;
+  ELEMENT_NAMES[325] = ELT_MATRIXROW;
+  ELEMENT_NAMES[326] = ELT_NOTSUBSET;
+  ELEMENT_NAMES[327] = ELT_OTHERWISE;
+  ELEMENT_NAMES[328] = ELT_PIECEWISE;
+  ELEMENT_NAMES[329] = ELT_PLAINTEXT;
+  ELEMENT_NAMES[330] = ELT_RATIONALS;
+  ELEMENT_NAMES[331] = ELT_SEMANTICS;
+  ELEMENT_NAMES[332] = ELT_TRANSPOSE;
+  ELEMENT_NAMES[333] = ELT_ANNOTATION;
+  ELEMENT_NAMES[334] = ELT_BLOCKQUOTE;
+  ELEMENT_NAMES[335] = ELT_DIVERGENCE;
+  ELEMENT_NAMES[336] = ELT_EULERGAMMA;
+  ELEMENT_NAMES[337] = ELT_EQUIVALENT;
+  ELEMENT_NAMES[338] = ELT_IMAGINARYI;
+  ELEMENT_NAMES[339] = ELT_MALIGNMARK;
+  ELEMENT_NAMES[340] = ELT_MUNDEROVER;
+  ELEMENT_NAMES[341] = ELT_MLABELEDTR;
+  ELEMENT_NAMES[342] = ELT_NOTANUMBER;
+  ELEMENT_NAMES[343] = ELT_SOLIDCOLOR;
+  ELEMENT_NAMES[344] = ELT_ALTGLYPHDEF;
+  ELEMENT_NAMES[345] = ELT_DETERMINANT;
+  ELEMENT_NAMES[346] = ELT_FEMERGENODE;
+  ELEMENT_NAMES[347] = ELT_FECOMPOSITE;
+  ELEMENT_NAMES[348] = ELT_FESPOTLIGHT;
+  ELEMENT_NAMES[349] = ELT_MALIGNGROUP;
+  ELEMENT_NAMES[350] = ELT_MPRESCRIPTS;
+  ELEMENT_NAMES[351] = ELT_MOMENTABOUT;
+  ELEMENT_NAMES[352] = ELT_NOTPRSUBSET;
+  ELEMENT_NAMES[353] = ELT_PARTIALDIFF;
+  ELEMENT_NAMES[354] = ELT_ALTGLYPHITEM;
+  ELEMENT_NAMES[355] = ELT_ANIMATECOLOR;
+  ELEMENT_NAMES[356] = ELT_DATATEMPLATE;
+  ELEMENT_NAMES[357] = ELT_EXPONENTIALE;
+  ELEMENT_NAMES[358] = ELT_FETURBULENCE;
+  ELEMENT_NAMES[359] = ELT_FEPOINTLIGHT;
+  ELEMENT_NAMES[360] = ELT_FEMORPHOLOGY;
+  ELEMENT_NAMES[361] = ELT_OUTERPRODUCT;
+  ELEMENT_NAMES[362] = ELT_ANIMATEMOTION;
+  ELEMENT_NAMES[363] = ELT_COLOR_PROFILE;
+  ELEMENT_NAMES[364] = ELT_FONT_FACE_SRC;
+  ELEMENT_NAMES[365] = ELT_FONT_FACE_URI;
+  ELEMENT_NAMES[366] = ELT_FOREIGNOBJECT;
+  ELEMENT_NAMES[367] = ELT_FECOLORMATRIX;
+  ELEMENT_NAMES[368] = ELT_MISSING_GLYPH;
+  ELEMENT_NAMES[369] = ELT_MMULTISCRIPTS;
+  ELEMENT_NAMES[370] = ELT_SCALARPRODUCT;
+  ELEMENT_NAMES[371] = ELT_VECTORPRODUCT;
+  ELEMENT_NAMES[372] = ELT_ANNOTATION_XML;
+  ELEMENT_NAMES[373] = ELT_DEFINITION_SRC;
+  ELEMENT_NAMES[374] = ELT_FONT_FACE_NAME;
+  ELEMENT_NAMES[375] = ELT_FEGAUSSIANBLUR;
+  ELEMENT_NAMES[376] = ELT_FEDISTANTLIGHT;
+  ELEMENT_NAMES[377] = ELT_LINEARGRADIENT;
+  ELEMENT_NAMES[378] = ELT_NATURALNUMBERS;
+  ELEMENT_NAMES[379] = ELT_RADIALGRADIENT;
+  ELEMENT_NAMES[380] = ELT_ANIMATETRANSFORM;
+  ELEMENT_NAMES[381] = ELT_CARTESIANPRODUCT;
+  ELEMENT_NAMES[382] = ELT_FONT_FACE_FORMAT;
+  ELEMENT_NAMES[383] = ELT_FECONVOLVEMATRIX;
+  ELEMENT_NAMES[384] = ELT_FEDIFFUSELIGHTING;
+  ELEMENT_NAMES[385] = ELT_FEDISPLACEMENTMAP;
+  ELEMENT_NAMES[386] = ELT_FESPECULARLIGHTING;
+  ELEMENT_NAMES[387] = ELT_DOMAINOFAPPLICATION;
+  ELEMENT_NAMES[388] = ELT_FECOMPONENTTRANSFER;
+  ELEMENT_HASHES = jArray<PRInt32,PRInt32>((PRInt32*)ELEMENT_HASHES_DATA, 389);
 }
 
 void
 nsHtml5ElementName::releaseStatics()
 {
   delete ELT_NULL_ELEMENT_NAME;
   delete ELT_A;
   delete ELT_B;
@@ -1153,17 +1151,16 @@ nsHtml5ElementName::releaseStatics()
   delete ELT_OBJECT;
   delete ELT_OUTPUT;
   delete ELT_PRIMES;
   delete ELT_SOURCE;
   delete ELT_STRIKE;
   delete ELT_STRONG;
   delete ELT_SWITCH;
   delete ELT_SYMBOL;
-  delete ELT_SPACER;
   delete ELT_SELECT;
   delete ELT_SUBSET;
   delete ELT_SCRIPT;
   delete ELT_TBREAK;
   delete ELT_VECTOR;
   delete ELT_ARTICLE;
   delete ELT_ANIMATE;
   delete ELT_ARCSECH;
--- a/parser/html/nsHtml5ElementName.h
+++ b/parser/html/nsHtml5ElementName.h
@@ -1,10 +1,10 @@
 /*
- * Copyright (c) 2008 Mozilla Foundation
+ * Copyright (c) 2008-2010 Mozilla Foundation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a 
  * copy of this software and associated documentation files (the "Software"), 
  * to deal in the Software without restriction, including without limitation 
  * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
  * and/or sell copies of the Software, and to permit persons to whom the 
  * Software is furnished to do so, subject to the following conditions:
  *
@@ -306,17 +306,16 @@ class nsHtml5ElementName
     static nsHtml5ElementName* ELT_OBJECT;
     static nsHtml5ElementName* ELT_OUTPUT;
     static nsHtml5ElementName* ELT_PRIMES;
     static nsHtml5ElementName* ELT_SOURCE;
     static nsHtml5ElementName* ELT_STRIKE;
     static nsHtml5ElementName* ELT_STRONG;
     static nsHtml5ElementName* ELT_SWITCH;
     static nsHtml5ElementName* ELT_SYMBOL;
-    static nsHtml5ElementName* ELT_SPACER;
     static nsHtml5ElementName* ELT_SELECT;
     static nsHtml5ElementName* ELT_SUBSET;
     static nsHtml5ElementName* ELT_SCRIPT;
     static nsHtml5ElementName* ELT_TBREAK;
     static nsHtml5ElementName* ELT_VECTOR;
     static nsHtml5ElementName* ELT_ARTICLE;
     static nsHtml5ElementName* ELT_ANIMATE;
     static nsHtml5ElementName* ELT_ARCSECH;
@@ -706,17 +705,16 @@ nsHtml5ElementName* nsHtml5ElementName::
 nsHtml5ElementName* nsHtml5ElementName::ELT_OBJECT = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_OUTPUT = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_PRIMES = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_SOURCE = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_STRIKE = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_STRONG = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_SWITCH = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_SYMBOL = nsnull;
-nsHtml5ElementName* nsHtml5ElementName::ELT_SPACER = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_SELECT = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_SUBSET = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_SCRIPT = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_TBREAK = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_VECTOR = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_ARTICLE = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_ANIMATE = nsnull;
 nsHtml5ElementName* nsHtml5ElementName::ELT_ARCSECH = nsnull;
--- a/parser/html/nsHtml5TreeBuilder.cpp
+++ b/parser/html/nsHtml5TreeBuilder.cpp
@@ -874,17 +874,17 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
           }
           case NS_HTML5TREE_BUILDER_PRE_OR_LISTING:
           case NS_HTML5TREE_BUILDER_LI:
           case NS_HTML5TREE_BUILDER_DD_OR_DT:
           case NS_HTML5TREE_BUILDER_BUTTON:
           case NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET:
           case NS_HTML5TREE_BUILDER_OBJECT:
           case NS_HTML5TREE_BUILDER_TABLE:
-          case NS_HTML5TREE_BUILDER_AREA_OR_SPACER_OR_WBR:
+          case NS_HTML5TREE_BUILDER_AREA_OR_WBR:
           case NS_HTML5TREE_BUILDER_BR:
           case NS_HTML5TREE_BUILDER_EMBED_OR_IMG:
           case NS_HTML5TREE_BUILDER_INPUT:
           case NS_HTML5TREE_BUILDER_KEYGEN:
           case NS_HTML5TREE_BUILDER_HR:
           case NS_HTML5TREE_BUILDER_TEXTAREA:
           case NS_HTML5TREE_BUILDER_XMP:
           case NS_HTML5TREE_BUILDER_IFRAME:
@@ -1070,17 +1070,17 @@ nsHtml5TreeBuilder::startTag(nsHtml5Elem
               }
               appendToCurrentNodeAndPushElementMayFoster(kNameSpaceID_XHTML, elementName, attributes);
               mode = NS_HTML5TREE_BUILDER_IN_TABLE;
               attributes = nsnull;
               NS_HTML5_BREAK(starttagloop);
             }
             case NS_HTML5TREE_BUILDER_BR:
             case NS_HTML5TREE_BUILDER_EMBED_OR_IMG:
-            case NS_HTML5TREE_BUILDER_AREA_OR_SPACER_OR_WBR: {
+            case NS_HTML5TREE_BUILDER_AREA_OR_WBR: {
               reconstructTheActiveFormattingElements();
             }
             case NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE: {
               appendVoidElementToCurrentMayFoster(kNameSpaceID_XHTML, elementName, attributes);
               selfClosing = PR_FALSE;
               attributes = nsnull;
               NS_HTML5_BREAK(starttagloop);
             }
@@ -2387,17 +2387,17 @@ nsHtml5TreeBuilder::endTag(nsHtml5Elemen
                 pop();
               }
               inForeign = PR_FALSE;
             }
             reconstructTheActiveFormattingElements();
             appendVoidElementToCurrentMayFoster(kNameSpaceID_XHTML, elementName, nsHtml5HtmlAttributes::EMPTY_ATTRIBUTES);
             NS_HTML5_BREAK(endtagloop);
           }
-          case NS_HTML5TREE_BUILDER_AREA_OR_SPACER_OR_WBR:
+          case NS_HTML5TREE_BUILDER_AREA_OR_WBR:
           case NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE:
           case NS_HTML5TREE_BUILDER_EMBED_OR_IMG:
           case NS_HTML5TREE_BUILDER_IMAGE:
           case NS_HTML5TREE_BUILDER_INPUT:
           case NS_HTML5TREE_BUILDER_KEYGEN:
           case NS_HTML5TREE_BUILDER_HR:
           case NS_HTML5TREE_BUILDER_ISINDEX:
           case NS_HTML5TREE_BUILDER_IFRAME:
--- a/parser/html/nsHtml5TreeBuilder.h
+++ b/parser/html/nsHtml5TreeBuilder.h
@@ -289,17 +289,17 @@ jArray<const char*,PRInt32> nsHtml5TreeB
 #define NS_HTML5TREE_BUILDER_DD_OR_DT 41
 #define NS_HTML5TREE_BUILDER_H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 42
 #define NS_HTML5TREE_BUILDER_MARQUEE_OR_APPLET 43
 #define NS_HTML5TREE_BUILDER_PRE_OR_LISTING 44
 #define NS_HTML5TREE_BUILDER_B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U 45
 #define NS_HTML5TREE_BUILDER_UL_OR_OL_OR_DL 46
 #define NS_HTML5TREE_BUILDER_IFRAME 47
 #define NS_HTML5TREE_BUILDER_EMBED_OR_IMG 48
-#define NS_HTML5TREE_BUILDER_AREA_OR_SPACER_OR_WBR 49
+#define NS_HTML5TREE_BUILDER_AREA_OR_WBR 49
 #define NS_HTML5TREE_BUILDER_DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU 50
 #define NS_HTML5TREE_BUILDER_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_HGROUP_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION 51
 #define NS_HTML5TREE_BUILDER_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR 52
 #define NS_HTML5TREE_BUILDER_RT_OR_RP 53
 #define NS_HTML5TREE_BUILDER_COMMAND 54
 #define NS_HTML5TREE_BUILDER_PARAM_OR_SOURCE 55
 #define NS_HTML5TREE_BUILDER_MGLYPH_OR_MALIGNMARK 56
 #define NS_HTML5TREE_BUILDER_MI_MO_MN_MS_MTEXT 57