Merge.
authorRobert Sayre <sayrer@gmail.com>
Wed, 08 Oct 2008 21:17:03 -0400
changeset 20183 e7cad76c39521a71e4f7c575fb8d9552f9123f09
parent 20182 e18564ab198d0dc150cf904c23d6bcf9235fde5a (current diff)
parent 20180 0697b845e1f3259b1ccc6c4b0e5133a1e5459db6 (diff)
child 20184 68efa47a724b58c6ffbed0411f10bc98312efd24
push idunknown
push userunknown
push dateunknown
milestone1.9.1b2pre
Merge.
embedding/config/xulprefs.mn
modules/plugin/base/public/npupp.h
testing/sisyphus/data/firefox,1.8.1,too-much-gc,debug.data
testing/sisyphus/data/firefox,1.9.0,too-much-gc,debug.data
testing/sisyphus/data/firefox,1.9.1,too-much-gc,debug.data
testing/sisyphus/data/js,1.8.1,too-much-gc,debug.data
testing/sisyphus/data/js,1.9.0,too-much-gc,debug.data
testing/sisyphus/data/js,1.9.1,too-much-gc,debug.data
--- a/accessible/src/base/nsARIAMap.cpp
+++ b/accessible/src/base/nsARIAMap.cpp
@@ -55,147 +55,541 @@
  *  There are no nsIAccessibleRole enums for the following landmark roles:
  *    banner, contentinfo, main, navigation, note, search, secondary, seealso, breadcrumbs
  */ 
 
 static const nsStateMapEntry kEndEntry = {nsnull, 0, 0};  // To fill in array of state mappings
 
 nsRoleMapEntry nsARIAMap::gWAIRoleMap[] = 
 {
-  {"alert", nsIAccessibleRole::ROLE_ALERT, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"alertdialog", nsIAccessibleRole::ROLE_ALERT, eNameOkFromChildren, eNoValue, kNoReqStates, kEndEntry},
-  {"application", nsIAccessibleRole::ROLE_APPLICATION, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"article", nsIAccessibleRole::ROLE_DOCUMENT, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"button", nsIAccessibleRole::ROLE_PUSHBUTTON, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_pressed, kBoolState, nsIAccessibleStates::STATE_PRESSED},
-            {&nsAccessibilityAtoms::aria_pressed, "mixed", nsIAccessibleStates::STATE_MIXED}, kEndEntry},
-  {"checkbox", nsIAccessibleRole::ROLE_CHECKBUTTON, eNameOkFromChildren, eNoValue, nsIAccessibleStates::STATE_CHECKABLE,
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED},
-            {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED},
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"columnheader", nsIAccessibleRole::ROLE_COLUMNHEADER, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"combobox", nsIAccessibleRole::ROLE_COMBOBOX, eNameLabelOrTitle, eHasValueMinMax,
-               nsIAccessibleStates::STATE_COLLAPSED | nsIAccessibleStates::STATE_HASPOPUP,
-            // Manually map EXT_STATE_SUPPORTS_AUTOCOMPLETION aria-autocomplete
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
-            {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED}, kEndEntry},
-  {"description", nsIAccessibleRole::ROLE_TEXT_CONTAINER, eNameOkFromChildren, eNoValue, kNoReqStates, kEndEntry},
-  {"dialog", nsIAccessibleRole::ROLE_DIALOG, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"document", nsIAccessibleRole::ROLE_DOCUMENT, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"grid", nsIAccessibleRole::ROLE_TABLE, eNameLabelOrTitle, eNoValue, nsIAccessibleStates::STATE_FOCUSABLE,
-            {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE},
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"gridcell", nsIAccessibleRole::ROLE_CELL, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED},
-            {&nsAccessibilityAtoms::aria_expanded, "false", nsIAccessibleStates::STATE_COLLAPSED},
-            {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"group", nsIAccessibleRole::ROLE_GROUPING, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"heading", nsIAccessibleRole::ROLE_HEADING, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"img", nsIAccessibleRole::ROLE_GRAPHIC, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"label", nsIAccessibleRole::ROLE_LABEL, eNameOkFromChildren, eNoValue, kNoReqStates, kEndEntry},
-  {"link", nsIAccessibleRole::ROLE_LINK, eNameOkFromChildren, eNoValue, nsIAccessibleStates::STATE_LINKED, kEndEntry},
-  {"list", nsIAccessibleRole::ROLE_LIST, eNameLabelOrTitle, eNoValue, nsIAccessibleStates::STATE_READONLY,
-            {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE}, kEndEntry},
-  {"listbox", nsIAccessibleRole::ROLE_LISTBOX, eNameLabelOrTitle, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
-            {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE}, kEndEntry},
-  {"listitem", nsIAccessibleRole::ROLE_LISTITEM, eNameOkFromChildren, eNoValue, nsIAccessibleStates::STATE_READONLY,
-            {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE}, kEndEntry},
-  {"math", nsIAccessibleRole::ROLE_FLAT_EQUATION, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"menu", nsIAccessibleRole::ROLE_MENUPOPUP, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"menubar", nsIAccessibleRole::ROLE_MENUBAR, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"menuitem", nsIAccessibleRole::ROLE_MENUITEM, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE}, kEndEntry},
-  {"menuitemcheckbox", nsIAccessibleRole::ROLE_CHECK_MENU_ITEM, eNameOkFromChildren, eNoValue, nsIAccessibleStates::STATE_CHECKABLE,
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED },
-            {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED}, kEndEntry},
-  {"menuitemradio", nsIAccessibleRole::ROLE_RADIO_MENU_ITEM, eNameOkFromChildren, eNoValue, nsIAccessibleStates::STATE_CHECKABLE,
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED }, kEndEntry},
-  {"option", nsIAccessibleRole::ROLE_OPTION, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE}, kEndEntry},
-  {"presentation", nsIAccessibleRole::ROLE_NOTHING, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"progressbar", nsIAccessibleRole::ROLE_PROGRESSBAR, eNameLabelOrTitle, eHasValueMinMax, nsIAccessibleStates::STATE_READONLY, kEndEntry},
-  {"radio", nsIAccessibleRole::ROLE_RADIOBUTTON, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED}, kEndEntry},
-  {"radiogroup", nsIAccessibleRole::ROLE_GROUPING, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"region", nsIAccessibleRole::ROLE_PANE, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"row", nsIAccessibleRole::ROLE_ROW, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED},
-            {&nsAccessibilityAtoms::aria_expanded, "false", nsIAccessibleStates::STATE_COLLAPSED}, kEndEntry},
-  {"rowheader", nsIAccessibleRole::ROLE_ROWHEADER, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"section", nsIAccessibleRole::ROLE_SECTION, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"separator", nsIAccessibleRole::ROLE_SEPARATOR, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"slider", nsIAccessibleRole::ROLE_SLIDER, eNameLabelOrTitle, eHasValueMinMax, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"spinbutton", nsIAccessibleRole::ROLE_SPINBUTTON, eNameLabelOrTitle, eHasValueMinMax, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"status", nsIAccessibleRole::ROLE_STATUSBAR, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"tab", nsIAccessibleRole::ROLE_PAGETAB, eNameOkFromChildren, eNoValue, kNoReqStates, kEndEntry},
-  {"tablist", nsIAccessibleRole::ROLE_PAGETABLIST, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"tabpanel", nsIAccessibleRole::ROLE_PROPERTYPAGE, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"textbox", nsIAccessibleRole::ROLE_ENTRY, eNameLabelOrTitle, eNoValue, kNoReqStates,
-            // Manually map EXT_STATE_SINGLE_LINE and EXT_STATE_MULTI_LINE FROM aria-multiline
-            // Manually map EXT_STATE_SUPPORTS_AUTOCOMPLETION aria-autocomplete
-            {&nsAccessibilityAtoms::aria_autocomplete, "list", nsIAccessibleStates::STATE_HASPOPUP},
-            {&nsAccessibilityAtoms::aria_autocomplete, "both", nsIAccessibleStates::STATE_HASPOPUP},
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY}, kEndEntry},
-  {"toolbar", nsIAccessibleRole::ROLE_TOOLBAR, eNameLabelOrTitle, eNoValue, kNoReqStates, kEndEntry},
-  {"tooltip", nsIAccessibleRole::ROLE_TOOLTIP, eNameOkFromChildren, eNoValue, kNoReqStates, kEndEntry},
-  {"tree", nsIAccessibleRole::ROLE_OUTLINE, eNameLabelOrTitle, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
-            {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE}, kEndEntry},
-  {"treegrid", nsIAccessibleRole::ROLE_TREE_TABLE, eNameLabelOrTitle, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
-            {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE}, kEndEntry},
-  {"treeitem", nsIAccessibleRole::ROLE_OUTLINEITEM, eNameOkFromChildren, eNoValue, kNoReqStates,
-            {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
-            {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED},
-            {&nsAccessibilityAtoms::aria_expanded, "false", nsIAccessibleStates::STATE_COLLAPSED},
-            {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
-            {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE},},
+  {
+    "alert",
+    nsIAccessibleRole::ROLE_ALERT,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "alertdialog",
+    nsIAccessibleRole::ROLE_ALERT,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "application",
+    nsIAccessibleRole::ROLE_APPLICATION,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "article",
+    nsIAccessibleRole::ROLE_DOCUMENT,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "button",
+    nsIAccessibleRole::ROLE_PUSHBUTTON,
+    eNameOkFromChildren,
+    eNoValue,
+    eClickAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_pressed, kBoolState, nsIAccessibleStates::STATE_PRESSED},
+    {&nsAccessibilityAtoms::aria_pressed, "mixed", nsIAccessibleStates::STATE_MIXED},
+    kEndEntry
+  },
+  {
+    "checkbox",
+    nsIAccessibleRole::ROLE_CHECKBUTTON,
+    eNameOkFromChildren,
+    eNoValue,
+    eCheckUncheckAction,
+    nsIAccessibleStates::STATE_CHECKABLE,
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED},
+    {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED},
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "columnheader",
+    nsIAccessibleRole::ROLE_COLUMNHEADER,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "combobox",
+    nsIAccessibleRole::ROLE_COMBOBOX,
+    eNameLabelOrTitle,
+    eHasValueMinMax,
+    eOpenCloseAction,
+    nsIAccessibleStates::STATE_COLLAPSED | nsIAccessibleStates::STATE_HASPOPUP,
+    // Manually map EXT_STATE_SUPPORTS_AUTOCOMPLETION aria-autocomplete
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED},
+    kEndEntry
+  },
+  {
+    "description",
+    nsIAccessibleRole::ROLE_TEXT_CONTAINER,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "dialog",
+    nsIAccessibleRole::ROLE_DIALOG,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "document",
+    nsIAccessibleRole::ROLE_DOCUMENT,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "grid",
+    nsIAccessibleRole::ROLE_TABLE,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    nsIAccessibleStates::STATE_FOCUSABLE,
+    {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE},
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "gridcell",
+    nsIAccessibleRole::ROLE_CELL,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED},
+    {&nsAccessibilityAtoms::aria_expanded, "false", nsIAccessibleStates::STATE_COLLAPSED},
+    {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "group",
+    nsIAccessibleRole::ROLE_GROUPING,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "heading",
+    nsIAccessibleRole::ROLE_HEADING,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "img",
+    nsIAccessibleRole::ROLE_GRAPHIC,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "label",
+    nsIAccessibleRole::ROLE_LABEL,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "link",
+    nsIAccessibleRole::ROLE_LINK,
+    eNameOkFromChildren,
+    eNoValue,
+    eJumpAction,
+    nsIAccessibleStates::STATE_LINKED,
+    kEndEntry
+  },
+  {
+    "list",
+    nsIAccessibleRole::ROLE_LIST,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    nsIAccessibleStates::STATE_READONLY,
+    {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE},
+    kEndEntry
+  },
+  {
+    "listbox",
+    nsIAccessibleRole::ROLE_LISTBOX,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE},
+    kEndEntry
+  },
+  {
+    "listitem",
+    nsIAccessibleRole::ROLE_LISTITEM,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction, // XXX: should depend on state, parent accessible
+    nsIAccessibleStates::STATE_READONLY,
+    {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE},
+    kEndEntry
+  },
+  {
+    "math",
+    nsIAccessibleRole::ROLE_FLAT_EQUATION,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "menu",
+    nsIAccessibleRole::ROLE_MENUPOPUP,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction, // XXX: technically accessibles of menupopup role haven't
+               // any action, but menu can be open or close.
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "menubar",
+    nsIAccessibleRole::ROLE_MENUBAR,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "menuitem",
+    nsIAccessibleRole::ROLE_MENUITEM,
+    eNameOkFromChildren,
+    eNoValue,
+    eClickAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE},
+    kEndEntry
+  },
+  {
+    "menuitemcheckbox",
+    nsIAccessibleRole::ROLE_CHECK_MENU_ITEM,
+    eNameOkFromChildren,
+    eNoValue,
+    eClickAction,
+    nsIAccessibleStates::STATE_CHECKABLE,
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED },
+    {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED},
+    kEndEntry
+  },
+  {
+    "menuitemradio",
+    nsIAccessibleRole::ROLE_RADIO_MENU_ITEM,
+    eNameOkFromChildren,
+    eNoValue,
+    eClickAction,
+    nsIAccessibleStates::STATE_CHECKABLE,
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED },
+    kEndEntry
+  },
+  {
+    "option",
+    nsIAccessibleRole::ROLE_OPTION,
+    eNameOkFromChildren,
+    eNoValue,
+    eSelectAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE},
+    kEndEntry
+  },
+  {
+    "presentation",
+    nsIAccessibleRole::ROLE_NOTHING,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "progressbar",
+    nsIAccessibleRole::ROLE_PROGRESSBAR,
+    eNameLabelOrTitle,
+    eHasValueMinMax,
+    eNoAction,
+    nsIAccessibleStates::STATE_READONLY,
+    kEndEntry
+  },
+  {
+    "radio",
+    nsIAccessibleRole::ROLE_RADIOBUTTON,
+    eNameOkFromChildren,
+    eNoValue,
+    eSelectAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED},
+    kEndEntry
+  },
+  {
+    "radiogroup",
+    nsIAccessibleRole::ROLE_GROUPING,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "region",
+    nsIAccessibleRole::ROLE_PANE,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "row",
+    nsIAccessibleRole::ROLE_ROW,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED},
+    {&nsAccessibilityAtoms::aria_expanded, "false", nsIAccessibleStates::STATE_COLLAPSED},
+    kEndEntry
+  },
+  {
+    "rowheader",
+    nsIAccessibleRole::ROLE_ROWHEADER,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "section",
+    nsIAccessibleRole::ROLE_SECTION,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "separator",
+    nsIAccessibleRole::ROLE_SEPARATOR,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "slider",
+    nsIAccessibleRole::ROLE_SLIDER,
+    eNameLabelOrTitle,
+    eHasValueMinMax,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "spinbutton",
+    nsIAccessibleRole::ROLE_SPINBUTTON,
+    eNameLabelOrTitle,
+    eHasValueMinMax,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "status",
+    nsIAccessibleRole::ROLE_STATUSBAR,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "tab",
+    nsIAccessibleRole::ROLE_PAGETAB,
+    eNameOkFromChildren,
+    eNoValue,
+    eSwitchAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "tablist",
+    nsIAccessibleRole::ROLE_PAGETABLIST,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "tabpanel",
+    nsIAccessibleRole::ROLE_PROPERTYPAGE,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "textbox",
+    nsIAccessibleRole::ROLE_ENTRY,
+    eNameLabelOrTitle,
+    eNoValue,
+    eActivateAction,
+    kNoReqStates,
+    // Manually map EXT_STATE_SINGLE_LINE and EXT_STATE_MULTI_LINE FROM aria-multiline
+    // Manually map EXT_STATE_SUPPORTS_AUTOCOMPLETION aria-autocomplete
+    {&nsAccessibilityAtoms::aria_autocomplete, "list", nsIAccessibleStates::STATE_HASPOPUP},
+    {&nsAccessibilityAtoms::aria_autocomplete, "both", nsIAccessibleStates::STATE_HASPOPUP},
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    kEndEntry
+  },
+  {
+    "toolbar",
+    nsIAccessibleRole::ROLE_TOOLBAR,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "tooltip",
+    nsIAccessibleRole::ROLE_TOOLTIP,
+    eNameOkFromChildren,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    kEndEntry
+  },
+  {
+    "tree",
+    nsIAccessibleRole::ROLE_OUTLINE,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE},
+    kEndEntry
+  },
+  {
+    "treegrid",
+    nsIAccessibleRole::ROLE_TREE_TABLE,
+    eNameLabelOrTitle,
+    eNoValue,
+    eNoAction,
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_readonly, kBoolState, nsIAccessibleStates::STATE_READONLY},
+    {&nsAccessibilityAtoms::aria_multiselectable, kBoolState, nsIAccessibleStates::STATE_MULTISELECTABLE | nsIAccessibleStates::STATE_EXTSELECTABLE},
+    kEndEntry
+  },
+  {
+    "treeitem",
+    nsIAccessibleRole::ROLE_OUTLINEITEM,
+    eNameOkFromChildren,
+    eNoValue,
+    eActivateAction, // XXX: should expose second 'expand/collapse' action based
+                     // on states
+    kNoReqStates,
+    {&nsAccessibilityAtoms::aria_selected, kBoolState, nsIAccessibleStates::STATE_SELECTED | nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_selected, "false", nsIAccessibleStates::STATE_SELECTABLE},
+    {&nsAccessibilityAtoms::aria_expanded, kBoolState, nsIAccessibleStates::STATE_EXPANDED},
+    {&nsAccessibilityAtoms::aria_expanded, "false", nsIAccessibleStates::STATE_COLLAPSED},
+    {&nsAccessibilityAtoms::aria_checked, kBoolState, nsIAccessibleStates::STATE_CHECKED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "mixed", nsIAccessibleStates::STATE_MIXED | nsIAccessibleStates::STATE_CHECKABLE},
+    {&nsAccessibilityAtoms::aria_checked, "false", nsIAccessibleStates::STATE_CHECKABLE},
+  },
 };
 
 PRUint32 nsARIAMap::gWAIRoleMapLength = NS_ARRAY_LENGTH(nsARIAMap::gWAIRoleMap);
 
 nsRoleMapEntry nsARIAMap::gLandmarkRoleMap = {
   "",
   nsIAccessibleRole::ROLE_NOTHING,
   eNameLabelOrTitle,
   eNoValue,
+  eNoAction,
   kNoReqStates,
   kEndEntry
 };
 
 nsRoleMapEntry nsARIAMap::gEmptyRoleMap = {
   "",
   nsIAccessibleRole::ROLE_NOTHING,
   eNameLabelOrTitle,
   eNoValue,
+  eNoAction,
   kNoReqStates,
   kEndEntry
 };
 
 /**
  * Universal states:
  * The following state rules are applied to any accessible element,
  * whether there is an ARIA role or not:
--- a/accessible/src/base/nsARIAMap.h
+++ b/accessible/src/base/nsARIAMap.h
@@ -65,16 +65,29 @@ enum ENameRule
 
 // Is nsIAccessible value supported for this role or not?
 enum EValueRule
 {
   eNoValue,
   eHasValueMinMax    // Supports value, min and max from aria-valuenow, aria-valuemin and aria-valuemax
 };
 
+// Should we expose action based on the ARIA role?
+enum EActionRule
+{
+  eNoAction,
+  eActivateAction,
+  eClickAction,
+  eCheckUncheckAction,
+  eJumpAction,
+  eOpenCloseAction,
+  eSelectAction,
+  eSwitchAction
+};
+
 // Used for an nsStateMapEntry if a given state attribute supports "true" and "false"
 #define kBoolState 0
 
 // Used in nsRoleMapEntry.state if no nsIAccessibleStates are automatic for a given role
 #define kNoReqStates 0
 
 // For this name and value pair, what is the nsIAccessibleStates mapping.
 // nsStateMapEntry.state
@@ -94,17 +107,20 @@ struct nsRoleMapEntry
   // Role mapping rule: maps to this nsIAccessibleRole
   PRUint32 role;
   
   // Name mapping rule: how to compute nsIAccessible name
   ENameRule nameRule;
   
   // Value mapping rule: how to compute nsIAccessible value
   EValueRule valueRule;
-  
+
+  // Action mapping rule, how to expose nsIAccessible action
+  EActionRule actionRule;
+
   // Automatic state mapping rule: always include in nsIAccessibleStates
   PRUint32 state;   // or kNoReqStates if no nsIAccessibleStates are automatic for this role.
   
   // ARIA properties supported for this role
   // (in other words, the aria-foo attribute to nsIAccessibleStates mapping rules)
   // Currently you cannot have unlimited mappings, because
   // a variable sized array would not allow the use of
   // C++'s struct initialization feature.
--- a/accessible/src/base/nsAccessibilityUtils.cpp
+++ b/accessible/src/base/nsAccessibilityUtils.cpp
@@ -47,16 +47,18 @@
 #include "nsAccessible.h"
 #include "nsARIAMap.h"
 #include "nsIDocument.h"
 #include "nsIDOMAbstractView.h"
 #include "nsIDOM3Node.h"
 #include "nsIDOMDocument.h"
 #include "nsIDOMDocumentView.h"
 #include "nsIDOMDocumentXBL.h"
+#include "nsIDOMHTMLDocument.h"
+#include "nsIDOMHTMLElement.h"
 #include "nsIDOMNodeList.h"
 #include "nsIDOMRange.h"
 #include "nsIDOMXULContainerElement.h"
 #include "nsIDOMXULSelectCntrlEl.h"
 #include "nsIDOMXULSelectCntrlItemEl.h"
 #include "nsIDOMWindowInternal.h"
 #include "nsIEventListenerManager.h"
 #include "nsIPresShell.h"
@@ -382,23 +384,35 @@ nsAccUtils::FireAccEvent(PRUint32 aEvent
 
   return pAccessible->FireAccessibleEvent(event);
 }
 
 already_AddRefed<nsIDOMElement>
 nsAccUtils::GetDOMElementFor(nsIDOMNode *aNode)
 {
   nsCOMPtr<nsINode> node(do_QueryInterface(aNode));
+  nsIDOMElement *element = nsnull;
 
-  nsIDOMElement *element = nsnull;
   if (node->IsNodeOfType(nsINode::eELEMENT))
     CallQueryInterface(node, &element);
+
   else if (node->IsNodeOfType(nsINode::eTEXT))
     CallQueryInterface(node->GetNodeParent(), &element);
+
   else if (node->IsNodeOfType(nsINode::eDOCUMENT)) {
+    nsCOMPtr<nsIDOMHTMLDocument> htmlDoc(do_QueryInterface(node));
+    if (htmlDoc) {
+      nsCOMPtr<nsIDOMHTMLElement> bodyElement;
+      htmlDoc->GetBody(getter_AddRefs(bodyElement));
+      if (bodyElement) {
+        CallQueryInterface(bodyElement, &element);
+        return element;
+      }
+    }
+
     nsCOMPtr<nsIDOMDocument> domDoc(do_QueryInterface(node));
     domDoc->GetDocumentElement(&element);
   }
 
   return element;
 }
 
 PRBool
--- a/accessible/src/base/nsAccessibilityUtils.h
+++ b/accessible/src/base/nsAccessibilityUtils.h
@@ -148,17 +148,18 @@ public:
    */
   static nsresult FireAccEvent(PRUint32 aEventType, nsIAccessible *aAccessible,
                                PRBool aIsAsynch = PR_FALSE);
 
   /**
    * Return DOM element related with the given node, i.e.
    * a) itself if it is DOM element
    * b) parent element if it is text node
-   * c) document element if it is document node.
+   * c) body element if it is HTML document node
+   * d) document element if it is document node.
    *
    * @param aNode  [in] the given DOM node
    */
   static already_AddRefed<nsIDOMElement> GetDOMElementFor(nsIDOMNode *aNode);
 
   /**
    * Is the first passed in node an ancestor of the second?
    * Note: A node is not considered to be the ancestor of itself.
--- a/accessible/src/base/nsAccessible.cpp
+++ b/accessible/src/base/nsAccessible.cpp
@@ -2459,38 +2459,39 @@ nsAccessible::GetFinalState(PRUint32 *aS
         NS_ENSURE_STATE(tabPanelNode);
 
         if (nsAccUtils::IsAncestorOf(tabPanelNode, gLastFocusedNode))
           *aState |= nsIAccessibleStates::STATE_SELECTED;
       }
     }
   }
 
+  const PRUint32 kExpandCollapseStates =
+    nsIAccessibleStates::STATE_COLLAPSED | nsIAccessibleStates::STATE_EXPANDED;
+  if ((*aState & kExpandCollapseStates) == kExpandCollapseStates) {
+    // Cannot be both expanded and collapsed -- this happens in ARIA expanded
+    // combobox because of limitation of nsARIAMap.
+    // XXX: Perhaps we will be able to make this less hacky if we support
+    // extended states in nsARIAMap, e.g. derive COLLAPSED from
+    // EXPANDABLE && !EXPANDED.
+    *aState &= ~nsIAccessibleStates::STATE_COLLAPSED;
+  }
+
   // Set additional states which presence depends on another states.
   if (!aExtraState)
     return NS_OK;
 
   if (!(*aState & nsIAccessibleStates::STATE_UNAVAILABLE)) {
     *aExtraState |= nsIAccessibleStates::EXT_STATE_ENABLED |
                     nsIAccessibleStates::EXT_STATE_SENSITIVE;
   }
 
-  const PRUint32 kExpandCollapseStates =
-    nsIAccessibleStates::STATE_COLLAPSED | nsIAccessibleStates::STATE_EXPANDED;
-  if (*aState & kExpandCollapseStates) {
+  if ((*aState & nsIAccessibleStates::STATE_COLLAPSED) ||
+      (*aState & nsIAccessibleStates::STATE_EXPANDED))
     *aExtraState |= nsIAccessibleStates::EXT_STATE_EXPANDABLE;
-    if ((*aState & kExpandCollapseStates) == kExpandCollapseStates) {
-      // Cannot be both expanded and collapsed -- this happens 
-      // in ARIA expanded combobox because of limitation of nsARIAMap
-      // XXX Perhaps we will be able to make this less hacky if 
-      // we support extended states in nsARIAMap, e.g. derive
-      // COLLAPSED from EXPANDABLE && !EXPANDED
-      *aExtraState &= ~nsIAccessibleStates::STATE_COLLAPSED;
-    }
-  }
 
   if (mRoleMapEntry) {
     // If an object has an ancestor with the activedescendant property
     // pointing at it, we mark it as ACTIVE even if it's not currently focused.
     // This allows screen reader virtual buffer modes to know which descendant
     // is the current one that would get focus if the user navigates to the container widget.
     nsCOMPtr<nsIContent> content = do_QueryInterface(mDOMNode);
     nsAutoString id;
@@ -2769,112 +2770,114 @@ NS_IMETHODIMP nsAccessible::GetRole(PRUi
 
   nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
   if (nsAccUtils::IsXLink(content))
     *aRole = nsIAccessibleRole::ROLE_LINK;
 
   return NS_OK;
 }
 
-/* PRUint8 getAccNumActions (); */
+// readonly attribute PRUint8 numActions
 NS_IMETHODIMP
 nsAccessible::GetNumActions(PRUint8 *aNumActions)
 {
   NS_ENSURE_ARG_POINTER(aNumActions);
   *aNumActions = 0;
 
   if (IsDefunct())
     return NS_ERROR_FAILURE;
 
-  nsCOMPtr<nsIContent> content = GetRoleContent(mDOMNode);
-  if (!content)
-    return NS_OK;
-
-  // Check if it's a simple xlink.
-  if (nsAccUtils::IsXLink(content)) {
-    *aNumActions = 1;
+  PRUint32 actionRule = GetActionRule(State(this));
+  if (actionRule == eNoAction)
     return NS_OK;
-  }
-
-  // Has registered 'click' event handler.
-  PRBool isOnclick = nsAccUtils::HasListener(content,
-                                             NS_LITERAL_STRING("click"));
-
-  if (isOnclick)
-    *aNumActions = 1;
-  
+
+  *aNumActions = 1;
   return NS_OK;
 }
 
 /* DOMString getAccActionName (in PRUint8 index); */
 NS_IMETHODIMP
 nsAccessible::GetActionName(PRUint8 aIndex, nsAString& aName)
 {
   aName.Truncate();
 
   if (aIndex != 0)
     return NS_ERROR_INVALID_ARG;
 
   if (IsDefunct())
     return NS_ERROR_FAILURE;
 
-  // Check if it's a simple xlink.
-  nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
-  if (nsAccUtils::IsXLink(content)) {
-    aName.AssignLiteral("jump");
-    return NS_OK;
-  }
-
-  // Has registered 'click' event handler.
-  PRBool isOnclick = nsAccUtils::HasListener(content,
-                                             NS_LITERAL_STRING("click"));
-  
-  if (isOnclick) {
-    aName.AssignLiteral("click");
-    return NS_OK;
+  PRUint32 states = State(this);
+  PRUint32 actionRule = GetActionRule(states);
+
+ switch (actionRule) {
+   case eActivateAction:
+     aName.AssignLiteral("activate");
+     return NS_OK;
+
+   case eClickAction:
+     aName.AssignLiteral("click");
+     return NS_OK;
+
+   case eCheckUncheckAction:
+     if (states & nsIAccessibleStates::STATE_CHECKED)
+       aName.AssignLiteral("uncheck");
+     else
+       aName.AssignLiteral("check");
+     return NS_OK;
+
+   case eJumpAction:
+     aName.AssignLiteral("jump");
+     return NS_OK;
+
+   case eOpenCloseAction:
+     if (states & nsIAccessibleStates::STATE_COLLAPSED)
+       aName.AssignLiteral("open");
+     else
+       aName.AssignLiteral("close");
+     return NS_OK;
+
+   case eSelectAction:
+     aName.AssignLiteral("select");
+     return NS_OK;
+
+   case eSwitchAction:
+     aName.AssignLiteral("switch");
+     return NS_OK;
   }
 
   return NS_ERROR_INVALID_ARG;
 }
 
-/* DOMString getActionDescription (in PRUint8 index); */
+// AString getActionDescription(in PRUint8 index)
 NS_IMETHODIMP
 nsAccessible::GetActionDescription(PRUint8 aIndex, nsAString& aDescription)
 {
   // default to localized action name.
   nsAutoString name;
   nsresult rv = GetActionName(aIndex, name);
   NS_ENSURE_SUCCESS(rv, rv);
 
   return GetTranslatedString(name, aDescription);
 }
 
-/* void doAction (in PRUint8 index); */
+// void doAction(in PRUint8 index)
 NS_IMETHODIMP
 nsAccessible::DoAction(PRUint8 aIndex)
 {
   if (aIndex != 0)
     return NS_ERROR_INVALID_ARG;
 
   if (IsDefunct())
     return NS_ERROR_FAILURE;
 
-  PRBool doAction = PR_FALSE;
-
-  // Check if it's a simple xlink.
-  nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
-  if (nsAccUtils::IsXLink(content))
-    doAction = PR_TRUE;
-
-  // Has registered 'click' event handler.
-  if (!doAction)
-    doAction = nsAccUtils::HasListener(content, NS_LITERAL_STRING("click"));
-  
-  if (doAction)
+  if (GetActionRule(State(this)) != eNoAction) {
+    nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
     return DoCommand(content);
+  }
 
   return NS_ERROR_INVALID_ARG;
 }
 
 /* DOMString getHelp (); */
 NS_IMETHODIMP nsAccessible::GetHelp(nsAString& _retval)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
@@ -3668,16 +3671,41 @@ nsAccessible::GetAttrValue(nsIAtom *aPro
   PRInt32 result = NS_OK;
   nsAutoString value;
   if (content->GetAttr(kNameSpaceID_None, aProperty, value))
     *aValue = value.ToFloat(&result);
 
   return result;
 }
 
+PRUint32
+nsAccessible::GetActionRule(PRUint32 aStates)
+{
+  if (aStates & nsIAccessibleStates::STATE_UNAVAILABLE)
+    return eNoAction;
+
+  // Check if it's simple xlink.
+  nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
+  if (nsAccUtils::IsXLink(content))
+    return eJumpAction;
+
+  // Has registered 'click' event handler.
+  PRBool isOnclick = nsAccUtils::HasListener(content,
+                                             NS_LITERAL_STRING("click"));
+
+  if (isOnclick)
+    return eClickAction;
+
+  // Get an action based on ARIA role.
+  if (mRoleMapEntry)
+    return mRoleMapEntry->actionRule;
+
+  return eNoAction;
+}
+
 PRBool nsAccessible::MustPrune(nsIAccessible *aAccessible)
 { 
   PRUint32 role = Role(aAccessible);
   return role == nsIAccessibleRole::ROLE_MENUITEM || 
          role == nsIAccessibleRole::ROLE_COMBOBOX_OPTION ||
          role == nsIAccessibleRole::ROLE_OPTION ||
          role == nsIAccessibleRole::ROLE_ENTRY ||
          role == nsIAccessibleRole::ROLE_FLAT_EQUATION ||
--- a/accessible/src/base/nsAccessible.h
+++ b/accessible/src/base/nsAccessible.h
@@ -255,16 +255,24 @@ protected:
    * @param aAriaProperty - the ARIA property we're using
    * @param aValue - value of the attribute
    *
    * @return - NS_OK_NO_ARIA_VALUE if there is no setted ARIA attribute
    */
   nsresult GetAttrValue(nsIAtom *aAriaProperty, double *aValue);
 
   /**
+   * Return the action rule based on ARIA enum constants EActionRule
+   * (see nsARIAMap.h). Used by GetNumActions() and GetActionName().
+   *
+   * @param aStates  [in] states of the accessible
+   */
+  PRUint32 GetActionRule(PRUint32 aStates);
+
+  /**
    * Fires platform accessible event. It's notification method only. It does
    * change nothing on Gecko side. Mostly you should use
    * nsIAccessible::FireAccessibleEvent excepting special cases like we have
    * in xul:tree accessible to lie to AT. Must be overridden in wrap classes.
    *
    * @param aEvent  the accessible event to fire.
    */
   virtual nsresult FirePlatformEvent(nsIAccessibleEvent *aEvent) = 0;
--- a/accessible/src/base/nsApplicationAccessible.cpp
+++ b/accessible/src/base/nsApplicationAccessible.cpp
@@ -109,26 +109,26 @@ nsApplicationAccessible::GetName(nsAStri
 
   nsCOMPtr<nsIStringBundleService> bundleService =
     do_GetService(NS_STRINGBUNDLE_CONTRACTID);
 
   NS_ASSERTION(bundleService, "String bundle service must be present!");
   NS_ENSURE_STATE(bundleService);
 
   nsCOMPtr<nsIStringBundle> bundle;
-  bundleService->CreateBundle("chrome://branding/locale/brand.properties",
-                              getter_AddRefs(bundle));
+  nsresult rv = bundleService->CreateBundle("chrome://branding/locale/brand.properties",
+                                            getter_AddRefs(bundle));
+  NS_ENSURE_SUCCESS(rv, rv);
 
   nsXPIDLString appName;
-  if (bundle) {
-    bundle->GetStringFromName(NS_LITERAL_STRING("brandShortName").get(),
-                              getter_Copies(appName));
-  } else {
-    NS_WARNING("brand.properties not present, using default app name");
-    appName.AssignLiteral("Mozilla");
+  rv = bundle->GetStringFromName(NS_LITERAL_STRING("brandShortName").get(),
+                                 getter_Copies(appName));
+  if (NS_FAILED(rv) || appName.IsEmpty()) {
+    NS_WARNING("brandShortName not found, using default app name");
+    appName.AssignLiteral("Gecko based application");
   }
 
   aName.Assign(appName);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsApplicationAccessible::GetRole(PRUint32 *aRole)
--- a/accessible/src/base/nsDocAccessible.cpp
+++ b/accessible/src/base/nsDocAccessible.cpp
@@ -490,22 +490,31 @@ NS_IMETHODIMP nsDocAccessible::GetDocume
   }
 
   return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP nsDocAccessible::GetAssociatedEditor(nsIEditor **aEditor)
 {
   NS_ENSURE_ARG_POINTER(aEditor);
+  *aEditor = nsnull;
 
-  *aEditor = nsnull;
-  NS_ENSURE_TRUE(mDocument, NS_ERROR_FAILURE);
+  if (!mDocument)
+    return NS_ERROR_FAILURE;
 
+  // Check if document is editable (designMode="on" case). Otherwise check if
+  // the html:body (for HTML document case) or document element is editable.
   if (!mDocument->HasFlag(NODE_IS_EDITABLE)) {
-    return NS_OK; // Document not editable
+    nsCOMPtr<nsIDOMNode> DOMDocument(do_QueryInterface(mDocument));
+    nsCOMPtr<nsIDOMElement> DOMElement =
+      nsAccUtils::GetDOMElementFor(DOMDocument);
+    nsCOMPtr<nsIContent> content(do_QueryInterface(DOMElement));
+
+    if (!content->HasFlag(NODE_IS_EDITABLE))
+      return NS_OK;
   }
 
   nsCOMPtr<nsISupports> container = mDocument->GetContainer();
   nsCOMPtr<nsIEditingSession> editingSession(do_GetInterface(container));
   if (!editingSession)
     return NS_OK; // No editing session interface
 
   nsCOMPtr<nsIEditor> editor;
--- a/accessible/tests/mochitest/Makefile.in
+++ b/accessible/tests/mochitest/Makefile.in
@@ -49,30 +49,35 @@ include $(topsrcdir)/config/rules.mk
 		moz.png \
 		longdesc_src.html \
 		common.js \
 		nsIAccessible_actions.js \
 		nsIAccessible_name.css \
 		nsIAccessible_name.js \
 		nsIAccessible_name.xbl \
  		nsIAccessible_selects.js \
+		nsIAccessible_states.js \
 		nsIAccessibleEditableText.js \
 		test_aria_activedescendant.html \
 		test_aria_role_article.html \
 		test_bug368835.xul \
 		test_bug420863.html \
 		test_cssattrs.html \
 		test_events_caretmove.html \
 		test_groupattrs.xul \
 	$(warning test_table_indexes.html temporarily disabled) \
 		test_nsIAccessible_actions.html \
 		test_nsIAccessible_actions.xul \
+		test_nsIAccessible_applicationAccessible.html \
+		test_nsIAccessible_editablebody.html \
+		test_nsIAccessible_editabledoc.html \
 		test_nsIAccessible_name.html \
 		test_nsIAccessible_name.xul \
  		test_nsIAccessible_selects.html \
+		test_nsIAccessible_states.html \
 		test_nsIAccessible_focus.html \
 		test_nsIAccessibleDocument.html \
 		test_nsIAccessibleEditableText.html \
 		test_nsIAccessibleHyperLink.html \
 		test_nsIAccessibleHyperLink.xul \
 		test_nsIAccessibleHyperText.html \
 		test_nsIAccessibleImage.html \
 		test_nsIAccessibleTable_1.html \
--- a/accessible/tests/mochitest/common.js
+++ b/accessible/tests/mochitest/common.js
@@ -27,36 +27,42 @@ const nsIAccessibleTable = Components.in
 const nsIAccessibleValue = Components.interfaces.nsIAccessibleValue;
 
 const nsIObserverService = Components.interfaces.nsIObserverService;
 
 const nsIDOMNode = Components.interfaces.nsIDOMNode;
 
 ////////////////////////////////////////////////////////////////////////////////
 // Roles
+
 const ROLE_COMBOBOX = nsIAccessibleRole.ROLE_COMBOBOX;
 const ROLE_COMBOBOX_LIST = nsIAccessibleRole.ROLE_COMBOBOX_LIST;
 const ROLE_COMBOBOX_OPTION = nsIAccessibleRole.ROLE_COMBOBOX_OPTION;
 const ROLE_LABEL = nsIAccessibleRole.ROLE_LABEL;
 const ROLE_LIST = nsIAccessibleRole.ROLE_LIST;
 const ROLE_OPTION = nsIAccessibleRole.ROLE_OPTION;
 const ROLE_TEXT_LEAF = nsIAccessibleRole.ROLE_TEXT_LEAF;
 
 ////////////////////////////////////////////////////////////////////////////////
 // States
+
 const STATE_COLLAPSED = nsIAccessibleStates.STATE_COLLAPSED;
 const STATE_EXPANDED = nsIAccessibleStates.STATE_EXPANDED;
 const STATE_EXTSELECTABLE = nsIAccessibleStates.STATE_EXTSELECTABLE;
 const STATE_FOCUSABLE = nsIAccessibleStates.STATE_FOCUSABLE;
 const STATE_FOCUSED = nsIAccessibleStates.STATE_FOCUSED;
 const STATE_HASPOPUP = nsIAccessibleStates.STATE_HASPOPUP;
 const STATE_MULTISELECTABLE = nsIAccessibleStates.STATE_MULTISELECTABLE;
+const STATE_READONLY = nsIAccessibleStates.STATE_READONLY;
 const STATE_SELECTABLE = nsIAccessibleStates.STATE_SELECTABLE;
 const STATE_SELECTED = nsIAccessibleStates.STATE_SELECTED;
 
+const EXT_STATE_EDITABLE = nsIAccessibleStates.EXT_STATE_EDITABLE;
+const EXT_STATE_EXPANDABLE = nsIAccessibleStates.EXT_STATE_EXPANDABLE;
+
 ////////////////////////////////////////////////////////////////////////////////
 // Accessible general
 
 /**
  * nsIAccessibleRetrieval, initialized when test is loaded.
  */
 var gAccRetrieval = null;
 
--- a/accessible/tests/mochitest/nsIAccessible_actions.js
+++ b/accessible/tests/mochitest/nsIAccessible_actions.js
@@ -1,24 +1,8 @@
-////////////////////////////////////////////////////////////////////////////////
-// General
-
-const nsIAccessibleRetrieval = Components.interfaces.nsIAccessibleRetrieval;
-const nsIAccessibleRole = Components.interfaces.nsIAccessibleRole;
-
-var gAccRetrieval = null;
-
-function initialize()
-{
-  gAccRetrieval = Components.classes["@mozilla.org/accessibleRetrieval;1"].
-  getService(nsIAccessibleRetrieval);
-}
-
-addLoadEvent(initialize);
-
 ////////////////////////////////////////////////////////////////////////////////
 // Event constants
 
 const MOUSEDOWN_EVENT = 1;
 const MOUSEUP_EVENT = 2;
 const CLICK_EVENT = 4;
 const COMMAND_EVENT = 8;
 
@@ -33,43 +17,37 @@ function testActions(aArray, aIndex)
   if (!aIndex)
     aIndex = 0;
 
   if (aIndex == aArray.length) {
     SimpleTest.finish();
     return;
   }
 
-  var ID = aArray[aIndex].ID;
+  var accOrElmOrID = aArray[aIndex].ID;
   var actionName = aArray[aIndex].actionName;
   var events = aArray[aIndex].events;
 
-  var elm = document.getElementById(ID);
-  if (!elm) {
-    ok(false, "There is no element with ID " + ID);
-    SimpleTest.finish();
-    return null;
-  }
+  var elmObj = {};
+  var acc = getAccessible(accOrElmOrID, null, elmObj);
+  var elm = elmObj.value;
 
-  var acc = null;
-  try {
-    acc = gAccRetrieval.getAccessibleFor(elm);
-  } catch(e) {
-  }
+  var isThereActions = acc.numActions > 0;
+  ok(isThereActions,
+     "No actions on the accessible for " + accOrElmOrID);
 
-  if (!acc) {
-    ok(false, "There is no accessible for " + ID);
+  if (!isThereActions) {
     SimpleTest.finish();
-    return null;
+    return; // Stop test.
   }
 
   is(acc.getActionName(0), actionName,
-     "Wrong action name of the accessible for " + ID);
+     "Wrong action name of the accessible for " + accOrElmOrID);
 
-  gEventHandler.initialize(ID, elm, events);
+  gEventHandler.initialize(accOrElmOrID, elm, events);
 
   acc.doAction(0);
 
   window.setTimeout(
     function()
     {
       gEventHandler.checkEvents();
       testActions(aArray, aIndex + 1);
new file mode 100644
--- /dev/null
+++ b/accessible/tests/mochitest/nsIAccessible_states.js
@@ -0,0 +1,59 @@
+function testStates(aAccOrElmOrID, aState, aExtraState, aAbsentState)
+{
+  var [state, extraState] = getStates(aAccOrElmOrID);
+
+  is(state & aState, aState,
+     "wrong state bits for " + aAccOrElmOrID + "!");
+
+  if (aExtraState)
+    is(extraState & aExtraState, aExtraState,
+       "wrong extra state bits for " + aAccOrElmOrID + "!");
+
+  if (aAbsentState)
+    is(state & aAbsentState, 0,
+       "state bits should not be present in ID " + aAccOrElmOrID + "!");
+
+  if (state & STATE_READONLY)
+    is(extraState & EXT_STATE_EDITABLE, 0,
+       "Read-only " + aAccOrElmOrID + " cannot be editable!");
+
+  if (extraState & EXT_STATE_EDITABLE)
+    is(state & STATE_READONLY, 0,
+       "Editable " + aAccOrElmOrID + " cannot be readonly!");
+
+  if (state & STATE_COLLAPSED || state & STATE_EXPANDED)
+    is(extraState & EXT_STATE_EXPANDABLE, EXT_STATE_EXPANDABLE,
+       "Collapsed or expanded " + aAccOrElmOrID + " should be expandable!");
+
+  if (state & STATE_COLLAPSED)
+    is(state & STATE_EXPANDED, 0,
+       "Collapsed " + aAccOrElmOrID + " cannot be expanded!");
+
+  if (state & STATE_EXPANDED)
+    is(state & STATE_COLLAPSED, 0,
+       "Expanded " + aAccOrElmOrID + " cannot be collapsed!");
+}
+
+function getStringStates(aAccOrElmOrID)
+{
+  var [state, extraState] = getStates(aAccOrElmOrID);
+  var list = gAccRetrieval.getStringStates(state, extraState);
+
+  var str = "";
+  for (var index = 0; index < list.length; index++)
+    str += list.item(index) + ", ";
+
+  return str;
+}
+
+function getStates(aAccOrElmOrID)
+{
+  var acc = getAccessible(aAccOrElmOrID);
+  if (!acc)
+    return [0, 0];
+  
+  var state = {}, extraState = {};
+  acc.getFinalState(state, extraState);
+
+  return [state.value, extraState.value];
+}
--- a/accessible/tests/mochitest/test_nsIAccessible_actions.html
+++ b/accessible/tests/mochitest/test_nsIAccessible_actions.html
@@ -5,27 +5,100 @@
 
   <link rel="stylesheet" type="text/css"
         href="chrome://mochikit/content/tests/SimpleTest/test.css" />
 
   <script type="application/javascript"
           src="chrome://mochikit/content/MochiKit/packed.js"></script>
   <script type="application/javascript"
           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/common.js"></script>
   <script type="application/javascript"
           src="chrome://mochikit/content/a11y/accessible/nsIAccessible_actions.js"></script>
 
   <script type="application/javascript">
     function doTest()
     {
       var actionsArray = [
         {
           ID: "clickable",
           actionName: "click",
           events: CLICK_EVENTS
+        },
+        {
+          ID: "button",
+          actionName: "click",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "checkbox_unchecked",
+          actionName: "check",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "checkbox_checked",
+          actionName: "uncheck",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "combobox_collapsed",
+          actionName: "open",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "combobox_expanded",
+          actionName: "close",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "link",
+          actionName: "jump",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "menuitem",
+          actionName: "click",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "menuitemcheckbox",
+          actionName: "click",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "menuitemradio",
+          actionName: "click",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "option",
+          actionName: "select",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "radio",
+          actionName: "select",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "tab",
+          actionName: "switch",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "textbox",
+          actionName: "activate",
+          events: CLICK_EVENTS
+        },
+        {
+          ID: "treeitem",
+          actionName: "activate",
+          events: CLICK_EVENTS
         }
       ];
       testActions(actionsArray);
     }
 
     SimpleTest.waitForExplicitFinish();
     addLoadEvent(doTest);
   </script>
@@ -40,10 +113,45 @@
   </a>
   <p id="display"></p>
   <div id="content" style="display: none"></div>
   <pre id="test">
   </pre>
 
   <div id="clickable" onclick="">Clickable text</div>
 
+  <div id="button" role="button">Button</span>
+
+  <div id="checkbox_unchecked" role="checkbox">Checkbox</span>
+
+  <div id="checkbox_checked" role="checkbox" aria-checked="true">Checkbox</span>
+
+  <div id="combobox_collapsed" role="combobox">
+    <div id="option" role="option">Option of collapsed combobox</div>
+  </div>
+
+  <div id="combobox_expanded" role="combobox" aria-expanded="true">
+    <div role="option">Option of expanded combobox</div>
+  </div>
+
+  <div id="link" role="link">Link</div>
+
+  <div role="menu">
+    <div id="menuitem" role="menuitem">Menuitem</div>
+    <div id="menuitemcheckbox" role="menuitemcheckbox">Menuitem checkbox</div>
+    <div id="menuitemradio" role="menuitemradio">Menuitem radio</div>
+  </div>
+
+  <div role="radiogroup">
+    <div id="radio" role="radio">Radio</div>
+  </div>
+
+  <div role="tablist">
+    <div id="tab" role="tab">Tab</div>
+  </div>
+
+  <div id="textbox" role="textbox">Textbox</div>
+
+  <div role="tree">
+    <div id="treeitem" role="treeitem">Treeitem</div>
+  </div>
 </body>
 </html>
--- a/accessible/tests/mochitest/test_nsIAccessible_actions.xul
+++ b/accessible/tests/mochitest/test_nsIAccessible_actions.xul
@@ -8,16 +8,19 @@
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         title="nsIAccessible actions testing">
 
   <script type="application/javascript" 
           src="chrome://mochikit/content/MochiKit/packed.js"></script>
   <script type="application/javascript"
           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/common.js" />
   <script type="application/javascript"
           src="chrome://mochikit/content/a11y/accessible/nsIAccessible_actions.js" />
 
   <script type="application/javascript">
   <![CDATA[
     function doTest()
     {
       var actionsArray = [
new file mode 100644
--- /dev/null
+++ b/accessible/tests/mochitest/test_nsIAccessible_applicationAccessible.html
@@ -0,0 +1,63 @@
+<html>
+
+<head>
+  <title>application accessible name</title>
+  <link rel="stylesheet" type="text/css" 
+         href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+  <script type="application/javascript" 
+          src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript" 
+          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js">
+   </script>
+  <script type="application/javascript" 
+          src="chrome://mochikit/content/a11y/accessible/common.js" ></script>
+
+  <script type="application/javascript">
+    function doTest()
+    {
+        var accessible = getAccessible(document);
+        while (accessible && accessible.parent) {
+            accessible = accessible.parent;
+        }
+
+        if (!accessible) {
+            SimpleTest.finish();
+            return;
+        }
+
+        var bundleServ = Components.classes["@mozilla.org/intl/stringbundle;1"]
+                         .getService(Components.interfaces.nsIStringBundleService);
+        var bundle = bundleServ.createBundle("chrome://branding/locale/brand.properties");
+
+        var applicationName = "";
+
+        try {
+            applicationName = bundle.GetStringFromName("brandShortName");
+        }  catch(e) {
+        }
+
+        if (applicationName == "")
+            applicationName = "Gecko based application";
+
+        is (accessible.name, applicationName, "wrong application accessible name");
+
+        SimpleTest.finish();
+    }
+    SimpleTest.waitForExplicitFinish();
+    addLoadEvent(doTest);
+  </script>
+  </head>
+  <body>
+  <a target="_blank"
+     href="https://bugzilla.mozilla.org/show_bug.cgi?id=456121"
+    title="nsApplicationAccessible::GetName does not return a default value when brand.properties does not exist">
+    Mozilla Bug 454211
+  </a>
+
+  <p id="display"></p>
+  <div id="content" style="display: none"></div>
+  <pre id="test">
+  </pre>
+
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/accessible/tests/mochitest/test_nsIAccessible_editablebody.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=454997
+-->
+<head>
+  <title>nsIAccessible states tests of contenteditable body</title>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/common.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/nsIAccessible_states.js"></script>
+
+  <script type="application/javascript">
+    function doTest()
+    {
+      testStates(document, 0, EXT_STATE_EDITABLE);
+      testStates("p", 0, EXT_STATE_EDITABLE);
+
+      SimpleTest.finish();
+    }
+
+    SimpleTest.waitForExplicitFinish();
+    addLoadEvent(doTest);
+  </script>
+</head>
+
+<body contentEditable="true">
+
+  <a target="_blank"
+     title="nsIAccessible states tests of contenteditable body"
+     href="https://bugzilla.mozilla.org/show_bug.cgi?id=454997">Mozilla Bug 454997</a>
+  <p id="display"></p>
+  <div id="content" style="display: none"></div>
+  <pre id="test">
+  </pre>
+
+  <p id="p">hello</p>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/accessible/tests/mochitest/test_nsIAccessible_editabledoc.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=454997
+-->
+<head>
+  <title>nsIAccessible states tests of editable document</title>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/common.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/nsIAccessible_states.js"></script>
+
+  <script type="application/javascript">
+    function doTest()
+    {
+      document.designMode = "on";
+
+      testStates(document, 0, EXT_STATE_EDITABLE);
+      testStates("p", 0, EXT_STATE_EDITABLE);
+
+      SimpleTest.finish();
+    }
+
+    SimpleTest.waitForExplicitFinish();
+    addLoadEvent(doTest);
+  </script>
+</head>
+
+<body id="body">
+
+  <a target="_blank"
+     title="nsIAccessible states tests of editable document"
+     href="https://bugzilla.mozilla.org/show_bug.cgi?id=454997">Mozilla Bug 454997</a>
+  <p id="display"></p>
+  <div id="content" style="display: none"></div>
+  <pre id="test">
+  </pre>
+
+  <p id="p">hello</p>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/accessible/tests/mochitest/test_nsIAccessible_states.html
@@ -0,0 +1,51 @@
+<html>
+
+<head>
+  <title>nsIAccessible states testing</title>
+
+  <link rel="stylesheet" type="text/css"
+        href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/common.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/a11y/accessible/nsIAccessible_states.js"></script>
+
+  <script type="application/javascript">
+    function doTest()
+    {
+      testStates("combobox", STATE_COLLAPSED);
+      testStates("combobox_expanded", STATE_EXPANDED);
+
+      SimpleTest.finish();
+    }
+
+    SimpleTest.waitForExplicitFinish();
+    addLoadEvent(doTest);
+  </script>
+</head>
+
+<body>
+
+  <a target="_blank"
+     href="https://bugzilla.mozilla.org/show_bug.cgi?id=457219"
+     title="nsIAccessible states testing">
+    Mozilla Bug 457219
+  </a>
+  <p id="display"></p>
+  <div id="content" style="display: none"></div>
+  <pre id="test">
+  </pre>
+
+  <div id="combobox" role="combobox">combobox</div>
+
+  <div id="combobox_expanded" role="combobox"
+       aria-expanded="true">combobox</div>
+
+</body>
+</html>
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -3,24 +3,38 @@
   <emItems>
     <emItem id="fdm_ffext@freedownloadmanager.org">
       <versionRange minVersion="1.0" maxVersion="1.3.1">
         <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
            <versionRange minVersion="3.0a1" maxVersion="*"/>
         </targetApplication>
       </versionRange>
     </emItem>
+    <emItem id="langpack-vi-VN@firefox.mozilla.org">
+      <versionRange minVersion="2.0" maxVersion="2.0"/>
+    </emItem>
     <emItem id="mozilla_cc@internetdownloadmanager.com">
       <versionRange minVersion="2.1" maxVersion="3.3">
         <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
            <versionRange minVersion="3.0a1" maxVersion="*"/>
         </targetApplication>
       </versionRange>
     </emItem>
+    <emItem id="{4B3803EA-5230-4DC3-A7FC-33638F3D3542}">
+      <versionRange minVersion="1.2" maxVersion="1.2">
+        <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
+           <versionRange minVersion="3.0a1" maxVersion="*"/>
+        </targetApplication>
+      </versionRange>
+    </emItem>
   </emItems>
 <pluginItems>
   <pluginItem>
-    <match name="name" exp="Yahoo Application State Plugin"/>
-    <match name="description" exp="Yahoo Application State Plugin"/>
+    <match name="name" exp="^Yahoo Application State Plugin$"/>
+    <match name="description" exp="^Yahoo Application State Plugin$"/>
     <match name="filename" exp="npYState.dll"/>
   </pluginItem>
+  <pluginItem>
+    <match name="name" exp="QuickTime Plug-in 7[.]1[.]"/>
+    <match name="filename" exp="npqtplugin.?[.]dll"/>
+  </pluginItem>
 </pluginItems>
 </blocklist>
--- a/browser/app/module.ver
+++ b/browser/app/module.ver
@@ -1,8 +1,8 @@
 WIN32_MODULE_COMPANYNAME=Mozilla Corporation
 WIN32_MODULE_COPYRIGHT=©Firefox and Mozilla Developers, according to the MPL 1.1/GPL 2.0/LGPL 2.1 licenses, as applicable.
 WIN32_MODULE_PRODUCTVERSION=3,1,0,0
-WIN32_MODULE_PRODUCTVERSION_STRING=3.1b1pre
+WIN32_MODULE_PRODUCTVERSION_STRING=3.1b2pre
 WIN32_MODULE_TRADEMARKS=Firefox is a Trademark of The Mozilla Foundation.
 WIN32_MODULE_DESCRIPTION=Firefox
 WIN32_MODULE_PRODUCTNAME=Firefox
 WIN32_MODULE_NAME=Firefox
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -261,16 +261,19 @@ pref("browser.download.manager.resumeOnW
 pref("browser.search.searchEnginesURL",      "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/firefox/%VERSION%/search-engines/");
 
 // pointer to the default engine name
 pref("browser.search.defaultenginename",      "chrome://browser-region/locale/region.properties");
 
 // disable logging for the search service by default
 pref("browser.search.log", false);
 
+// serialize search plugin XML
+pref("browser.search.cache.enabled", true);
+
 // Ordering of Search Engines in the Engine list. 
 pref("browser.search.order.1",                "chrome://browser-region/locale/region.properties");
 pref("browser.search.order.2",                "chrome://browser-region/locale/region.properties");
 
 // search bar results always open in a new tab
 pref("browser.search.openintab", false);
 
 // send ping to the server to update
--- a/browser/base/content/urlbarBindings.xml
+++ b/browser/base/content/urlbarBindings.xml
@@ -279,54 +279,60 @@
           // haven't seen that, so hopefully that behavior has changed.
           flavourSet.appendFlavour("text/x-moz-url");
           flavourSet.appendFlavour("text/unicode");
           flavourSet.appendFlavour("application/x-moz-file", "nsIFile");
           return flavourSet;
         ]]></body>
       </method>
 
+      <method name="_getSelectedValueForClipboard">
+        <body><![CDATA[
+          var val = this.value.substring(this.selectionStart, this.selectionEnd);
+
+          // If the entire value is selected and it's a valid non-javascript,
+          // non-data URI, encode it.
+          if (val == this.value &&
+              this.getAttribute("pageproxystate") == "valid") {
+            let uri;
+            let ioService = Cc["@mozilla.org/network/io-service;1"]
+                              .getService(Ci.nsIIOService);
+            try {
+              uri = ioService.newURI(val, null, null);
+            } catch (e) {}
+
+            if (uri && !uri.schemeIs("javascript") && !uri.schemeIs("data")) {
+              val = uri.spec;
+
+              // Parentheses are known to confuse third-party applications (bug 458565).
+              val = val.replace(/[()]/g, function (c) escape(c));
+            }
+          }
+
+          return val;
+        ]]></body>
+      </method>
+
       <field name="_copyCutController"><![CDATA[
         ({
           urlbar: this,
           doCommand: function(aCommand) {
             var urlbar = this.urlbar;
-            var start = urlbar.selectionStart;
-            var end = urlbar.selectionEnd;
-            if (start == end)
+            var val = urlbar._getSelectedValueForClipboard();
+            if (!val)
               return;
-            var val;
-            if (start == 0 && end == urlbar.textLength) {
-              val = urlbar.value;
 
-              // If the entire value is selected and it's a valid non-javascript,
-              // non-data URI, encode it.
-              var uri;
-              if (urlbar.getAttribute("pageproxystate") == "valid") {
-                var ioService = Cc["@mozilla.org/network/io-service;1"]
-                                  .getService(Ci.nsIIOService);
-                try {
-                  uri = ioService.newURI(val, null, null);
-                } catch (e) {}
-              }
-              if (uri && !uri.schemeIs("javascript") && !uri.schemeIs("data"))
-                 val = uri.spec;
+            if (aCommand == "cmd_cut" && this.isCommandEnabled(aCommand)) {
+              let start = urlbar.selectionStart;
+              let end = urlbar.selectionEnd;
+              urlbar.value = urlbar.value.substring(0, start) + urlbar.value.substring(end);
+              urlbar.selectionStart = urlbar.selectionEnd = start;
+              SetPageProxyState("invalid");
+            }
 
-              if (aCommand == "cmd_cut" && this.isCommandEnabled(aCommand)) {
-                urlbar.value = "";
-                SetPageProxyState("invalid");
-              }
-            } else {
-              val = urlbar.value.substring(start, end);
-              if (aCommand == "cmd_cut" && this.isCommandEnabled(aCommand)) {
-                urlbar.value = urlbar.value.substring(0, start) + urlbar.value.substring(end);
-                urlbar.selectionStart = urlbar.selectionEnd = start;
-                SetPageProxyState("invalid");
-              }
-            }
             Cc["@mozilla.org/widget/clipboardhelper;1"]
               .getService(Ci.nsIClipboardHelper)
               .copyString(val);
           },
           supportsCommand: function(aCommand) {
             switch (aCommand) {
               case "cmd_copy":
               case "cmd_cut":
@@ -408,16 +414,30 @@
         </setter>
       </property>
     </implementation>
 
     <handlers>
       <handler event="focus" phase="capturing" action="this._hideURLTooltip();"/>
       <handler event="dragover" phase="capturing" action="nsDragAndDrop.dragOver(event, this);"/>
       <handler event="dragdrop" phase="capturing" action="nsDragAndDrop.drop(event, this);"/>
+      <handler event="select"><![CDATA[
+        if (!Cc["@mozilla.org/widget/clipboard;1"]
+               .getService(Ci.nsIClipboard)
+               .supportsSelectionClipboard())
+          return;
+
+        var val = this._getSelectedValueForClipboard();
+        if (!val)
+          return;
+
+        Cc["@mozilla.org/widget/clipboardhelper;1"]
+          .getService(Ci.nsIClipboardHelper)
+          .copyStringToClipboard(val, Ci.nsIClipboard.kSelectionClipboard);
+      ]]></handler>
     </handlers>
 
   </binding>
 
   <!-- Note: this binding is applied to the autocomplete popup used in the Search bar and in web page content -->
   <binding id="browser-autocomplete-result-popup" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-result-popup">
     <implementation>
       <method name="openAutocompletePopup">
--- a/browser/components/preferences/security.xul
+++ b/browser/components/preferences/security.xul
@@ -91,23 +91,23 @@
                   onsyncfrompreference="return gSecurityPane.readWarnAddonInstall();"/>
         <button id="addonExceptions"
                 label="&addonExceptions.label;"
                 accesskey="&addonExceptions.accesskey;"
                 oncommand="gSecurityPane.showAddonExceptions();"/>
       </hbox>
 
       <separator class="thin"/>
-      <checkbox id="tellMaybeAttackSite"
-                label="&tellMaybeAttackSite2.label;"
-                accesskey="&tellMaybeAttackSite.accesskey;"
+      <checkbox id="blockAttackSites"
+                label="&blockAttackSites.label;"
+                accesskey="&blockAttackSites.accesskey;"
                 preference="browser.safebrowsing.malware.enabled" />
-      <checkbox id="tellMaybeForgery"
-                label="&tellMaybeForgery2.label;"
-                accesskey="&tellMaybeForgery.accesskey;"
+      <checkbox id="blockWebForgeries"
+                label="&blockWebForgeries.label;"
+                accesskey="&blockWebForgeries.accesskey;"
                 preference="browser.safebrowsing.enabled" />
     </groupbox>
 
     <!-- Passwords -->
     <groupbox id="passwordsGroup" orient="vertical">
       <caption label="&passwords.label;"/>
 
       <hbox id="savePasswordsBox">
--- a/browser/config/version.txt
+++ b/browser/config/version.txt
@@ -1,1 +1,1 @@
-3.1b1pre
+3.1b2pre
--- a/browser/locales/all-locales
+++ b/browser/locales/all-locales
@@ -44,16 +44,17 @@ oc
 pa-IN
 pl
 pt-BR
 pt-PT
 ro
 ru
 si
 sk
+sl
 sq
 sr
 sv-SE
 ta
 te
 th
 tr
 uk
--- a/browser/locales/en-US/chrome/browser/preferences/security.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/security.dtd
@@ -1,23 +1,23 @@
 <!ENTITY  warnAddonInstall.label        "Warn me when sites try to install add-ons">
 <!ENTITY  warnAddonInstall.accesskey    "W">
 
-<!-- LOCALIZATION NOTE (tellMaybeForgery.label, tellMaybeAttackSite.label):
+<!-- LOCALIZATION NOTE (blockWebForgeries.label, blockAttackSites.label):
   The methods by which forged (phished) and attack sites will be detected by
   phishing providers will vary from human review to machine-based heuristics to a
   combination of both, so it's important that these strings and
   useDownloadedList.label convey the meaning "reported" (and not something like
   "known").
 -->
-<!ENTITY  tellMaybeAttackSite2.label     "Block reported attack sites">
-<!ENTITY  tellMaybeAttackSite.accesskey "k">
+<!ENTITY  blockAttackSites.label     "Block reported attack sites">
+<!ENTITY  blockAttackSites.accesskey "k">
 
-<!ENTITY  tellMaybeForgery2.label     "Block reported web forgeries">
-<!ENTITY  tellMaybeForgery.accesskey "B">
+<!ENTITY  blockWebForgeries.label     "Block reported web forgeries">
+<!ENTITY  blockWebForgeries.accesskey "B">
 
 <!ENTITY  addonExceptions.label         "Exceptions…">
 <!ENTITY  addonExceptions.accesskey     "E">
 
 
 <!ENTITY  passwords.label               "Passwords">
 
 <!ENTITY  rememberPasswords.label       "Remember passwords for sites">
--- a/browser/locales/shipped-locales
+++ b/browser/locales/shipped-locales
@@ -1,49 +1,37 @@
-af
-ar
 be
 ca
 cs
-da
 de
-el
-en-GB
 en-US
+eo
 es-AR
 es-ES
 eu
 fi
 fr
 fy-NL
 ga-IE
-gu-IN linux win32
 he
+hi-IN
 hu
 id
 it
 ja linux win32
 ja-JP-mac osx
-ka
 ko
-ku
 lt
-mk
-mn
 nb-NO
 nl
 nn-NO
 pa-IN
 pl
 pt-BR
 pt-PT
 ro
 ru
 si
 sk
-sl
-sq
-sr
 sv-SE
-tr
 uk
 zh-CN
 zh-TW
--- a/browser/themes/pinstripe/browser/browser.css
+++ b/browser/themes/pinstripe/browser/browser.css
@@ -133,89 +133,77 @@ toolbarbutton.bookmark-item[chromedir="r
 .bookmark-item[container] {
   list-style-image: url("chrome://global/skin/tree/folder.png");
 }
 
 .query-item[container] {
   list-style-image: url("chrome://browser/skin/places/history.png");
 }
 
-toolbarbutton.bookmark-item > .toolbarbutton-text-stack > label {
+toolbarbutton.bookmark-item > .toolbarbutton-text {
   margin: 0;
 }
-toolbarbutton.bookmark-item > .toolbarbutton-text-stack > .toolbarbutton-text-shadow {
-  padding-top: 2px;
-  text-align: center;
-}
 
-toolbarbutton.bookmark-item:not([container]) > .toolbarbutton-text-stack {
+toolbarbutton.bookmark-item:not([container]) > .toolbarbutton-text {
   -moz-padding-end: 7px;
 }
 
-toolbarbutton.bookmark-item[chromedir="rtl"] > .toolbarbutton-text-stack {
+toolbarbutton.bookmark-item[chromedir="rtl"] > .toolbarbutton-text {
   -moz-padding-end: 0;
   -moz-padding-start: 7px;
 }
 
 toolbarbutton.bookmark-item:hover {
   background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-left.png") no-repeat left center;
 }
 
 toolbarbutton.bookmark-item:hover:active,
 toolbarbutton.bookmark-item[open="true"] {
   background:url("chrome://browser/skin/bookmark-open-left.png") no-repeat left center;
 }
 
-toolbarbutton.bookmark-item:not([container]):hover > .toolbarbutton-text-stack,
+toolbarbutton.bookmark-item:not([container]):hover > .toolbarbutton-text,
 toolbarbutton.bookmark-item[container]:not([open]):hover > .toolbarbutton-menu-dropmarker {
   background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-right.png") no-repeat right center;
 }
 
-toolbarbutton.bookmark-item[container]:hover > .toolbarbutton-text-stack,
+toolbarbutton.bookmark-item[container]:hover > .toolbarbutton-text,
 toolbarbutton.bookmark-item[container]:not([open]):hover > .toolbarbutton-menu-dropmarker[chromedir="rtl"],
 #home-button.bookmark-item:hover > .toolbarbutton-icon,
-#home-button.bookmark-item[chromedir="rtl"]:hover > .toolbarbutton-text-stack {
+#home-button.bookmark-item[chromedir="rtl"]:hover > .toolbarbutton-text {
   background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-mid.png") repeat-x;
 }
 
 #home-button.bookmark-item:hover[chromedir="rtl"] > .toolbarbutton-icon,
-toolbarbutton.bookmark-item[chromedir="rtl"]:hover > .toolbarbutton-text-stack {
+toolbarbutton.bookmark-item[chromedir="rtl"]:hover > .toolbarbutton-text {
   background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-right.png") no-repeat right center;
 }
 
-toolbarbutton.bookmark-item:not([container]):hover:active  > .toolbarbutton-text-stack,
+toolbarbutton.bookmark-item:not([container]):hover:active > .toolbarbutton-text,
 toolbarbutton.bookmark-item[open] > .toolbarbutton-menu-dropmarker,
 toolbarbutton.bookmark-item[container]:hover:active > .toolbarbutton-menu-dropmarker 
 {
   background: url("chrome://browser/skin/bookmark-open-right.png") no-repeat right center;
 }
 
-toolbarbutton.bookmark-item[container]:hover:active  > .toolbarbutton-text-stack,
-toolbarbutton.bookmark-item[container][open="true"] > .toolbarbutton-text-stack,
+toolbarbutton.bookmark-item[container]:hover:active > .toolbarbutton-text,
+toolbarbutton.bookmark-item[container][open="true"] > .toolbarbutton-text,
 #home-button.bookmark-item:hover:active > .toolbarbutton-icon,
 toolbarbutton.bookmark-item[container]:hover:active > .toolbarbutton-menu-dropmarker[chromedir="rtl"],
 toolbarbutton.bookmark-item[container][open="true"] > .toolbarbutton-menu-dropmarker[chromedir="rtl"],
-#home-button.bookmark-item:hover:active[chromedir="rtl"] > .toolbarbutton-text-stack {
+#home-button.bookmark-item:hover:active[chromedir="rtl"] > .toolbarbutton-text {
   background: url("chrome://browser/skin/bookmark-open-mid.png") repeat-x !important;
 }
 
-toolbarbutton.bookmark-item[chromedir="rtl"][container]:hover:active  > .toolbarbutton-text-stack,
-toolbarbutton.bookmark-item[chromedir="rtl"][container][open] > .toolbarbutton-text-stack,
+toolbarbutton.bookmark-item[chromedir="rtl"][container]:hover:active > .toolbarbutton-text,
+toolbarbutton.bookmark-item[chromedir="rtl"][container][open] > .toolbarbutton-text,
 #home-button.bookmark-item[chromedir="rtl"]:hover:active > .toolbarbutton-icon {
   background: url("chrome://browser/skin/bookmark-open-right.png") no-repeat right center !important;
 }
 
-toolbarbutton.bookmark-item:not([container="true"]) {
-  -moz-binding: url(chrome://browser/skin/browser.xml#toolbarbutton-shadow);
-}
-
-toolbarbutton.bookmark-item[container="true"] {
-  -moz-binding: url(chrome://browser/skin/browser.xml#toolbarbutton-menu-shadow);
-}
-
 toolbarbutton.bookmark-item-microsummarized {
   max-width: 20em;
 }
 
 .bookmark-item > .toolbarbutton-icon {
   margin: 0px;
   display: none !important;
 }
@@ -376,29 +364,16 @@ toolbar:not([mode="text"]) #forward-butt
 
 toolbar[mode="icons"] #back-button .toolbarbutton-text-box,
 toolbar[mode="icons"] #forward-button .toolbarbutton-text-box,
 #back-button > dropmarker,
 #forward-button > dropmarker {
   display: none;
 }
 
-/* ----- DEFAULT PRIMARY TOOLBAR BUTTONS ----- */	
-
-.toolbarbutton-text-shadow,
-.tab-text-shadow {
-  color: #f0f0f0;
-  padding-top: 1px;
-  opacity: 0.5;
-}
-
-.tab-text-shadow {
-  padding-top: 0;
-}
-
 /* ----- DEFAULT BACK BUTTON, STAND-ALONE ----- */	
 
 #back-button {
   -moz-image-region: rect(0px, 36px, 23px, 0px);
 }
 #back-button[disabled="true"] {
   -moz-image-region: rect(23px, 36px, 46px, 0px);
 }
@@ -1596,32 +1571,29 @@ toolbarbutton.chevron > .toolbarbutton-m
 }
 
 .tabbrowser-tab:not([selected="true"]):hover .tab-icon,
 .tabbrowser-tab[selected="true"] .tab-icon {
   opacity: 1.0;
 }
 
 .tab-text {
-  margin-top: 0 !important;
-}
-
-.tab-text,
-.tab-text-shadow {
+  margin-top: 0;
   font: message-box;
-  font-weight: bold !important;
+  font-weight: bold;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
+  padding-bottom: 1px;
 }
 
 .tabbrowser-tab[busy] > .tab-icon-image,
 .tabbrowser-tab[busy] > .tab-image-middle > .tab-icon > .tab-icon-image {
  list-style-image: url("chrome://global/skin/icons/loading_16.png") !important; 
 }
 
 .tabbrowser-tab {
-  -moz-binding: url("chrome://browser/skin/browser.xml#tabbrowser-tab") !important;
   -moz-appearance: none;
   -moz-border-radius: 0 0 3px 3px;
   color: #222;
   -moz-box-pack: center;
   margin: 0 3px 3px 2px;
   padding: 0px;
   border: none !important;
   min-width: 1px !important;
@@ -1629,17 +1601,17 @@ toolbarbutton.chevron > .toolbarbutton-m
   height: 22px;
 }
 
 .tabbrowser-tab[selected="true"] {
   -moz-user-focus: normal;
   background-color: -moz-mac-chrome-active;
 }
 
-.tabbrowser-tab[selected="true"]:focus > .tab-image-middle > .tab-text-stack > .tab-text {
+.tabbrowser-tab[selected="true"]:focus > .tab-image-middle > .tab-text {
   outline: 2px solid #4F8EC9;
   outline-offset: -2px;
   -moz-outline-radius: 3px;
 }
 
 .tabbrowser-tab[selected="true"],
 .tabbrowser-tab:hover {
   color: #000000;
--- a/browser/themes/pinstripe/browser/browser.xml
+++ b/browser/themes/pinstripe/browser/browser.xml
@@ -16,60 +16,16 @@
   <!-- :::/ widgets \ ::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
 
   <binding id="bookmark-left">
     <content>
       	<xul:spacer class="bookmark-image-left" xbl:inherits="selected"/>
         <children/>
     </content>
   </binding>
-   <binding id="toolbarbutton-menu-shadow" display="xul:menu" 
-           extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton">
-    <content chromedir="&locale.dir;">
-      <children includes="observes|template|menupopup|tooltip"/>
-      <xul:image class="toolbarbutton-icon" xbl:inherits="validate,src=image,toolbarmode,buttonstyle"/>
-      <xul:stack class="toolbarbutton-text-stack" crop="right" flex="1">
-         <xul:label class="toolbarbutton-text-shadow" crop="right" flex="1"
-                 xbl:inherits="value=label,accesskey,crop,dragover-top,toolbarmode,buttonstyle"/>
-         <xul:label class="toolbarbutton-text" crop="right" flex="1"
-                 xbl:inherits="value=label,accesskey,crop,dragover-top,toolbarmode,buttonstyle"/>
-      </xul:stack>
-      <xul:dropmarker type="menu" class="toolbarbutton-menu-dropmarker" xbl:inherits="disabled,label,chromedir"/>
-    </content>
-  </binding>
-  <binding id="toolbarbutton-shadow" extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton">
-   <content chromedir="&locale.dir;">
-      <children includes="observes|template|menupopup|tooltip"/>
-      <xul:image class="toolbarbutton-icon" xbl:inherits="validate,src=image,toolbarmode,buttonstyle"/>
-      <xul:stack class="toolbarbutton-text-stack" crop="right" flex="1">
-         <xul:label class="toolbarbutton-text-shadow" crop="right" flex="1"
-                 xbl:inherits="value=label,accesskey,crop,toolbarmode,buttonstyle"/>
-         <xul:label class="toolbarbutton-text" crop="right" flex="1"
-                 xbl:inherits="value=label,accesskey,crop,toolbarmode,buttonstyle"/>
-      </xul:stack>
-    </content>
-  </binding>
-  
-  <binding id="tabbrowser-tab" extends="chrome://browser/content/tabbrowser.xml#tabbrowser-tab">
-    <content chromedir="&locale.dir;" closetabtext="&closeTab.label;">
-      <xul:hbox class="tab-image-left" xbl:inherits="selected"/>
-      <xul:hbox class="tab-image-middle" flex="1" align="center" xbl:inherits="selected">
-        <xul:stack class="tab-icon">
-          <xul:image xbl:inherits="validate,src=image" class="tab-icon-image"/>
-          <xul:image class="tab-extra-status"/>
-        </xul:stack>
-        <xul:stack class="tab-text-stack" flex="1">
-            <xul:label flex="1" xbl:inherits="value=label,crop,accesskey" crop="right" class="tab-text-shadow"/>
-            <xul:label flex="1" xbl:inherits="value=label,crop,accesskey" crop="right" class="tab-text"/>
-        </xul:stack>
-      </xul:hbox>
-      <xul:toolbarbutton anonid="close-button" tabindex="-1" class="tab-close-button"/>
-      <xul:hbox class="tab-image-right" xbl:inherits="selected"/>
-    </content>
-    </binding>
     <binding id="radiogroup-wrapper" extends="chrome://global/content/bindings/radio.xml#radiogroup">
     <content>
       <xul:box class="radiogroup-wrapper">
         <children/>
       </xul:box>
     </content>
     </binding>
     <binding id="bm-toolbarbutton" display="xul:button"
--- a/browser/themes/pinstripe/browser/searchbar.css
+++ b/browser/themes/pinstripe/browser/searchbar.css
@@ -1,17 +1,17 @@
 /* *** pinstripe *** */
 
 .searchbar-textbox {
   -moz-appearance: none;
   font: icon;
   height: 26px;
   width: 5em;
   margin-top: 3px;
-  -moz-margin-start: 5px;
+  -moz-margin-start: 4px;
   min-width: 5em;
   border: none;
   background-color: transparent;
 }
 
 .searchbar-textbox > .autocomplete-textbox-container > .textbox-input-box {
   background: url("chrome://browser/skin/urlbar/textfield-mid.png") repeat-x;
   padding: 0 !important;
--- a/caps/include/nsScriptSecurityManager.h
+++ b/caps/include/nsScriptSecurityManager.h
@@ -397,24 +397,28 @@ public:
 
     /**
      * Utility method for comparing two URIs.  For security purposes, two URIs
      * are equivalent if their schemes, hosts, and ports (if any) match.  This
      * method returns true if aSubjectURI and aObjectURI have the same origin,
      * false otherwise.
      */
     static PRBool SecurityCompareURIs(nsIURI* aSourceURI, nsIURI* aTargetURI);
+    static PRUint32 SecurityHashURI(nsIURI* aURI);
 
     static nsresult 
     ReportError(JSContext* cx, const nsAString& messageTag,
                 nsIURI* aSource, nsIURI* aTarget);
+
     static nsresult
     CheckSameOriginPrincipal(nsIPrincipal* aSubject,
                              nsIPrincipal* aObject,
                              PRBool aIsCheckConnect);
+    static PRUint32
+    HashPrincipalByOrigin(nsIPrincipal* aPrincipal);
 
     static PRBool
     GetStrictFileOriginPolicy()
     {
         return sStrictFileOriginPolicy;
     }
 
 private:
--- a/caps/src/nsPrincipal.cpp
+++ b/caps/src/nsPrincipal.cpp
@@ -714,19 +714,17 @@ nsPrincipal::GetHashValue(PRUint32* aVal
 {
   NS_PRECONDITION(mCert || mCodebase, "Need a cert or codebase");
 
   // If there is a certificate, it takes precendence over the codebase.
   if (mCert) {
     *aValue = nsCRT::HashCode(mCert->fingerprint.get());
   }
   else {
-    nsCAutoString str;
-    mCodebase->GetSpec(str);
-    *aValue = nsCRT::HashCode(str.get());
+    *aValue = nsScriptSecurityManager::HashPrincipalByOrigin(this);
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsPrincipal::GetDomain(nsIURI** aDomain)
 {
--- a/caps/src/nsScriptSecurityManager.cpp
+++ b/caps/src/nsScriptSecurityManager.cpp
@@ -273,17 +273,39 @@ public:
 
 private:
     nsIClassInfo *mClassInfo; // WEAK
     PRUint32 mFlags;
     char *mName;
     PRPackedBool mDidGetFlags;
     PRPackedBool mMustFreeName;
 };
- 
+
+class AutoCxPusher {
+public:
+    AutoCxPusher(nsIJSContextStack *aStack, JSContext *cx)
+        : mStack(aStack), mContext(cx)
+    {
+        if (NS_FAILED(mStack->Push(mContext))) {
+            mStack = nsnull;
+        }
+    }
+
+    ~AutoCxPusher()
+    {
+        if (mStack) {
+            mStack->Pop(nsnull);
+        }
+    }
+
+private:
+    nsCOMPtr<nsIJSContextStack> mStack;
+    JSContext *mContext;
+};
+
 JSContext *
 nsScriptSecurityManager::GetCurrentJSContext()
 {
     // Get JSContext from stack.
     if (!mJSContextStack)
     {
         mJSContextStack = do_GetService("@mozilla.org/js/xpc/ContextStack;1");
         if (!mJSContextStack)
@@ -314,16 +336,24 @@ nsScriptSecurityManager::GetSafeJSContex
 /* static */
 PRBool
 nsScriptSecurityManager::SecurityCompareURIs(nsIURI* aSourceURI,
                                              nsIURI* aTargetURI)
 {
     return NS_SecurityCompareURIs(aSourceURI, aTargetURI, sStrictFileOriginPolicy);
 }
 
+// SecurityHashURI is consistent with SecurityCompareURIs because NS_SecurityHashURI
+// is consistent with NS_SecurityCompareURIs.  See nsNetUtil.h.
+PRUint32
+nsScriptSecurityManager::SecurityHashURI(nsIURI* aURI)
+{
+    return NS_SecurityHashURI(aURI);
+}
+
 NS_IMETHODIMP
 nsScriptSecurityManager::GetChannelPrincipal(nsIChannel* aChannel,
                                              nsIPrincipal** aPrincipal)
 {
     NS_PRECONDITION(aChannel, "Must have channel!");
     nsCOMPtr<nsISupports> owner;
     aChannel->GetOwner(getter_AddRefs(owner));
     if (owner) {
@@ -474,18 +504,18 @@ nsScriptSecurityManager::CheckObjectAcce
     // object.
     JSObject* target = JSVAL_IS_PRIMITIVE(*vp) ? obj : JSVAL_TO_OBJECT(*vp);
 
     // Do the same-origin check -- this sets a JS exception if the check fails.
     // Pass the parent object's class name, as we have no class-info for it.
     nsresult rv =
         ssm->CheckPropertyAccess(cx, target, STOBJ_GET_CLASS(obj)->name, id,
                                  (mode & JSACC_WRITE) ?
-                                 nsIXPCSecurityManager::ACCESS_SET_PROPERTY :
-                                 nsIXPCSecurityManager::ACCESS_GET_PROPERTY);
+                                 (PRInt32)nsIXPCSecurityManager::ACCESS_SET_PROPERTY :
+                                 (PRInt32)nsIXPCSecurityManager::ACCESS_GET_PROPERTY);
 
     if (NS_FAILED(rv))
         return JS_FALSE; // Security check failed (XXX was an error reported?)
 
     return JS_TRUE;
 }
 
 NS_IMETHODIMP
@@ -895,16 +925,37 @@ nsScriptSecurityManager::CheckSameOrigin
     }
 
     /*
     ** Access tests failed, so now report error.
     */
     return NS_ERROR_DOM_PROP_ACCESS_DENIED;
 }
 
+// It's important that
+//
+//   CheckSameOriginPrincipal(A, B, PR_FALSE) == NS_OK
+//
+// imply
+//
+//   HashPrincipalByOrigin(A) == HashPrincipalByOrigin(B)
+//
+// if principals A and B could ever be used as keys in a hashtable.
+// Violation of this invariant leads to spurious failures of hashtable
+// lookups.  See bug 454850.
+
+/*static*/ PRUint32
+nsScriptSecurityManager::HashPrincipalByOrigin(nsIPrincipal* aPrincipal)
+{
+    nsCOMPtr<nsIURI> uri;
+    aPrincipal->GetDomain(getter_AddRefs(uri));
+    if (!uri)
+        aPrincipal->GetURI(getter_AddRefs(uri));
+    return SecurityHashURI(uri);
+}
 
 nsresult
 nsScriptSecurityManager::CheckSameOriginDOMProp(nsIPrincipal* aSubject,
                                                 nsIPrincipal* aObject,
                                                 PRUint32 aAction,
                                                 PRBool aIsCheckConnect)
 {
     nsresult rv;
@@ -3363,16 +3414,17 @@ nsScriptSecurityManager::InitPolicies()
           new nsObjectHashtable(nsnull, nsnull, DeleteCapability, nsnull);
         if (!mCapabilities)
             return NS_ERROR_OUT_OF_MEMORY;
     }
 
     // Get a JS context - we need it to create internalized strings later.
     JSContext* cx = GetSafeJSContext();
     NS_ASSERTION(cx, "failed to get JS context");
+    AutoCxPusher autoPusher(mJSContextStack, cx);
     rv = InitDomainPolicy(cx, "default", mDefaultPolicy);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsXPIDLCString policyNames;
     rv = mSecurityPref->SecurityGetCharPref("capability.policy.policynames",
                                             getter_Copies(policyNames));
 
     nsXPIDLCString defaultPolicyNames;
@@ -3395,18 +3447,18 @@ nsScriptSecurityManager::InitPolicies()
             policyCurrent++;
 
         morePolicies = (*policyCurrent != '\0');
         *policyCurrent = '\0';
         policyCurrent++;
 
         nsCAutoString sitesPrefName(
             NS_LITERAL_CSTRING(sPolicyPrefix) +
-				    nsDependentCString(nameBegin) +
-				    NS_LITERAL_CSTRING(".sites"));
+            nsDependentCString(nameBegin) +
+            NS_LITERAL_CSTRING(".sites"));
         nsXPIDLCString domainList;
         rv = mSecurityPref->SecurityGetCharPref(sitesPrefName.get(),
                                                 getter_Copies(domainList));
         if (NS_FAILED(rv))
             continue;
 
         DomainPolicy* domainPolicy = new DomainPolicy();
         if (!domainPolicy)
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -5,9 +5,9 @@
 #    x.x.x.x
 #    x.x.x+
 #
 # Referenced by milestone.pl.
 # Hopefully I'll be able to automate replacement of *all*
 # hardcoded milestones in the tree from these two files.
 #--------------------------------------------------------
 
-1.9.1b1pre
+1.9.1b2pre
--- a/config/system-headers
+++ b/config/system-headers
@@ -991,17 +991,16 @@ prshm.h
 prshma.h
 prsystem.h
 prthread.h
 prtime.h
 prtpool.h
 prtrace.h
 prtypes.h
 prvrsion.h
-prwin16.h
 plbase64.h
 plerror.h
 plgetopt.h
 plresolv.h
 plstr.h
 plarenas.h
 plarena.h
 plhash.h
--- a/configure.in
+++ b/configure.in
@@ -1014,19 +1014,16 @@ HOST_OS_ARCH=`echo $host_os | sed -e 's|
 # Note: OS_TARGET should be specified on the command line for gmake.
 # When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
 # The difference between the Win95 target and the WinNT target is that
 # the WinNT target uses Windows NT specific features not available
 # in Windows 95. The Win95 target will run on Windows NT, but (supposedly)
 # at lesser performance (the Win95 target uses threads; the WinNT target
 # uses fibers).
 #
-# When OS_TARGET=WIN16 is specified, then a Windows 3.11 (16bit) target
-# is built. See: win16_3.11.mk for lots more about the Win16 target.
-#
 # If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
 # cross-compilation.
 #
 
 #
 # The following hack allows one to build on a WIN95 machine (as if
 # s/he were cross-compiling on a WINNT host for a WIN95 target).
 # It also accomodates for MKS's uname.exe.  If you never intend
@@ -1275,19 +1272,16 @@ x86_64 | ia64)
 esac
 
 if test -z "$OS_TARGET"; then
     OS_TARGET=$OS_ARCH
 fi
 if test "$OS_TARGET" = "WIN95"; then
     OS_RELEASE="4.0"
 fi
-if test "$OS_TARGET" = "WIN16"; then
-    OS_RELEASE=
-fi
 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
 
 dnl ========================================================
 dnl GNU specific defaults
 dnl ========================================================
 if test "$GNU_CC"; then
     # FIXME: Let us build with strict aliasing. bug 414641.
     CFLAGS="$CFLAGS -fno-strict-aliasing"
@@ -5226,17 +5220,17 @@ dnl ====================================
 MOZ_ARG_DISABLE_BOOL(accessibility,
 [  --disable-accessibility Disable accessibility support (off by default on OS X)],
     ACCESSIBILITY=,
     ACCESSIBILITY=1 )
 if test "$ACCESSIBILITY"; then
     AC_DEFINE(ACCESSIBILITY)
 fi
 
-if test -n "$ACCESSIBILITY"; then
+if test -n "$ACCESSIBILITY" -a "$COMPILE_ENVIRONMENT" = "1"; then
 case "$target" in
 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
     if test "$ac_cv_header_atlbase_h" = "no"; then
         AC_MSG_ERROR([System header atlbase.h is not available. See http://developer.mozilla.org/en/docs/atlbase.h for details on fixing this problem.])
     fi
     if test "$ac_cv_header_oleacc_idl" = "no"; then
         AC_MSG_ERROR([System header oleacc.idl is not available. See http://developer.mozilla.org/en/docs/oleacc.idl for details on fixing this problem.])
     fi
@@ -5841,25 +5835,27 @@ MOZ_ARG_DISABLE_BOOL(activex-scripting,
     MOZ_ACTIVEX_SCRIPTING_SUPPORT=1)
 AC_SUBST(MOZ_ACTIVEX_SCRIPTING_SUPPORT)
 
 if test -n "$MOZ_NO_ACTIVEX_SUPPORT" -a -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT";
 then
     AC_MSG_ERROR([Cannot enable ActiveX scripting support when ActiveX support is disabled.])
 fi
 
+if test "$COMPILE_ENVIRONMENT" = "1"; then
 if test -n "$XPC_IDISPATCH_SUPPORT" -o -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT" -o -z "$MOZ_NO_ACTIVEX_SUPPORT"; then
 case "$target" in
 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
     if test "$ac_cv_header_atlbase_h" = "no"; then
         AC_MSG_ERROR([System header atlbase.h is not available. See http://developer.mozilla.org/en/docs/atlbase.h for details on fixing this problem.])
     fi
     ;;
 esac
 fi
+fi
 
 dnl ========================================================
 dnl leaky
 dnl ========================================================
 MOZ_ARG_ENABLE_BOOL(leaky,
 [  --enable-leaky          Build leaky memory tool],
     MOZ_LEAKY=1,
     MOZ_LEAKY=)
@@ -5897,32 +5893,34 @@ fi
 dnl ========================================================
 dnl Vista SDK specific api
 dnl ========================================================
 MOZ_ARG_DISABLE_BOOL(vista-sdk-requirements,
 [  --disable-vista-sdk-requirements
                            Do not build Vista SDK specific code],
    MOZ_DISABLE_VISTA_SDK_REQUIREMENTS=1,
    MOZ_DISABLE_VISTA_SDK_REQUIREMENTS=)
+if test -n "$COMPILE_ENVIRONMENT"; then
 if test -n "$MOZ_DISABLE_VISTA_SDK_REQUIREMENTS"; then
     AC_MSG_WARN([Resulting builds will not be compatible with Windows Vista. (bug 428970)])
     AC_DEFINE(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
     if test -z "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
         AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
     fi
     MOZ_DISABLE_PARENTAL_CONTROLS=1
 else
 case "$target" in
 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
     if test "$ac_cv_header_wpcapi_h" = "no"; then
         AC_MSG_ERROR([System header wpcapi.h is not available. See updated http://developer.mozilla.org/en/docs/wpcapi.h for details on fixing this problem.])
     fi
     ;;
 esac
 fi
+fi
 AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
 AC_SUBST(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
 
 dnl ========================================================
 dnl =
 dnl = Module specific options
 dnl =
 dnl ========================================================
--- a/content/base/public/nsContentUtils.h
+++ b/content/base/public/nsContentUtils.h
@@ -100,16 +100,17 @@ template<class E> class nsCOMArray;
 class nsIPref;
 class nsVoidArray;
 struct JSRuntime;
 class nsICaseConversion;
 class nsIUGenCategory;
 class nsIWidget;
 class nsIDragSession;
 class nsPIDOMWindow;
+class nsPIDOMEventTarget;
 #ifdef MOZ_XTF
 class nsIXTFService;
 #endif
 #ifdef IBMBIDI
 class nsIBidiKeyboard;
 #endif
 
 extern const char kLoadAsData[];
@@ -1332,17 +1333,21 @@ public:
 
   static nsresult GetContextForEventHandlers(nsINode* aNode,
                                              nsIScriptContext** aContext);
 
   static JSContext *GetCurrentJSContext();
 
                                              
   static nsIInterfaceRequestor* GetSameOriginChecker();
-                                           
+
+  static nsIThreadJSContextStack* ThreadJSContextStack()
+  {
+    return sThreadJSContextStack;
+  }
 private:
 
   static PRBool InitializeEventTable();
 
   static nsresult doReparentContentWrapper(nsIContent *aChild,
                                            JSContext *cx,
                                            JSObject *aOldGlobal,
                                            JSObject *aNewGlobal,
@@ -1429,22 +1434,21 @@ private:
 
 class NS_STACK_CLASS nsCxPusher
 {
 public:
   nsCxPusher();
   ~nsCxPusher(); // Calls Pop();
 
   // Returns PR_FALSE if something erroneous happened.
-  PRBool Push(nsISupports *aCurrentTarget);
+  PRBool Push(nsPIDOMEventTarget *aCurrentTarget);
   PRBool Push(JSContext *cx);
   void Pop();
 
 private:
-  nsCOMPtr<nsIJSContextStack> mStack;
   nsCOMPtr<nsIScriptContext> mScx;
   PRBool mScriptIsRunning;
 };
 
 class nsAutoGCRoot {
 public:
   // aPtr should be the pointer to the jsval we want to protect
   nsAutoGCRoot(jsval* aPtr, nsresult* aResult) :
--- a/content/base/src/nsContentUtils.cpp
+++ b/content/base/src/nsContentUtils.cpp
@@ -2686,28 +2686,27 @@ IsContextOnStack(nsIJSContextStack *aSta
     if (nsJSUtils::GetDynamicScriptContext(ctx) && ctx == aContext)
       return PR_TRUE;
   }
 
   return PR_FALSE;
 }
 
 PRBool
-nsCxPusher::Push(nsISupports *aCurrentTarget)
+nsCxPusher::Push(nsPIDOMEventTarget *aCurrentTarget)
 {
   if (mScx) {
     NS_ERROR("Whaaa! No double pushing with nsCxPusher::Push()!");
 
     return PR_FALSE;
   }
 
-  nsCOMPtr<nsPIDOMEventTarget> eventTarget = do_QueryInterface(aCurrentTarget);
-  NS_ENSURE_TRUE(eventTarget, PR_FALSE);
+  NS_ENSURE_TRUE(aCurrentTarget, PR_FALSE);
   nsCOMPtr<nsIScriptContext> scx;
-  nsresult rv = eventTarget->GetContextForEventHandlers(getter_AddRefs(scx));
+  nsresult rv = aCurrentTarget->GetContextForEventHandlers(getter_AddRefs(scx));
   NS_ENSURE_SUCCESS(rv, PR_FALSE);
   JSContext* cx = nsnull;
 
   if (scx) {
     cx = static_cast<JSContext*>(scx->GetNativeContext());
     // Bad, no JSContext from script context!
     NS_ENSURE_TRUE(cx, PR_FALSE);
   }
@@ -2730,47 +2729,45 @@ nsCxPusher::Push(JSContext *cx)
 
   if (cx) {
     mScx = GetScriptContextFromJSContext(cx);
     if (!mScx) {
       // Should probably return PR_FALSE. See bug 416916.
       return PR_TRUE;
     }
 
-    if (!mStack) {
-      mStack = do_GetService(kJSStackContractID);
-    }
-
-    if (mStack) {
-      if (IsContextOnStack(mStack, cx)) {
+    nsIThreadJSContextStack* stack = nsContentUtils::ThreadJSContextStack();
+    if (stack) {
+      if (IsContextOnStack(stack, cx)) {
         // If the context is on the stack, that means that a script
         // is running at the moment in the context.
         mScriptIsRunning = PR_TRUE;
       }
 
-      mStack->Push(cx);
+      stack->Push(cx);
     }
   }
   return PR_TRUE;
 }
 
 void
 nsCxPusher::Pop()
 {
-  if (!mScx || !mStack) {
+  nsIThreadJSContextStack* stack = nsContentUtils::ThreadJSContextStack();
+  if (!mScx || !stack) {
     mScx = nsnull;
 
     NS_ASSERTION(!mScriptIsRunning, "Huh, this can't be happening, "
                  "mScriptIsRunning can't be set here!");
 
     return;
   }
 
   JSContext *unused;
-  mStack->Pop(&unused);
+  stack->Pop(&unused);
 
   if (!mScriptIsRunning) {
     // No JS is running in the context, but executing the event handler might have
     // caused some JS to run. Tell the script context that it's done.
 
     mScx->ScriptEvaluated(PR_TRUE);
   }
 
--- a/content/base/src/nsDocument.cpp
+++ b/content/base/src/nsDocument.cpp
@@ -5991,17 +5991,18 @@ nsDocument::PreHandleEvent(nsEventChainP
 {
   aVisitor.mCanHandle = PR_TRUE;
    // FIXME! This is a hack to make middle mouse paste working also in Editor.
    // Bug 329119
   aVisitor.mForceContentDispatch = PR_TRUE;
 
   // Load events must not propagate to |window| object, see bug 335251.
   if (aVisitor.mEvent->message != NS_LOAD) {
-    aVisitor.mParentTarget = GetWindow();
+    nsCOMPtr<nsPIDOMEventTarget> parentTarget = do_QueryInterface(GetWindow());
+    aVisitor.mParentTarget = parentTarget;
   }
   return NS_OK;
 }
 
 nsresult
 nsDocument::PostHandleEvent(nsEventChainPostVisitor& aVisitor)
 {
   return NS_OK;
--- a/content/base/src/nsFrameLoader.cpp
+++ b/content/base/src/nsFrameLoader.cpp
@@ -67,16 +67,17 @@
 #include "nsFrameLoader.h"
 #include "nsIDOMEventTarget.h"
 #include "nsIFrame.h"
 #include "nsIFrameFrame.h"
 #include "nsDOMError.h"
 #include "nsPresShellIterator.h"
 #include "nsGUIEvent.h"
 #include "nsEventDispatcher.h"
+#include "nsISHistory.h"
 
 #include "nsIURI.h"
 #include "nsIURL.h"
 #include "nsNetUtil.h"
 
 #include "nsGkAtoms.h"
 #include "nsINameSpaceManager.h"
 
@@ -337,22 +338,16 @@ FirePageShowEvent(nsIDocShellTreeItem* a
 }
 
 static void
 SetTreeOwnerAndChromeEventHandlerOnDocshellTree(nsIDocShellTreeItem* aItem,
                                                 nsIDocShellTreeOwner* aOwner,
                                                 nsIDOMEventTarget* aHandler)
 {
   NS_PRECONDITION(aItem, "Must have item");
-#ifdef DEBUG
-  PRInt32 itemType;
-  aItem->GetItemType(&itemType);
-  NS_ASSERTION(itemType == nsIDocShellTreeItem::typeContent,
-               "How did something else get in here?");
-#endif
 
   aItem->SetTreeOwner(aOwner);
   nsCOMPtr<nsIDocShell> shell(do_QueryInterface(aItem));
   shell->SetChromeEventHandler(aHandler);
 
   PRInt32 childCount = 0;
   aItem->GetChildCount(&childCount);
   for (PRInt32 i = 0; i < childCount; ++i) {
@@ -423,16 +418,36 @@ AddTreeItemToTreeOwner(nsIDocShellTreeIt
         value.LowerCaseEqualsLiteral("content-targetable");
       aOwner->ContentShellAdded(aItem, is_primary, is_targetable, value);
     }
   }
 
   return retval;
 }
 
+static PRBool
+AllDescendantsOfType(nsIDocShellTreeItem* aParentItem, PRInt32 aType)
+{
+  PRInt32 childCount = 0;
+  aParentItem->GetChildCount(&childCount);
+
+  for (PRInt32 i = 0; i < childCount; ++i) {
+    nsCOMPtr<nsIDocShellTreeItem> kid;
+    aParentItem->GetChildAt(i, getter_AddRefs(kid));
+
+    PRInt32 kidType;
+    kid->GetItemType(&kidType);
+    if (kidType != aType || !AllDescendantsOfType(kid, aType)) {
+      return PR_FALSE;
+    }
+  }
+
+  return PR_TRUE;
+}
+
 nsresult
 nsFrameLoader::SwapWithOtherLoader(nsFrameLoader* aOther,
                                    nsRefPtr<nsFrameLoader>& aFirstToSwap,
                                    nsRefPtr<nsFrameLoader>& aSecondToSwap)
 {
   NS_PRECONDITION((aFirstToSwap == this && aSecondToSwap == aOther) ||
                   (aFirstToSwap == aOther && aSecondToSwap == this),
                   "Swapping some sort of random loaders?");
@@ -457,37 +472,61 @@ nsFrameLoader::SwapWithOtherLoader(nsFra
   nsCOMPtr<nsIDocShell> ourDochell = GetExistingDocShell();
   nsCOMPtr<nsIDocShell> otherDocshell = aOther->GetExistingDocShell();
   if (!ourDochell || !otherDocshell) {
     // How odd
     return NS_ERROR_NOT_IMPLEMENTED;
   }
 
   // To avoid having to mess with session history, avoid swapping
-  // frameloaders that don't correspond to root same-type docshells.
+  // frameloaders that don't correspond to root same-type docshells,
+  // unless both roots have session history disabled.
   nsCOMPtr<nsIDocShellTreeItem> ourTreeItem = do_QueryInterface(ourDochell);
   nsCOMPtr<nsIDocShellTreeItem> otherTreeItem =
     do_QueryInterface(otherDocshell);
   nsCOMPtr<nsIDocShellTreeItem> ourRootTreeItem, otherRootTreeItem;
   ourTreeItem->GetSameTypeRootTreeItem(getter_AddRefs(ourRootTreeItem));
   otherTreeItem->GetSameTypeRootTreeItem(getter_AddRefs(otherRootTreeItem));
   if (ourRootTreeItem != ourTreeItem || otherRootTreeItem != otherTreeItem) {
-    return NS_ERROR_NOT_IMPLEMENTED;
+    nsCOMPtr<nsIWebNavigation> ourRootWebnav =
+      do_QueryInterface(ourRootTreeItem);
+    nsCOMPtr<nsIWebNavigation> otherRootWebnav =
+      do_QueryInterface(otherRootTreeItem);
+
+    if (!ourRootWebnav || !otherRootWebnav) {
+      return NS_ERROR_NOT_IMPLEMENTED;
+    }
+
+    nsCOMPtr<nsISHistory> ourHistory;
+    nsCOMPtr<nsISHistory> otherHistory;
+    ourRootWebnav->GetSessionHistory(getter_AddRefs(ourHistory));
+    otherRootWebnav->GetSessionHistory(getter_AddRefs(otherHistory));
+
+    if (ourHistory || otherHistory) {
+      return NS_ERROR_NOT_IMPLEMENTED;
+    }
   }
 
   // Also make sure that the two docshells are the same type. Otherwise
-  // swapping is certainly not safe.  As far as that goes, make sure we only
-  // swap typeContent docshells, since otherwise it's hard to get treeowners
-  // right.
+  // swapping is certainly not safe.
   PRInt32 ourType = nsIDocShellTreeItem::typeChrome;
   PRInt32 otherType = nsIDocShellTreeItem::typeChrome;
   ourTreeItem->GetItemType(&ourType);
   otherTreeItem->GetItemType(&otherType);
-  if (ourType != nsIDocShellTreeItem::typeContent ||
-      otherType != nsIDocShellTreeItem::typeContent) {
+  if (ourType != otherType) {
+    return NS_ERROR_NOT_IMPLEMENTED;
+  }
+
+  // One more twist here.  Setting up the right treeowners in a heterogenous
+  // tree is a bit of a pain.  So make sure that if ourType is not
+  // nsIDocShellTreeItem::typeContent then all of our descendants are the same
+  // type as us.
+  if (ourType != nsIDocShellTreeItem::typeContent &&
+      (!AllDescendantsOfType(ourTreeItem, ourType) ||
+       !AllDescendantsOfType(otherTreeItem, otherType))) {
     return NS_ERROR_NOT_IMPLEMENTED;
   }
   
   // Save off the tree owners, frame elements, chrome event handlers, and
   // docshell and document parents before doing anything else.
   nsCOMPtr<nsIDocShellTreeOwner> ourOwner, otherOwner;
   ourTreeItem->GetTreeOwner(getter_AddRefs(ourOwner));
   otherTreeItem->GetTreeOwner(getter_AddRefs(otherOwner));
@@ -495,16 +534,25 @@ nsFrameLoader::SwapWithOtherLoader(nsFra
 
   nsCOMPtr<nsIDocShellTreeItem> ourParentItem, otherParentItem;
   ourTreeItem->GetParent(getter_AddRefs(ourParentItem));
   otherTreeItem->GetParent(getter_AddRefs(otherParentItem));
   if (!ourParentItem || !otherParentItem) {
     return NS_ERROR_NOT_IMPLEMENTED;
   }
 
+  // Make sure our parents are the same type too
+  PRInt32 ourParentType = nsIDocShellTreeItem::typeContent;
+  PRInt32 otherParentType = nsIDocShellTreeItem::typeContent;
+  ourParentItem->GetItemType(&ourParentType);
+  otherParentItem->GetItemType(&otherParentType);
+  if (ourParentType != otherParentType) {
+    return NS_ERROR_NOT_IMPLEMENTED;
+  }
+
   nsCOMPtr<nsPIDOMWindow> ourWindow = do_GetInterface(ourDochell);
   nsCOMPtr<nsPIDOMWindow> otherWindow = do_GetInterface(otherDocshell);
 
   nsCOMPtr<nsIDOMElement> ourFrameElement =
     ourWindow->GetFrameElementInternal();
   nsCOMPtr<nsIDOMElement> otherFrameElement =
     otherWindow->GetFrameElementInternal();
 
@@ -607,19 +655,19 @@ nsFrameLoader::SwapWithOtherLoader(nsFra
 
   // Restore the correct treeowners
   SetTreeOwnerAndChromeEventHandlerOnDocshellTree(ourTreeItem, otherOwner,
                                                   otherChromeEventHandler);
   SetTreeOwnerAndChromeEventHandlerOnDocshellTree(otherTreeItem, ourOwner,
                                                   ourChromeEventHandler);
 
   AddTreeItemToTreeOwner(ourTreeItem, otherContent, otherOwner,
-                         nsIDocShellTreeItem::typeChrome, nsnull);
-  AddTreeItemToTreeOwner(otherTreeItem, ourContent, ourOwner,
-                         nsIDocShellTreeItem::typeChrome, nsnull);
+                         otherParentType, nsnull);
+  AddTreeItemToTreeOwner(otherTreeItem, ourContent, ourOwner, ourParentType,
+                         nsnull);
 
   // SetSubDocumentFor nulls out parent documents on the old child doc if a
   // new non-null document is passed in, so just go ahead and remove both
   // kids before reinserting in the parent subdoc maps, to avoid
   // complications.
   ourParentDocument->SetSubDocumentFor(ourContent, nsnull);
   otherParentDocument->SetSubDocumentFor(otherContent, nsnull);
   ourParentDocument->SetSubDocumentFor(ourContent, otherChildDocument);
--- a/content/base/src/nsNodeInfoManager.cpp
+++ b/content/base/src/nsNodeInfoManager.cpp
@@ -257,55 +257,32 @@ nsNodeInfoManager::GetNodeInfo(const nsA
 {
   nsCOMPtr<nsIAtom> name = do_GetAtom(aName);
   *aNodeInfo = nsNodeInfoManager::GetNodeInfo(name, aPrefix, aNamespaceID).get();
   return *aNodeInfo ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
 }
 
 
 nsresult
-nsNodeInfoManager::GetNodeInfo(const nsAString& aQualifiedName,
+nsNodeInfoManager::GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
                                const nsAString& aNamespaceURI,
                                nsINodeInfo** aNodeInfo)
 {
-  NS_ENSURE_ARG(!aQualifiedName.IsEmpty());
-
-  nsAString::const_iterator start, end;
-  aQualifiedName.BeginReading(start);
-  aQualifiedName.EndReading(end);
-
-  nsCOMPtr<nsIAtom> prefixAtom;
-
-  nsAString::const_iterator iter(start);
-
-  if (FindCharInReadable(':', iter, end)) {
-    prefixAtom = do_GetAtom(Substring(start, iter));
-    NS_ENSURE_TRUE(prefixAtom, NS_ERROR_OUT_OF_MEMORY);
-
-    start = ++iter; // step over the ':'
-
-    if (iter == end) {
-      // No data after the ':'.
-
-      return NS_ERROR_INVALID_ARG;
-    }
-  }
-
-  nsCOMPtr<nsIAtom> nameAtom = do_GetAtom(Substring(start, end));
+  nsCOMPtr<nsIAtom> nameAtom = do_GetAtom(aName);
   NS_ENSURE_TRUE(nameAtom, NS_ERROR_OUT_OF_MEMORY);
 
   PRInt32 nsid = kNameSpaceID_None;
 
   if (!aNamespaceURI.IsEmpty()) {
     nsresult rv = nsContentUtils::NameSpaceManager()->
       RegisterNameSpace(aNamespaceURI, nsid);
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
-  *aNodeInfo = GetNodeInfo(nameAtom, prefixAtom, nsid).get();
+  *aNodeInfo = GetNodeInfo(nameAtom, aPrefix, nsid).get();
   return *aNodeInfo ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
 }
 
 already_AddRefed<nsINodeInfo>
 nsNodeInfoManager::GetTextNodeInfo()
 {
   if (!mTextNodeInfo) {
     mTextNodeInfo = GetNodeInfo(nsGkAtoms::textTagName, nsnull, kNameSpaceID_None).get();
--- a/content/base/src/nsNodeInfoManager.h
+++ b/content/base/src/nsNodeInfoManager.h
@@ -84,17 +84,17 @@ public:
 
   /**
    * Methods for creating nodeinfo's from atoms and/or strings.
    */
   already_AddRefed<nsINodeInfo> GetNodeInfo(nsIAtom *aName, nsIAtom *aPrefix,
                                             PRInt32 aNamespaceID);
   nsresult GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
                        PRInt32 aNamespaceID, nsINodeInfo** aNodeInfo);
-  nsresult GetNodeInfo(const nsAString& aQualifiedName,
+  nsresult GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
                        const nsAString& aNamespaceURI,
                        nsINodeInfo** aNodeInfo);
 
   /**
    * Returns the nodeinfo for text nodes. Can return null if OOM.
    */
   already_AddRefed<nsINodeInfo> GetTextNodeInfo();
 
--- a/content/base/src/nsObjectLoadingContent.cpp
+++ b/content/base/src/nsObjectLoadingContent.cpp
@@ -793,17 +793,21 @@ nsObjectLoadingContent::HasNewFrame(nsIO
     // This can go away once plugin loading moves to content
     // This must be done asynchronously to ensure that the frame is correctly
     // initialized (has a view etc)
 
     // When in a plugin document, the document will take care of calling
     // instantiate
     nsCOMPtr<nsIPluginDocument> pDoc (do_QueryInterface(GetOurDocument()));
     if (pDoc) {
-      return NS_OK;
+      PRBool willHandleInstantiation;
+      pDoc->GetWillHandleInstantiation(&willHandleInstantiation);
+      if (willHandleInstantiation) {
+        return NS_OK;
+      }
     }
 
     nsCOMPtr<nsIRunnable> event =
         new nsAsyncInstantiateEvent(this, aFrame, mContentType, mURI);
     if (!event) {
       return NS_ERROR_OUT_OF_MEMORY;
     }
 
--- a/content/base/src/nsTextNode.cpp
+++ b/content/base/src/nsTextNode.cpp
@@ -107,16 +107,17 @@ public:
 
   virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
                               nsIContent* aBindingParent,
                               PRBool aCompileEventHandlers);
   virtual void UnbindFromTree(PRBool aDeep = PR_TRUE,
                               PRBool aNullParent = PR_TRUE);
 
   NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTECHANGED
+  NS_DECL_NSIMUTATIONOBSERVER_NODEWILLBEDESTROYED
 
   virtual nsGenericDOMDataNode *CloneDataNode(nsINodeInfo *aNodeInfo,
                                               PRBool aCloneText) const
   {
     nsAttributeTextNode *it = new nsAttributeTextNode(aNodeInfo,
                                                       mNameSpaceID,
                                                       mAttrName);
     if (it && aCloneText) {
@@ -354,16 +355,23 @@ nsAttributeTextNode::AttributeChanged(ns
     // of doing it fully async.
     nsCOMPtr<nsIRunnable> ev = new nsRunnableMethod<nsAttributeTextNode>(
             this, &nsAttributeTextNode::UpdateText);
     NS_DispatchToCurrentThread(ev);
   }
 }
 
 void
+nsAttributeTextNode::NodeWillBeDestroyed(const nsINode* aNode)
+{
+  NS_ASSERTION(aNode == static_cast<nsINode*>(mGrandparent), "Wrong node!");
+  mGrandparent = nsnull;
+}
+
+void
 nsAttributeTextNode::UpdateText(PRBool aNotify)
 {
   if (mGrandparent) {
     nsAutoString attrValue;
     mGrandparent->GetAttr(mNameSpaceID, mAttrName, attrValue);
     SetText(attrValue, aNotify);
   }  
 }
--- a/content/base/src/nsXMLHttpRequest.cpp
+++ b/content/base/src/nsXMLHttpRequest.cpp
@@ -2573,20 +2573,16 @@ nsXMLHttpRequest::Send(nsIVariant *aBody
   }
 
   // Reset responseBody
   mResponseBody.Truncate();
 
   // Reset responseXML
   mDocument = nsnull;
 
-  if (!(mState & XML_HTTP_REQUEST_ASYNC)) {
-    mState |= XML_HTTP_REQUEST_SYNCLOOPING;
-  }
-
   rv = CheckChannelForCrossSiteRequest(mChannel);
   NS_ENSURE_SUCCESS(rv, rv);
 
   PRBool withCredentials = !!(mState & XML_HTTP_REQUEST_AC_WITH_CREDENTIALS);
 
   if (mState & XML_HTTP_REQUEST_USE_XSITE_AC) {
     // Check if we need to do a preflight request.
     NS_ENSURE_TRUE(httpChannel, NS_ERROR_DOM_BAD_URI);
@@ -2681,17 +2677,17 @@ nsXMLHttpRequest::Send(nsIVariant *aBody
   //    responses, so they are not worth caching.
   if ((mState & XML_HTTP_REQUEST_MULTIPART) || method.EqualsLiteral("POST")) {
     AddLoadFlags(mChannel,
         nsIRequest::LOAD_BYPASS_CACHE | nsIRequest::INHIBIT_CACHING);
   }
   // When we are sync loading, we need to bypass the local cache when it would
   // otherwise block us waiting for exclusive access to the cache.  If we don't
   // do this, then we could dead lock in some cases (see bug 309424).
-  else if (mState & XML_HTTP_REQUEST_SYNCLOOPING) {
+  else if (!(mState & XML_HTTP_REQUEST_ASYNC)) {
     AddLoadFlags(mChannel,
         nsICachingChannel::LOAD_BYPASS_LOCAL_CACHE_IF_BUSY);
     if (mACGetChannel) {
       AddLoadFlags(mACGetChannel,
           nsICachingChannel::LOAD_BYPASS_LOCAL_CACHE_IF_BUSY);
     }
   }
 
@@ -2732,16 +2728,17 @@ nsXMLHttpRequest::Send(nsIVariant *aBody
   // Now that we've successfully opened the channel, we can change state.  Note
   // that this needs to come after the AsyncOpen() and rv check, because this
   // can run script that would try to restart this request, and that could end
   // up doing our AsyncOpen on a null channel if the reentered AsyncOpen fails.
   ChangeState(XML_HTTP_REQUEST_SENT);
 
   // If we're synchronous, spin an event loop here and wait
   if (!(mState & XML_HTTP_REQUEST_ASYNC)) {
+    mState |= XML_HTTP_REQUEST_SYNCLOOPING;
     nsIThread *thread = NS_GetCurrentThread();
     while (mState & XML_HTTP_REQUEST_SYNCLOOPING) {
       if (!NS_ProcessNextEvent(thread)) {
         rv = NS_ERROR_UNEXPECTED;
         break;
       }
     }
   } else {
--- a/content/events/public/nsEventDispatcher.h
+++ b/content/events/public/nsEventDispatcher.h
@@ -127,23 +127,25 @@ public:
 class nsEventChainPreVisitor : public nsEventChainVisitor {
 public:
   nsEventChainPreVisitor(nsPresContext* aPresContext,
                          nsEvent* aEvent,
                          nsIDOMEvent* aDOMEvent,
                          nsEventStatus aEventStatus = nsEventStatus_eIgnore)
   : nsEventChainVisitor(aPresContext, aEvent, aDOMEvent, aEventStatus),
     mCanHandle(PR_TRUE), mForceContentDispatch(PR_FALSE),
-    mRelatedTargetIsInAnon(PR_FALSE) {}
+    mRelatedTargetIsInAnon(PR_FALSE), mWantsWillHandleEvent(PR_FALSE),
+    mParentTarget(nsnull), mEventTargetAtParent(nsnull) {}
 
   void Reset() {
     mItemFlags = 0;
     mItemData = nsnull;
     mCanHandle = PR_TRUE;
     mForceContentDispatch = PR_FALSE;
+    mWantsWillHandleEvent = PR_FALSE;
     mParentTarget = nsnull;
     mEventTargetAtParent = nsnull;
   }
 
   /**
    * Member that must be set in PreHandleEvent by event targets. If set to false,
    * indicates that this event target will not be handling the event and
    * construction of the event target chain is complete. The target that sets
@@ -158,27 +160,34 @@ public:
    */
   PRPackedBool          mForceContentDispatch;
 
   /**
    * PR_TRUE if it is known that related target is or is a descendant of an
    * element which is anonymous for events.
    */
   PRPackedBool          mRelatedTargetIsInAnon;
+  
+
+  /**
+   * Whether or not nsPIDOMEventTarget::WillHandleEvent will be
+   * called. Default is PR_FALSE;
+   */
+  PRPackedBool          mWantsWillHandleEvent;
 
   /**
    * Parent item in the event target chain.
    */
-  nsCOMPtr<nsISupports> mParentTarget;
+  nsPIDOMEventTarget*   mParentTarget;
 
   /**
    * If the event needs to be retargeted, this is the event target,
    * which should be used when the event is handled at mParentTarget.
    */
-  nsCOMPtr<nsISupports> mEventTargetAtParent;
+  nsPIDOMEventTarget*   mEventTargetAtParent;
 };
 
 class nsEventChainPostVisitor : public nsEventChainVisitor {
 public:
   nsEventChainPostVisitor(nsEventChainVisitor& aOther)
   : nsEventChainVisitor(aOther.mPresContext, aOther.mEvent, aOther.mDOMEvent,
                         aOther.mEventStatus)
   {}
--- a/content/events/public/nsIEventListenerManager.h
+++ b/content/events/public/nsIEventListenerManager.h
@@ -42,23 +42,24 @@
 #include "nsISupports.h"
 
 class nsPresContext;
 class nsIDOMEventListener;
 class nsIScriptContext;
 class nsIDOMEventTarget;
 class nsIDOMEventGroup;
 class nsIAtom;
+class nsPIDOMEventTarget;
 
 /*
  * Event listener manager interface.
  */
 #define NS_IEVENTLISTENERMANAGER_IID \
-{ 0x0056ac6b, 0xc25b, 0x4fbb, \
-  { 0x92, 0x98, 0x8d, 0xce, 0x53, 0x6e } }
+{ 0x0cdf1660, 0x3ac1, 0x4b84, \
+  { 0xa9, 0x35, 0xc0, 0xc0, 0xe5, 0x5d, 0x73, 0xca } }
 
 
 class nsIEventListenerManager : public nsISupports {
 
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IEVENTLISTENERMANAGER_IID)
 
   /**
@@ -133,17 +134,17 @@ public:
   /**
   * Causes a check for event listeners and processing by them if they exist.
   * Event flags live in nsGUIEvent.h
   * @param an event listener
   */
   NS_IMETHOD HandleEvent(nsPresContext* aPresContext,
                          nsEvent* aEvent,
                          nsIDOMEvent** aDOMEvent,
-                         nsISupports* aCurrentTarget,
+                         nsPIDOMEventTarget* aCurrentTarget,
                          PRUint32 aFlags,
                          nsEventStatus* aEventStatus) = 0;
 
   /**
   * Tells the event listener manager that its target (which owns it) is
   * no longer using it (and could go away).
   *
   * It also clears the weak pointer set by the call to
--- a/content/events/public/nsPIDOMEventTarget.h
+++ b/content/events/public/nsPIDOMEventTarget.h
@@ -89,17 +89,18 @@ public:
    * @param aVisitor the visitor object which is used to create the
    *                 event target chain for event dispatching.
    *
    * @note Only nsEventDispatcher should call this method.
    */
   virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor) = 0;
 
   /**
-   * Called just before possible event handlers on this object will be called.
+   * If nsEventChainPreVisitor.mWantsWillHandleEvent is set PR_TRUE,
+   * called just before possible event handlers on this object will be called.
    */
   virtual nsresult WillHandleEvent(nsEventChainPostVisitor& aVisitor)
   {
     return NS_OK;
   }
 
   /**
    * Called after the bubble phase of the system event group.
--- a/content/events/src/nsEventDispatcher.cpp
+++ b/content/events/src/nsEventDispatcher.cpp
@@ -35,37 +35,38 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsEventDispatcher.h"
 #include "nsDOMEvent.h"
 #include "nsPIDOMEventTarget.h"
 #include "nsPresContext.h"
 #include "nsIPrivateDOMEvent.h"
-#include "nsIEventListenerManager.h"
+#include "nsEventListenerManager.h"
 #include "nsContentUtils.h"
 #include "nsDOMError.h"
 #include "nsMutationEvent.h"
 #include NEW_H
 #include "nsFixedSizeAllocator.h"
 
-#define NS_TARGET_CHAIN_FORCE_CONTENT_DISPATCH (1 << 0)
+#define NS_TARGET_CHAIN_FORCE_CONTENT_DISPATCH  (1 << 0)
+#define NS_TARGET_CHAIN_WANTS_WILL_HANDLE_EVENT (1 << 1)
 
 // nsEventTargetChainItem represents a single item in the event target chain.
 class nsEventTargetChainItem
 {
 private:
-  nsEventTargetChainItem(nsISupports* aTarget,
+  nsEventTargetChainItem(nsPIDOMEventTarget* aTarget,
                          nsEventTargetChainItem* aChild = nsnull);
 
   void Destroy(nsFixedSizeAllocator* aAllocator);
 
 public:
   static nsEventTargetChainItem* Create(nsFixedSizeAllocator* aAllocator, 
-                                        nsISupports* aTarget,
+                                        nsPIDOMEventTarget* aTarget,
                                         nsEventTargetChainItem* aChild = nsnull)
   {
     void* place = aAllocator->Alloc(sizeof(nsEventTargetChainItem));
     return place
       ? ::new (place) nsEventTargetChainItem(aTarget, aChild)
       : nsnull;
   }
 
@@ -83,87 +84,103 @@ public:
     return !!(mTarget);
   }
 
   nsISupports* GetNewTarget()
   {
     return mNewTarget;
   }
 
-  void SetNewTarget(nsISupports* aNewTarget)
+  void SetNewTarget(nsPIDOMEventTarget* aNewTarget)
   {
     mNewTarget = aNewTarget;
   }
 
-  void SetForceContentDispatch(PRBool aForce) {
+  void SetForceContentDispatch(PRBool aForce)
+  {
     if (aForce) {
       mFlags |= NS_TARGET_CHAIN_FORCE_CONTENT_DISPATCH;
     } else {
       mFlags &= ~NS_TARGET_CHAIN_FORCE_CONTENT_DISPATCH;
     }
   }
 
-  PRBool ForceContentDispatch() {
+  PRBool ForceContentDispatch()
+  {
     return !!(mFlags & NS_TARGET_CHAIN_FORCE_CONTENT_DISPATCH);
   }
 
+
+  void SetWantsWillHandleEvent(PRBool aWants)
+  {
+    if (aWants) {
+      mFlags |= NS_TARGET_CHAIN_WANTS_WILL_HANDLE_EVENT;
+    } else {
+      mFlags &= ~NS_TARGET_CHAIN_WANTS_WILL_HANDLE_EVENT;
+    }
+  }
+
+  PRBool WantsWillHandleEvent()
+  {
+    return !!(mFlags & NS_TARGET_CHAIN_WANTS_WILL_HANDLE_EVENT);
+  }
+
   nsPIDOMEventTarget* CurrentTarget()
   {
     return mTarget;
   }
 
   /**
    * Dispatches event through the event target chain.
    * Handles capture, target and bubble phases both in default
    * and system event group and calls also PostHandleEvent for each
    * item in the chain.
    */
   nsresult HandleEventTargetChain(nsEventChainPostVisitor& aVisitor,
                                   PRUint32 aFlags,
-                                  nsDispatchingCallback* aCallback);
+                                  nsDispatchingCallback* aCallback,
+                                  PRBool aMayHaveNewListenerManagers);
 
   /**
    * Resets aVisitor object and calls PreHandleEvent.
    * Copies mItemFlags and mItemData to the current nsEventTargetChainItem.
    */
   nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor);
 
   /**
    * If the current item in the event target chain has an event listener
    * manager, this method sets the .currentTarget to the CurrentTarget()
    * and calls nsIEventListenerManager::HandleEvent().
    */
-  nsresult HandleEvent(nsEventChainPostVisitor& aVisitor, PRUint32 aFlags);
+  nsresult HandleEvent(nsEventChainPostVisitor& aVisitor, PRUint32 aFlags,
+                       PRBool aMayHaveNewListenerManagers);
 
   /**
    * Copies mItemFlags and mItemData to aVisitor and calls PostHandleEvent.
    */
   nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor);
 
 
   nsCOMPtr<nsPIDOMEventTarget>      mTarget;
   nsEventTargetChainItem*           mChild;
   nsEventTargetChainItem*           mParent;
   PRUint16                          mFlags;
   PRUint16                          mItemFlags;
   nsCOMPtr<nsISupports>             mItemData;
   // Event retargeting must happen whenever mNewTarget is non-null.
-  nsCOMPtr<nsISupports>             mNewTarget;
+  nsCOMPtr<nsPIDOMEventTarget>      mNewTarget;
   // Cache mTarget's event listener manager.
   nsCOMPtr<nsIEventListenerManager> mManager;
 };
 
-nsEventTargetChainItem::nsEventTargetChainItem(nsISupports* aTarget,
+nsEventTargetChainItem::nsEventTargetChainItem(nsPIDOMEventTarget* aTarget,
                                                nsEventTargetChainItem* aChild)
 : mChild(aChild), mParent(nsnull), mFlags(0), mItemFlags(0)
 {
-  nsCOMPtr<nsPIDOMEventTarget> t = do_QueryInterface(aTarget);
-  if (t) {
-    mTarget = t->GetTargetForEventTargetChain();
-  }
+  mTarget = aTarget->GetTargetForEventTargetChain();
   if (mChild) {
     mChild->mParent = this;
   }
 }
 
 void
 nsEventTargetChainItem::Destroy(nsFixedSizeAllocator* aAllocator)
 {
@@ -181,38 +198,46 @@ nsEventTargetChainItem::Destroy(nsFixedS
 }
 
 nsresult
 nsEventTargetChainItem::PreHandleEvent(nsEventChainPreVisitor& aVisitor)
 {
   aVisitor.Reset();
   nsresult rv = mTarget->PreHandleEvent(aVisitor);
   SetForceContentDispatch(aVisitor.mForceContentDispatch);
+  SetWantsWillHandleEvent(aVisitor.mWantsWillHandleEvent);
   mItemFlags = aVisitor.mItemFlags;
   mItemData = aVisitor.mItemData;
   return rv;
 }
 
 nsresult
 nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor& aVisitor,
-                                    PRUint32 aFlags)
+                                    PRUint32 aFlags,
+                                    PRBool aMayHaveNewListenerManagers)
 {
-  mTarget->WillHandleEvent(aVisitor);
+  if (WantsWillHandleEvent()) {
+    mTarget->WillHandleEvent(aVisitor);
+  }
   if (aVisitor.mEvent->flags & NS_EVENT_FLAG_STOP_DISPATCH) {
     return NS_OK;
   }
   if (!mManager) {
+    if (!aMayHaveNewListenerManagers) {
+      return NS_OK;
+    }
     mTarget->GetListenerManager(PR_FALSE, getter_AddRefs(mManager));
   }
   if (mManager) {
-    aVisitor.mEvent->currentTarget = CurrentTarget()->GetTargetForDOMEvent();
+    nsPIDOMEventTarget* currentTarget = CurrentTarget()->GetTargetForDOMEvent();
+    aVisitor.mEvent->currentTarget = currentTarget;
     if (aVisitor.mEvent->currentTarget) {
       mManager->HandleEvent(aVisitor.mPresContext, aVisitor.mEvent,
                             &aVisitor.mDOMEvent,
-                            aVisitor.mEvent->currentTarget, aFlags,
+                            currentTarget, aFlags,
                             &aVisitor.mEventStatus);
       aVisitor.mEvent->currentTarget = nsnull;
     }
   }
   return NS_OK;
 }
 
 nsresult
@@ -221,30 +246,34 @@ nsEventTargetChainItem::PostHandleEvent(
   aVisitor.mItemFlags = mItemFlags;
   aVisitor.mItemData = mItemData;
   mTarget->PostHandleEvent(aVisitor);
   return NS_OK;
 }
 
 nsresult
 nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor& aVisitor, PRUint32 aFlags,
-                                               nsDispatchingCallback* aCallback)
+                                               nsDispatchingCallback* aCallback,
+                                               PRBool aMayHaveNewListenerManagers)
 {
+  PRUint32 createdELMs = nsEventListenerManager::sCreatedCount;
   // Save the target so that it can be restored later.
   nsCOMPtr<nsISupports> firstTarget = aVisitor.mEvent->target;
 
   // Capture
   nsEventTargetChainItem* item = this;
   aVisitor.mEvent->flags |= NS_EVENT_FLAG_CAPTURE;
   aVisitor.mEvent->flags &= ~NS_EVENT_FLAG_BUBBLE;
   while (item->mChild) {
     if ((!(aVisitor.mEvent->flags & NS_EVENT_FLAG_NO_CONTENT_DISPATCH) ||
          item->ForceContentDispatch()) &&
         !(aVisitor.mEvent->flags & NS_EVENT_FLAG_STOP_DISPATCH)) {
-      item->HandleEvent(aVisitor, aFlags & NS_EVENT_CAPTURE_MASK);
+      item->HandleEvent(aVisitor, aFlags & NS_EVENT_CAPTURE_MASK,
+                        aMayHaveNewListenerManagers ||
+                        createdELMs != nsEventListenerManager::sCreatedCount);
     }
 
     if (item->GetNewTarget()) {
       // item is at anonymous boundary. Need to retarget for the child items.
       nsEventTargetChainItem* nextTarget = item->mChild;
       while (nextTarget) {
         nsISupports* newTarget = nextTarget->GetNewTarget();
         if (newTarget) {
@@ -261,17 +290,19 @@ nsEventTargetChainItem::HandleEventTarge
   // Target
   aVisitor.mEvent->flags |= NS_EVENT_FLAG_BUBBLE;
   if (!(aVisitor.mEvent->flags & NS_EVENT_FLAG_STOP_DISPATCH) &&
       (!(aVisitor.mEvent->flags & NS_EVENT_FLAG_NO_CONTENT_DISPATCH) ||
        item->ForceContentDispatch())) {
     // FIXME Should use aFlags & NS_EVENT_BUBBLE_MASK because capture phase
     //       event listeners should not be fired. But it breaks at least
     //       <xul:dialog>'s buttons. Bug 235441.
-    item->HandleEvent(aVisitor, aFlags);
+    item->HandleEvent(aVisitor, aFlags,
+                      aMayHaveNewListenerManagers ||
+                      createdELMs != nsEventListenerManager::sCreatedCount);
   }
   if (aFlags & NS_EVENT_FLAG_SYSTEM_EVENT) {
     item->PostHandleEvent(aVisitor);
   }
 
   // Bubble
   aVisitor.mEvent->flags &= ~NS_EVENT_FLAG_CAPTURE;
   item = item->mParent;
@@ -284,17 +315,18 @@ nsEventTargetChainItem::HandleEventTarge
     }
 
     if (!(aVisitor.mEvent->flags & NS_EVENT_FLAG_CANT_BUBBLE) || newTarget) {
       if ((!(aVisitor.mEvent->flags & NS_EVENT_FLAG_NO_CONTENT_DISPATCH) ||
            item->ForceContentDispatch()) &&
           (!(aFlags & NS_EVENT_FLAG_SYSTEM_EVENT) ||
            aVisitor.mEventStatus != nsEventStatus_eConsumeNoDefault) &&
           !(aVisitor.mEvent->flags & NS_EVENT_FLAG_STOP_DISPATCH)) {
-        item->HandleEvent(aVisitor, aFlags & NS_EVENT_BUBBLE_MASK);
+        item->HandleEvent(aVisitor, aFlags & NS_EVENT_BUBBLE_MASK,
+                          createdELMs != nsEventListenerManager::sCreatedCount);
       }
       if (aFlags & NS_EVENT_FLAG_SYSTEM_EVENT) {
         item->PostHandleEvent(aVisitor);
       }
     }
     item = item->mParent;
   }
   aVisitor.mEvent->flags &= ~NS_EVENT_FLAG_BUBBLE;
@@ -313,17 +345,18 @@ nsEventTargetChainItem::HandleEventTarge
     if (aCallback) {
       aCallback->HandleEvent(aVisitor);
     }
 
     // Retarget for system event group (which does the default handling too).
     // Setting back the target which was used also for default event group.
     aVisitor.mEvent->target = firstTarget;
     HandleEventTargetChain(aVisitor, aFlags | NS_EVENT_FLAG_SYSTEM_EVENT,
-                           aCallback);
+                           aCallback,
+                           createdELMs != nsEventListenerManager::sCreatedCount);
   }
 
   return NS_OK;
 }
 
 class ChainItemPool {
 public:
   ChainItemPool() {
@@ -373,16 +406,17 @@ nsEventDispatcher::Dispatch(nsISupports*
                             nsIDOMEvent* aDOMEvent,
                             nsEventStatus* aEventStatus,
                             nsDispatchingCallback* aCallback)
 {
   NS_ASSERTION(aEvent, "Trying to dispatch without nsEvent!");
   NS_ENSURE_TRUE(!NS_IS_EVENT_IN_DISPATCH(aEvent),
                  NS_ERROR_ILLEGAL_VALUE);
 
+  nsCOMPtr<nsPIDOMEventTarget> target = do_QueryInterface(aTarget);
 #ifdef DEBUG
   if (aDOMEvent) {
     nsCOMPtr<nsIPrivateDOMEvent> privEvt(do_QueryInterface(aDOMEvent));
     if (privEvt) {
       nsEvent* innerEvent = nsnull;
       privEvt->GetInternalNSEvent(&innerEvent);
       NS_ASSERTION(innerEvent == aEvent,
                     "The inner event of aDOMEvent is not the same as aEvent!");
@@ -396,17 +430,17 @@ nsEventDispatcher::Dispatch(nsISupports*
   // If we have a PresContext, make sure it doesn't die before
   // event dispatching is finished.
   nsCOMPtr<nsPresContext> kungFuDeathGrip(aPresContext);
   ChainItemPool pool;
   NS_ENSURE_TRUE(pool.GetPool(), NS_ERROR_OUT_OF_MEMORY);
 
   // Create the event target chain item for the event target.
   nsEventTargetChainItem* targetEtci =
-    nsEventTargetChainItem::Create(pool.GetPool(), aTarget);
+    nsEventTargetChainItem::Create(pool.GetPool(), target);
   NS_ENSURE_TRUE(targetEtci, NS_ERROR_OUT_OF_MEMORY);
   if (!targetEtci->IsValid()) {
     nsEventTargetChainItem::Destroy(pool.GetPool(), targetEtci);
     return NS_ERROR_FAILURE;
   }
 
   // Make sure that nsIDOMEvent::target and nsIDOMNSEvent::originalTarget
   // point to the last item in the chain.
@@ -433,17 +467,18 @@ nsEventDispatcher::Dispatch(nsISupports*
   // PreHandleEvent for the original target.
   nsEventStatus status = aEventStatus ? *aEventStatus : nsEventStatus_eIgnore;
   nsEventChainPreVisitor preVisitor(aPresContext, aEvent, aDOMEvent, status);
   targetEtci->PreHandleEvent(preVisitor);
 
   if (preVisitor.mCanHandle) {
     // At least the original target can handle the event.
     // Setting the retarget to the |target| simplifies retargeting code.
-    targetEtci->SetNewTarget(aEvent->target);
+    nsCOMPtr<nsPIDOMEventTarget> t = do_QueryInterface(aEvent->target);
+    targetEtci->SetNewTarget(t);
     nsEventTargetChainItem* topEtci = targetEtci;
     while (preVisitor.mParentTarget) {
       nsEventTargetChainItem* parentEtci =
         nsEventTargetChainItem::Create(pool.GetPool(), preVisitor.mParentTarget,
                                        topEtci);
       if (!parentEtci) {
         rv = NS_ERROR_OUT_OF_MEMORY;
         break;
@@ -471,17 +506,18 @@ nsEventDispatcher::Dispatch(nsISupports*
       }
     }
     if (NS_SUCCEEDED(rv)) {
       // Event target chain is created. Handle the chain.
       nsEventChainPostVisitor postVisitor(preVisitor);
       rv = topEtci->HandleEventTargetChain(postVisitor,
                                            NS_EVENT_FLAG_BUBBLE |
                                            NS_EVENT_FLAG_CAPTURE,
-                                           aCallback);
+                                           aCallback,
+                                           PR_TRUE);
 
       preVisitor.mEventStatus = postVisitor.mEventStatus;
       // If the DOM event was created during event flow.
       if (!preVisitor.mDOMEvent && postVisitor.mDOMEvent) {
         preVisitor.mDOMEvent = postVisitor.mDOMEvent;
       }
     }
   }
--- a/content/events/src/nsEventListenerManager.cpp
+++ b/content/events/src/nsEventListenerManager.cpp
@@ -334,23 +334,25 @@ static const EventTypeData sEventTypes[]
 
 // Strong references to event groups
 nsIDOMEventGroup* gSystemEventGroup = nsnull;
 nsIDOMEventGroup* gDOM2EventGroup = nsnull;
 
 nsDataHashtable<nsISupportsHashKey, PRUint32>* gEventIdTable = nsnull;
 
 PRUint32 nsEventListenerManager::mInstanceCount = 0;
+PRUint32 nsEventListenerManager::sCreatedCount = 0;
 
 nsEventListenerManager::nsEventListenerManager() :
   mTarget(nsnull),
   mMayHaveMutationListeners(PR_FALSE),
   mNoListenerForEvent(NS_EVENT_TYPE_NULL)
 {
   ++mInstanceCount;
+  ++sCreatedCount;
 }
 
 nsEventListenerManager::~nsEventListenerManager() 
 {
   NS_ASSERTION(!mTarget, "didn't call Disconnect");
   RemoveAllListeners();
 
   --mInstanceCount;
@@ -1067,20 +1069,17 @@ nsEventListenerManager::HandleEventSubTy
                                              jslistener->GetEventScope(),
                                              jslistener->GetEventTarget(),
                                              atom, aListenerStruct,
                                              aCurrentTarget);
       }
     }
   }
 
-  // nsCxPusher will push and pop (automatically) the current cx onto the
-  // context stack
-  nsCxPusher pusher;
-  if (NS_SUCCEEDED(result) && pusher.Push(aCurrentTarget)) {
+  if (NS_SUCCEEDED(result)) {
     // nsIDOMEvent::currentTarget is set in nsEventDispatcher.
     result = aListener->HandleEvent(aDOMEvent);
   }
 
   return result;
 }
 
 static PRUint32                 sLatestEventType = 0;
@@ -1090,17 +1089,17 @@ static const EventDispatchData* sLatestE
 /**
 * Causes a check for event listeners and processing by them if they exist.
 * @param an event listener
 */
 
 nsresult
 nsEventListenerManager::HandleEvent(nsPresContext* aPresContext,
                                     nsEvent* aEvent, nsIDOMEvent** aDOMEvent,
-                                    nsISupports* aCurrentTarget,
+                                    nsPIDOMEventTarget* aCurrentTarget,
                                     PRUint32 aFlags,
                                     nsEventStatus* aEventStatus)
 {
   if (mListeners.IsEmpty() || aEvent->flags & NS_EVENT_FLAG_STOP_DISPATCH) {
     return NS_OK;
   }
 
   // Check if we already know that there is no event listener for the event.
@@ -1150,16 +1149,20 @@ nsEventListenerManager::HandleEvent(nsPr
     }
   }
 
 found:
 
   nsAutoTObserverArray<nsListenerStruct, 2>::EndLimitedIterator iter(mListeners);
   nsAutoPopupStatePusher popupStatePusher(nsDOMEvent::GetEventPopupControlState(aEvent));
   PRBool hasListener = PR_FALSE;
+  // nsCxPusher will push and pop (automatically) the current cx onto the
+  // context stack
+  nsCxPusher pusher;
+  PRBool didPush = PR_FALSE;
   while (iter.HasMore()) {
     nsListenerStruct* ls = &iter.GetNext();
     PRBool useTypeInterface =
       EVENT_TYPE_DATA_EQUALS(ls->mTypeData, typeData);
     PRBool useGenericInterface =
       (!useTypeInterface && ListenerCanHandle(ls, aEvent));
     // Don't fire the listener if it's been removed.
     // Check that the phase is same in event and event listener.
@@ -1173,19 +1176,24 @@ found:
              ls->mFlags & NS_PRIV_EVENT_UNTRUSTED_PERMITTED)) {
           if (!*aDOMEvent) {
             nsEventDispatcher::CreateEvent(aPresContext, aEvent,
                                            EmptyString(), aDOMEvent);
           }
           if (*aDOMEvent) {
             nsRefPtr<nsIDOMEventListener> kungFuDeathGrip = ls->mListener;
             if (useTypeInterface) {
+              if (didPush) {
+                didPush = PR_FALSE;
+                pusher.Pop();
+              }
               DispatchToInterface(*aDOMEvent, ls->mListener,
                                   dispData->method, *typeData->iid);
-            } else if (useGenericInterface) {
+            } else if (useGenericInterface &&
+                       (didPush || (didPush = pusher.Push(aCurrentTarget)))) {
               HandleEventSubType(ls, ls->mListener, *aDOMEvent,
                                  aCurrentTarget, aFlags);
             }
           }
         }
       }
     }
   }
--- a/content/events/src/nsEventListenerManager.h
+++ b/content/events/src/nsEventListenerManager.h
@@ -47,16 +47,17 @@
 #include "nsIScriptContext.h"
 #include "nsCycleCollectionParticipant.h"
 
 class nsIDOMEvent;
 class nsIAtom;
 class nsIWidget;
 struct nsPoint;
 struct EventTypeData;
+class nsEventTargetChainItem;
 
 typedef struct {
   nsRefPtr<nsIDOMEventListener> mListener;
   PRUint32                      mEventType;
   nsCOMPtr<nsIAtom>             mTypeAtom;
   PRUint16                      mFlags;
   PRUint16                      mGroupFlags;
   PRBool                        mHandlerIsString;
@@ -108,17 +109,17 @@ public:
   NS_IMETHOD CompileScriptEventListener(nsIScriptContext *aContext,
                                         void *aScopeObject,
                                         nsISupports *aObject,
                                         nsIAtom* aName, PRBool *aDidCompile);
 
   NS_IMETHOD HandleEvent(nsPresContext* aPresContext, 
                          nsEvent* aEvent, 
                          nsIDOMEvent** aDOMEvent,
-                         nsISupports* aCurrentTarget,
+                         nsPIDOMEventTarget* aCurrentTarget,
                          PRUint32 aFlags,
                          nsEventStatus* aEventStatus);
 
   NS_IMETHOD Disconnect();
 
   NS_IMETHOD SetListenerTarget(nsISupports* aTarget);
 
   NS_IMETHOD HasMutationListeners(PRBool* aListener);
@@ -197,11 +198,14 @@ protected:
   // These two member variables are used to cache the information
   // about the last event which was handled but for which event listener manager
   // didn't have event listeners.
   PRUint32                                  mNoListenerForEvent : 31;
   nsCOMPtr<nsIAtom>                         mNoListenerForEventAtom;
 
   static PRUint32                           mInstanceCount;
   static jsval                              sAddListenerID;
+
+  friend class nsEventTargetChainItem;
+  static PRUint32                           sCreatedCount;
 };
 
 #endif // nsEventListenerManager_h__
--- a/content/events/src/nsEventStateManager.cpp
+++ b/content/events/src/nsEventStateManager.cpp
@@ -5124,17 +5124,18 @@ nsEventStateManager::SendFocusBlur(nsPre
         // The document's blur handler focused something else.
         // Abort firing any additional blur or focus events, and make sure
         // nsFocusController:mFocusedElement is not nulled out, but agrees
         // with our current concept of focus.
         EnsureFocusSynchronization();
         return NS_OK;
       }
 
-      if (pusher.Push(window)) {
+      nsCOMPtr<nsPIDOMEventTarget> target = do_QueryInterface(window);
+      if (pusher.Push(target)) {
         nsEventDispatcher::Dispatch(window, gLastFocusedPresContextWeak, &event,
                                     nsnull, &status);
 
         if (previousFocus && mCurrentFocus != previousFocus) {
           // The window's blur handler focused something else.
           // Abort firing any additional blur or focus events.
           EnsureFocusSynchronization();
           return NS_OK;
--- a/content/html/content/src/nsGenericHTMLElement.cpp
+++ b/content/html/content/src/nsGenericHTMLElement.cpp
@@ -106,16 +106,17 @@
 #include "nsIDOMText.h"
 
 #include "nsIEditor.h"
 #include "nsIEditorIMESupport.h"
 #include "nsEventDispatcher.h"
 #include "nsLayoutUtils.h"
 #include "nsContentCreatorFunctions.h"
 #include "mozAutoDocUpdate.h"
+#include "nsIFocusController.h"
 
 class nsINodeInfo;
 class nsIDOMNodeList;
 class nsRuleWalker;
 
 // XXX todo: add in missing out-of-memory checks
 
 //----------------------------------------------------------------------
@@ -2665,16 +2666,63 @@ nsGenericHTMLFormElement::SetFocusAndScr
       if (presShell) {
         presShell->ScrollContentIntoView(this, NS_PRESSHELL_SCROLL_IF_NOT_VISIBLE,
                                          NS_PRESSHELL_SCROLL_IF_NOT_VISIBLE);
       }
     }
   }
 }
 
+void
+nsGenericHTMLFormElement::DoSetFocus(nsPresContext* aPresContext)
+{
+  if (!aPresContext)
+    return;
+
+  if (FocusState() == eActiveWindow) {
+    SetFocusAndScrollIntoView(aPresContext);
+  }
+}
+
+nsGenericHTMLFormElement::FocusTristate
+nsGenericHTMLFormElement::FocusState()
+{
+  // We can't be focused if we aren't in a document
+  nsIDocument* doc = GetCurrentDoc();
+  if (!doc)
+    return eUnfocusable;
+
+  // first see if we are disabled or not. If disabled then do nothing.
+  if (HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) {
+    return eUnfocusable;
+  }
+
+  // If the window is not active, do not allow the focus to bring the
+  // window to the front.  We update the focus controller, but do
+  // nothing else.
+  nsCOMPtr<nsPIDOMWindow> win = doc->GetWindow();
+  if (win) {
+    nsIFocusController *focusController = win->GetRootFocusController();
+    if (focusController) {
+      PRBool isActive = PR_FALSE;
+      focusController->GetActive(&isActive);
+      if (!isActive) {
+        focusController->SetFocusedWindow(win);
+        nsCOMPtr<nsIDOMElement> el =
+          do_QueryInterface(static_cast<nsGenericHTMLElement*>(this));
+        focusController->SetFocusedElement(el);
+
+        return eInactiveWindow;
+      }
+    }
+  }
+
+  return eActiveWindow;
+}
+
 //----------------------------------------------------------------------
 
 nsGenericHTMLFrameElement::~nsGenericHTMLFrameElement()
 {
   if (mFrameLoader) {
     mFrameLoader->Destroy();
   }
 }
--- a/content/html/content/src/nsGenericHTMLElement.h
+++ b/content/html/content/src/nsGenericHTMLElement.h
@@ -863,16 +863,32 @@ protected:
    * Returns true if the control can be disabled
    */
   PRBool CanBeDisabled() const;
 
   void UpdateEditableFormControlState();
 
   void SetFocusAndScrollIntoView(nsPresContext* aPresContext);
 
+  // A sane SetFocus implementation for focusable form controls
+  void DoSetFocus(nsPresContext* aPresContext);
+
+  // The focusability state of this form control.  eUnfocusable means that it
+  // shouldn't be focused at all, eInactiveWindow means it's in an inactive
+  // window, eActiveWindow means it's in an active window.
+  enum FocusTristate {
+    eUnfocusable,
+    eInactiveWindow,
+    eActiveWindow
+  };
+
+  // Get our focus state.  If this returns eInactiveWindow, it will set this
+  // element as the focused element for that window.
+  FocusTristate FocusState();
+
   /** The form that contains this control */
   nsIForm* mForm;
 };
 
 // If this flag is set on an nsGenericHTMLFormElement, that means that we have
 // added ourselves to our mForm.  It's possible to have a non-null mForm, but
 // not have this flag set.  That happens when the form is set via the content
 // sink.
--- a/content/html/content/src/nsHTMLButtonElement.cpp
+++ b/content/html/content/src/nsHTMLButtonElement.cpp
@@ -256,25 +256,17 @@ nsHTMLButtonElement::IsHTMLFocusable(PRB
   *aIsFocusable = PR_TRUE;
 
   return PR_FALSE;
 }
 
 void
 nsHTMLButtonElement::SetFocus(nsPresContext* aPresContext)
 {
-  if (!aPresContext)
-    return;
-
-  // first see if we are disabled or not. If disabled then do nothing.
-  if (HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) {
-    return;
-  }
-
-  SetFocusAndScrollIntoView(aPresContext);
+  DoSetFocus(aPresContext);
 }
 
 static const nsAttrValue::EnumTable kButtonTypeTable[] = {
   { "button", NS_FORM_BUTTON_BUTTON },
   { "reset", NS_FORM_BUTTON_RESET },
   { "submit", NS_FORM_BUTTON_SUBMIT },
   { 0 }
 };
--- a/content/html/content/src/nsHTMLFormElement.cpp
+++ b/content/html/content/src/nsHTMLFormElement.cpp
@@ -803,16 +803,17 @@ nsHTMLFormElement::UnbindFromTree(PRBool
     oldDocument->RemovedForm();
   }     
   ForgetCurrentSubmission();
 }
 
 nsresult
 nsHTMLFormElement::PreHandleEvent(nsEventChainPreVisitor& aVisitor)
 {
+  aVisitor.mWantsWillHandleEvent = PR_TRUE;
   if (aVisitor.mEvent->originalTarget == static_cast<nsIContent*>(this)) {
     PRUint32 msg = aVisitor.mEvent->message;
     if (msg == NS_FORM_SUBMIT) {
       if (mGeneratingSubmit) {
         aVisitor.mCanHandle = PR_FALSE;
         return NS_OK;
       }
       mGeneratingSubmit = PR_TRUE;
--- a/content/html/content/src/nsHTMLInputElement.cpp
+++ b/content/html/content/src/nsHTMLInputElement.cpp
@@ -41,17 +41,16 @@
 #include "nsITextControlElement.h"
 #include "nsIFileControlElement.h"
 #include "nsIDOMNSEditableElement.h"
 #include "nsIRadioControlElement.h"
 #include "nsIRadioVisitor.h"
 #include "nsIPhonetic.h"
 
 #include "nsIControllers.h"
-#include "nsIFocusController.h"
 #include "nsPIDOMWindow.h"
 #include "nsContentCID.h"
 #include "nsIComponentManager.h"
 #include "nsIDOMHTMLFormElement.h"
 #include "nsIDOMEventTarget.h"
 #include "nsGenericHTMLElement.h"
 #include "nsGkAtoms.h"
 #include "nsStyleConsts.h"
@@ -1260,134 +1259,85 @@ nsHTMLInputElement::Focus()
   }
 
   return NS_OK;
 }
 
 void
 nsHTMLInputElement::SetFocus(nsPresContext* aPresContext)
 {
-  if (!aPresContext)
-    return;
-
-  // We can't be focus'd if we aren't in a document
-  nsIDocument* doc = GetCurrentDoc();
-  if (!doc)
-    return;
-
-  // first see if we are disabled or not. If disabled then do nothing.
-  if (HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) {
-    return;
-  }
- 
-  // If the window is not active, do not allow the focus to bring the
-  // window to the front.  We update the focus controller, but do
-  // nothing else.
-  nsCOMPtr<nsPIDOMWindow> win = doc->GetWindow();
-  if (win) {
-    nsIFocusController *focusController = win->GetRootFocusController();
-    if (focusController) {
-      PRBool isActive = PR_FALSE;
-      focusController->GetActive(&isActive);
-      if (!isActive) {
-        focusController->SetFocusedWindow(win);
-        focusController->SetFocusedElement(this);
-
-        return;
-      }
-    }
-  }
-
-  SetFocusAndScrollIntoView(aPresContext);
+  DoSetFocus(aPresContext);
 }
 
 NS_IMETHODIMP
 nsHTMLInputElement::Select()
 {
-  nsresult rv = NS_OK;
-
-  nsIDocument* doc = GetCurrentDoc();
-  if (!doc)
+  if (mType != NS_FORM_INPUT_PASSWORD && mType != NS_FORM_INPUT_TEXT) {
     return NS_OK;
-
-  // first see if we are disabled or not. If disabled then do nothing.
-  if (HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) {
+  }
+
+  // XXX Bug?  We have to give the input focus before contents can be
+  // selected
+
+  FocusTristate state = FocusState();
+  if (state == eUnfocusable) {
+    return NS_OK;
+  }
+
+  nsCOMPtr<nsPresContext> presContext = GetPresContext();
+  if (state == eInactiveWindow) {
+    SelectAll(presContext);
     return NS_OK;
   }
 
-  if (mType == NS_FORM_INPUT_PASSWORD || mType == NS_FORM_INPUT_TEXT) {
-    // XXX Bug?  We have to give the input focus before contents can be
-    // selected
-
-    nsCOMPtr<nsPresContext> presContext = GetPresContext();
-
-    // If the window is not active, do not allow the select to bring the
-    // window to the front.  We update the focus controller, but do
-    // nothing else.
-    nsPIDOMWindow *win = doc->GetWindow();
-    if (win) {
-      nsIFocusController *focusController = win->GetRootFocusController();
-      if (focusController) {
-        PRBool isActive = PR_FALSE;
-        focusController->GetActive(&isActive);
-        if (!isActive) {
-          focusController->SetFocusedWindow(win);
-          focusController->SetFocusedElement(this);
-          SelectAll(presContext);
-          return NS_OK;
-        }
+  // Just like SetFocus() but without the ScrollIntoView()!
+  nsEventStatus status = nsEventStatus_eIgnore;
+    
+  //If already handling select event, don't dispatch a second.
+  if (!GET_BOOLBIT(mBitField, BF_HANDLING_SELECT_EVENT)) {
+    nsEvent event(nsContentUtils::IsCallerChrome(), NS_FORM_SELECTED);
+
+    SET_BOOLBIT(mBitField, BF_HANDLING_SELECT_EVENT, PR_TRUE);
+    nsEventDispatcher::Dispatch(static_cast<nsIContent*>(this),
+                                presContext, &event, nsnull, &status);
+    SET_BOOLBIT(mBitField, BF_HANDLING_SELECT_EVENT, PR_FALSE);
+  }
+
+  // If the DOM event was not canceled (e.g. by a JS event handler
+  // returning false)
+  if (status == nsEventStatus_eIgnore) {
+    PRBool shouldFocus = ShouldFocus(this);
+
+    if (presContext && shouldFocus) {
+      nsIEventStateManager *esm = presContext->EventStateManager();
+      // XXX Fix for bug 135345 - ESM currently does not check to see if we
+      // have focus before attempting to set focus again and may cause
+      // infinite recursion.  For now check if we have focus and do not set
+      // focus again if already focused.
+      PRInt32 currentState;
+      esm->GetContentState(this, currentState);
+      if (!(currentState & NS_EVENT_STATE_FOCUS) &&
+          !esm->SetContentState(this, NS_EVENT_STATE_FOCUS)) {
+        return NS_OK; // We ended up unfocused, e.g. due to a DOM event handler.
       }
     }
 
-    // Just like SetFocus() but without the ScrollIntoView()!
-    nsEventStatus status = nsEventStatus_eIgnore;
-    
-    //If already handling select event, don't dispatch a second.
-    if (!GET_BOOLBIT(mBitField, BF_HANDLING_SELECT_EVENT)) {
-      nsEvent event(nsContentUtils::IsCallerChrome(), NS_FORM_SELECTED);
-
-      SET_BOOLBIT(mBitField, BF_HANDLING_SELECT_EVENT, PR_TRUE);
-      nsEventDispatcher::Dispatch(static_cast<nsIContent*>(this),
-                                  presContext, &event, nsnull, &status);
-      SET_BOOLBIT(mBitField, BF_HANDLING_SELECT_EVENT, PR_FALSE);
-    }
-
-    // If the DOM event was not canceled (e.g. by a JS event handler
-    // returning false)
-    if (status == nsEventStatus_eIgnore) {
-      PRBool shouldFocus = ShouldFocus(this);
-
-      if (presContext && shouldFocus) {
-        nsIEventStateManager *esm = presContext->EventStateManager();
-        // XXX Fix for bug 135345 - ESM currently does not check to see if we
-        // have focus before attempting to set focus again and may cause
-        // infinite recursion.  For now check if we have focus and do not set
-        // focus again if already focused.
-        PRInt32 currentState;
-        esm->GetContentState(this, currentState);
-        if (!(currentState & NS_EVENT_STATE_FOCUS) &&
-            !esm->SetContentState(this, NS_EVENT_STATE_FOCUS)) {
-          return rv; // We ended up unfocused, e.g. due to a DOM event handler.
-        }
+    nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
+
+    if (formControlFrame) {
+      if (shouldFocus) {
+        formControlFrame->SetFocus(PR_TRUE, PR_TRUE);
       }
 
-      nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
-
-      if (formControlFrame) {
-        if (shouldFocus) {
-          formControlFrame->SetFocus(PR_TRUE, PR_TRUE);
-        }
-
-        // Now Select all the text!
-        SelectAll(presContext);
-      }
+      // Now Select all the text!
+      SelectAll(presContext);
     }
   }
 
-  return rv;
+  return NS_OK;
 }
 
 void
 nsHTMLInputElement::SelectAll(nsPresContext* aPresContext)
 {
   nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
 
   if (formControlFrame) {
--- a/content/html/content/src/nsHTMLSelectElement.cpp
+++ b/content/html/content/src/nsHTMLSelectElement.cpp
@@ -1218,25 +1218,17 @@ nsHTMLSelectElement::Focus()
   }
 
   return NS_OK;
 }
 
 void
 nsHTMLSelectElement::SetFocus(nsPresContext* aPresContext)
 {
-  if (!aPresContext)
-    return;
-
-  // first see if we are disabled or not. If disabled then do nothing.
-  if (HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) {
-    return;
-  }
-
-  SetFocusAndScrollIntoView(aPresContext);
+  DoSetFocus(aPresContext);
 }
 
 PRBool
 nsHTMLSelectElement::IsHTMLFocusable(PRBool *aIsFocusable, PRInt32 *aTabIndex)
 {
   if (nsGenericHTMLElement::IsHTMLFocusable(aIsFocusable, aTabIndex)) {
     return PR_TRUE;
   }
--- a/content/html/content/src/nsHTMLTextAreaElement.cpp
+++ b/content/html/content/src/nsHTMLTextAreaElement.cpp
@@ -36,17 +36,16 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 #include "nsIDOMHTMLTextAreaElement.h"
 #include "nsIDOMNSHTMLTextAreaElement.h"
 #include "nsITextControlElement.h"
 #include "nsIDOMNSEditableElement.h"
 #include "nsIControllers.h"
-#include "nsIFocusController.h"
 #include "nsPIDOMWindow.h"
 #include "nsContentCID.h"
 #include "nsCOMPtr.h"
 #include "nsIComponentManager.h"
 #include "nsIDOMHTMLFormElement.h"
 #include "nsIFormControl.h"
 #include "nsIForm.h"
 #include "nsIFormSubmission.h"
@@ -302,87 +301,43 @@ nsHTMLTextAreaElement::Focus()
   }
 
   return NS_OK;
 }
 
 void
 nsHTMLTextAreaElement::SetFocus(nsPresContext* aPresContext)
 {
-  if (!aPresContext)
-    return;
-
-  // first see if we are disabled or not. If disabled then do nothing.
-  if (HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) {
-    return;
-  }
-
-  // We can't be focus'd if we aren't in a document
-  nsIDocument* doc = GetCurrentDoc();
-  if (!doc)
-    return;
-
-  // If the window is not active, do not allow the focus to bring the
-  // window to the front.  We update the focus controller, but do
-  // nothing else.
-  nsPIDOMWindow* win = doc->GetWindow();
-  if (win) {
-    nsIFocusController *focusController = win->GetRootFocusController();
-    PRBool isActive = PR_FALSE;
-    focusController->GetActive(&isActive);
-    if (!isActive) {
-      focusController->SetFocusedWindow(win);
-      focusController->SetFocusedElement(this);
-
-      return;
-    }
-  }
-
-  SetFocusAndScrollIntoView(aPresContext);
+  DoSetFocus(aPresContext);
 }
 
 NS_IMETHODIMP
 nsHTMLTextAreaElement::Select()
 {
   nsresult rv = NS_OK;
 
-  // first see if we are disabled or not. If disabled then do nothing.
-  if (HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) {
-    return rv;
-  }
-
-  // We can't be focus'd if we aren't in a document
-  nsIDocument* doc = GetCurrentDoc();
-  if (!doc)
-    return rv;
-
-  // If the window is not active, do not allow the focus to bring the
-  // window to the front.  We update the focus controller, but do
-  // nothing else.
-  nsPIDOMWindow* win = doc->GetWindow();
-  if (win) {
-    nsIFocusController *focusController = win->GetRootFocusController();
-    PRBool isActive = PR_FALSE;
-    focusController->GetActive(&isActive);
-    if (!isActive) {
-      focusController->SetFocusedWindow(win);
-      focusController->SetFocusedElement(this);
-
-      return rv;
-    }
-  }
-
   // XXX Bug?  We have to give the input focus before contents can be
   // selected
 
+  FocusTristate state = FocusState();
+  if (state == eUnfocusable) {
+    return NS_OK;
+  }
+
+  nsCOMPtr<nsPresContext> presContext = GetPresContext();
+  if (state == eInactiveWindow) {
+    SelectAll(presContext);
+    return NS_OK;
+  }
+
   // Just like SetFocus() but without the ScrollIntoView()!
-  nsCOMPtr<nsPresContext> presContext = GetPresContext();
 
   nsEventStatus status = nsEventStatus_eIgnore;
   nsGUIEvent event(PR_TRUE, NS_FORM_SELECTED, nsnull);
+  // XXXbz nsHTMLInputElement guards against this reentering; shouldn't we?
   nsEventDispatcher::Dispatch(static_cast<nsIContent*>(this), presContext,
                               &event, nsnull, &status);
 
   // If the DOM event was not canceled (e.g. by a JS event handler
   // returning false)
   if (status == nsEventStatus_eIgnore) {
     PRBool shouldFocus = ShouldFocus(this);
 
--- a/content/html/document/src/nsPluginDocument.cpp
+++ b/content/html/document/src/nsPluginDocument.cpp
@@ -66,22 +66,31 @@ public:
                                      nsIContentSink*     aSink = nsnull);
 
   virtual void SetScriptGlobalObject(nsIScriptGlobalObject* aScriptGlobalObject);
   virtual PRBool CanSavePresentation(nsIRequest *aNewRequest);
 
   const nsCString& GetType() const { return mMimeType; }
   nsIContent*      GetPluginContent() { return mPluginContent; }
 
+  void SkippedInstantiation() {
+    mWillHandleInstantiation = PR_FALSE;
+  }
+
 protected:
   nsresult CreateSyntheticPluginDocument();
 
   nsCOMPtr<nsIContent>                     mPluginContent;
   nsRefPtr<nsMediaDocumentStreamListener>  mStreamListener;
   nsCString                                mMimeType;
+
+  // Hack to handle the fact that plug-in loading lives in frames and that the
+  // frames may not be around when we need to instantiate.  Once plug-in
+  // loading moves to content, this can all go away.
+  PRBool                                   mWillHandleInstantiation;
 };
 
 class nsPluginStreamListener : public nsMediaDocumentStreamListener
 {
   public:
     nsPluginStreamListener(nsPluginDocument* doc) :
        nsMediaDocumentStreamListener(doc),  mPluginDoc(doc) {}
     NS_IMETHOD OnStartRequest(nsIRequest* request, nsISupports *ctxt);
@@ -99,32 +108,35 @@ nsPluginStreamListener::OnStartRequest(n
   }
 
   nsCOMPtr<nsIContent> embed = mPluginDoc->GetPluginContent();
 
   // Now we have a frame for our <embed>, start the load
   nsIPresShell* shell = mDocument->GetPrimaryShell();
   if (!shell) {
     // Can't instantiate w/o a shell
+    mPluginDoc->SkippedInstantiation();
     return NS_BINDING_ABORTED;
   }
 
   // Flush out layout before we go to instantiate, because some
   // plug-ins depend on NPP_SetWindow() being called early enough and
   // nsObjectFrame does that at the end of reflow.
   shell->FlushPendingNotifications(Flush_Layout);
 
   nsIFrame* frame = shell->GetPrimaryFrameFor(embed);
   if (!frame) {
+    mPluginDoc->SkippedInstantiation();
     return rv;
   }
 
   nsIObjectFrame* objFrame;
   CallQueryInterface(frame, &objFrame);
   if (!objFrame) {
+    mPluginDoc->SkippedInstantiation();
     return NS_ERROR_UNEXPECTED;
   }
 
   rv = objFrame->Instantiate(mPluginDoc->GetType().get(),
                              mDocument->nsIDocument::GetDocumentURI());
   if (NS_FAILED(rv)) {
     return rv;
   }
@@ -133,16 +145,17 @@ nsPluginStreamListener::OnStartRequest(n
   return mNextStream->OnStartRequest(request, ctxt);
 }
 
 
   // NOTE! nsDocument::operator new() zeroes out all members, so don't
   // bother initializing members to 0.
 
 nsPluginDocument::nsPluginDocument()
+  : mWillHandleInstantiation(PR_TRUE)
 {
 }
 
 nsPluginDocument::~nsPluginDocument()
 {
 }
 
 // XXXbz shouldn't this participate in cycle collection?  It's got
@@ -318,16 +331,23 @@ nsPluginDocument::Print()
 
       pi->Print(&npprint);
     }
   }
 
   return NS_OK;
 }
 
+NS_IMETHODIMP
+nsPluginDocument::GetWillHandleInstantiation(PRBool* aWillHandle)
+{
+  *aWillHandle = mWillHandleInstantiation;
+  return NS_OK;
+}
+
 nsresult
 NS_NewPluginDocument(nsIDocument** aResult)
 {
   nsPluginDocument* doc = new nsPluginDocument();
   if (!doc) {
     return NS_ERROR_OUT_OF_MEMORY;
   }
 
--- a/content/xbl/src/nsXBLContentSink.cpp
+++ b/content/xbl/src/nsXBLContentSink.cpp
@@ -875,36 +875,28 @@ nsXBLContentSink::CreateElement(const PR
 #endif
     return nsXMLContentSink::CreateElement(aAtts, aAttsCount, aNodeInfo,
                                            aLineNumber, aResult,
                                            aAppendContent, aFromParser);
 #ifdef MOZ_XUL
   }
 
   *aAppendContent = PR_TRUE;
-  nsXULPrototypeElement* prototype = new nsXULPrototypeElement();
+  nsRefPtr<nsXULPrototypeElement> prototype = new nsXULPrototypeElement();
   if (!prototype)
     return NS_ERROR_OUT_OF_MEMORY;
 
   prototype->mNodeInfo = aNodeInfo;
   // XXX - we need to do exactly what the XUL content-sink does (eg,
   // look for 'type', 'version' etc attributes)
   prototype->mScriptTypeID = nsIProgrammingLanguage::JAVASCRIPT;
 
   AddAttributesToXULPrototype(aAtts, aAttsCount, prototype);
 
-  nsresult rv = nsXULElement::Create(prototype, mDocument, PR_FALSE, aResult);
-
-  // XUL prototype elements start with a refcnt of 1 to represent
-  // ownership by the XUL prototype document.  In our case we have no
-  // prototype document, so release that reference.  The Create call
-  // above took a reference.
-  prototype->Release();
-
-  return rv;
+  return nsXULElement::Create(prototype, mDocument, PR_FALSE, aResult);
 #endif
 }
 
 nsresult 
 nsXBLContentSink::AddAttributes(const PRUnichar** aAtts,
                                 nsIContent* aContent)
 {
   if (aContent->IsNodeOfType(nsINode::eXUL))
--- a/content/xul/content/src/nsXULElement.cpp
+++ b/content/xul/content/src/nsXULElement.cpp
@@ -149,16 +149,17 @@
 #include "nsIFrame.h"
 #include "nsNodeInfoManager.h"
 #include "nsXBLBinding.h"
 #include "nsEventDispatcher.h"
 #include "nsPresShellIterator.h"
 #include "mozAutoDocUpdate.h"
 #include "nsIDOMXULCommandEvent.h"
 #include "nsIDOMNSEvent.h"
+#include "nsCCUncollectableMarker.h"
 
 /**
  * Three bits are used for XUL Element's lazy state.
  */
 #define XUL_ELEMENT_CHILDREN_MUST_BE_REBUILT \
   (nsXULElement::eChildrenMustBeRebuilt << XUL_ELEMENT_LAZY_STATE_OFFSET)
 
 #define XUL_ELEMENT_TEMPLATE_CONTENTS_BUILT \
@@ -368,18 +369,23 @@ NS_NewXULElement(nsIContent** aResult, n
 }
 
 //----------------------------------------------------------------------
 // nsISupports interface
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsXULElement)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsXULElement,
                                                   nsGenericElement)
-  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mPrototype,
-                                                  nsXULPrototypeElement)
+    nsIDocument* currentDoc = tmp->GetCurrentDoc();
+    if (currentDoc && nsCCUncollectableMarker::InGeneration(
+                          currentDoc->GetMarkedCCGeneration())) {
+        return NS_OK;
+    }
+    NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mPrototype,
+                                                    nsXULPrototypeElement)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 NS_IMPL_ADDREF_INHERITED(nsXULElement, nsGenericElement)
 NS_IMPL_RELEASE_INHERITED(nsXULElement, nsGenericElement)
 
 NS_IMETHODIMP
 nsXULElement::QueryInterface(REFNSIID aIID, void** aInstancePtr)
 {
@@ -2614,18 +2620,18 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE
             static_cast<nsXULPrototypeElement*>(tmp);
         cb.NoteXPCOMChild(elem->mNodeInfo);
         PRUint32 i;
         for (i = 0; i < elem->mNumAttributes; ++i) {
             const nsAttrName& name = elem->mAttributes[i].mName;
             if (!name.IsAtom())
                 cb.NoteXPCOMChild(name.NodeInfo());
         }
-        for (i = 0; i < elem->mNumChildren; ++i) {
-            NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_PTR(elem->mChildren[i],
+        for (i = 0; i < elem->mChildren.Length(); ++i) {
+            NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_PTR(elem->mChildren[i].get(),
                                                          nsXULPrototypeNode,
                                                          "mChildren[i]")
         }
     }
     NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 NS_IMPL_CYCLE_COLLECTION_TRACE_NATIVE_BEGIN(nsXULPrototypeNode)
     if (tmp->mType == nsXULPrototypeNode::eType_Element) {
@@ -2713,19 +2719,19 @@ nsXULPrototypeElement::Serialize(nsIObje
         NS_ASSERTION(index >= 0, "unknown nsINodeInfo index");
         rv |= aStream->Write32(index);
 
         mAttributes[i].mValue.ToString(attributeValue);
         rv |= aStream->WriteWStringZ(attributeValue.get());
     }
 
     // Now write children
-    rv |= aStream->Write32(PRUint32(mNumChildren));
-    for (i = 0; i < mNumChildren; i++) {
-        nsXULPrototypeNode* child = mChildren[i];
+    rv |= aStream->Write32(PRUint32(mChildren.Length()));
+    for (i = 0; i < mChildren.Length(); i++) {
+        nsXULPrototypeNode* child = mChildren[i].get();
         switch (child->mType) {
         case eType_Element:
         case eType_Text:
         case eType_PI:
             rv |= child->Serialize(aStream, aGlobal, aNodeInfos);
             break;
         case eType_Script:
             rv |= aStream->Write32(child->mType);
@@ -2798,30 +2804,27 @@ nsXULPrototypeElement::Deserialize(nsIOb
             mAttributes[i].mName.SetTo(ni);
 
             rv |= aStream->ReadString(attributeValue);
             rv |= SetAttrAt(i, attributeValue, aDocumentURI);
         }
     }
 
     rv |= aStream->Read32(&number);
-    mNumChildren = PRInt32(number);
-
-    if (mNumChildren > 0) {
-        mChildren = new nsXULPrototypeNode*[mNumChildren];
-        if (! mChildren)
+    PRUint32 numChildren = PRInt32(number);
+
+    if (numChildren > 0) {
+        if (!mChildren.SetCapacity(numChildren))
             return NS_ERROR_OUT_OF_MEMORY;
 
-        memset(mChildren, 0, sizeof(nsXULPrototypeNode*) * mNumChildren);
-
-        for (i = 0; i < mNumChildren; i++) {
+        for (i = 0; i < numChildren; i++) {
             rv |= aStream->Read32(&number);
             Type childType = (Type)number;
 
-            nsXULPrototypeNode* child = nsnull;
+            nsRefPtr<nsXULPrototypeNode> child;
 
             switch (childType) {
             case eType_Element:
                 child = new nsXULPrototypeElement();
                 if (! child)
                     return NS_ERROR_OUT_OF_MEMORY;
                 child->mType = childType;
 
@@ -2869,17 +2872,17 @@ nsXULPrototypeElement::Deserialize(nsIOb
                 // If we failed to deserialize, consider deleting 'script'?
                 break;
             }
             default:
                 NS_NOTREACHED("Unexpected child type!");
                 rv = NS_ERROR_UNEXPECTED;
             }
 
-            mChildren[i] = child;
+            mChildren.AppendElement(child);
 
             // Oh dear. Something failed during the deserialization.
             // We don't know what.  But likely consequences of failed
             // deserializations included calls to |AbortFastLoads| which
             // shuts down the FastLoadService and closes our streams.
             // If that happens, next time through this loop, we die a messy
             // death. So, let's just fail now, and propagate that failure
             // upward so that the ChromeProtocolHandler knows it can't use
@@ -2979,17 +2982,16 @@ nsXULPrototypeScript::nsXULPrototypeScri
     : nsXULPrototypeNode(eType_Script),
       mLineNo(aLineNo),
       mSrcLoading(PR_FALSE),
       mOutOfLine(PR_TRUE),
       mSrcLoadWaiters(nsnull),
       mLangVersion(aVersion),
       mScriptObject(aLangID)
 {
-    NS_LOG_ADDREF(this, 1, ClassName(), ClassSize());
     NS_ASSERTION(aLangID != nsIProgrammingLanguage::UNKNOWN,
                  "The language ID must be known and constant");
 }
 
 
 nsXULPrototypeScript::~nsXULPrototypeScript()
 {
     UnlinkJSObjects();
--- a/content/xul/content/src/nsXULElement.h
+++ b/content/xul/content/src/nsXULElement.h
@@ -82,16 +82,18 @@
 class nsIDocument;
 class nsString;
 class nsIDocShell;
 class nsICSSStyleRule;
 
 class nsIObjectInputStream;
 class nsIObjectOutputStream;
 class nsIScriptGlobalObjectOwner;
+class nsXULPrototypeNode;
+typedef nsTArray<nsRefPtr<nsXULPrototypeNode> > nsPrototypeArray;
 
 static NS_DEFINE_CID(kCSSParserCID, NS_CSSPARSER_CID);
 
 ////////////////////////////////////////////////////////////////////////
 
 #ifdef XUL_PROTOTYPE_ATTRIBUTE_METERING
 #define XUL_PROTOTYPE_ATTRIBUTE_METER(counter) (nsXULPrototypeAttribute::counter++)
 #else
@@ -221,86 +223,75 @@ public:
     /**
      * The prototype document must call ReleaseSubtree when it is going
      * away.  This makes the parents through the tree stop owning their
      * children, whether or not the parent's reference count is zero.
      * Individual elements may still own individual prototypes, but
      * those prototypes no longer remember their children to allow them
      * to be constructed.
      */
-    virtual void ReleaseSubtree() { Release(); }
+    virtual void ReleaseSubtree() { }
 
     NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(nsXULPrototypeNode)
 
 protected:
     nsXULPrototypeNode(Type aType)
-        : mType(aType), mRefCnt(1) {}
+        : mType(aType) {}
 };
 
 class nsXULPrototypeElement : public nsXULPrototypeNode
 {
 public:
     nsXULPrototypeElement()
         : nsXULPrototypeNode(eType_Element),
-          mNumChildren(0),
-          mChildren(nsnull),
           mNumAttributes(0),
           mAttributes(nsnull),
           mHasIdAttribute(PR_FALSE),
           mHasClassAttribute(PR_FALSE),
           mHasStyleAttribute(PR_FALSE),
           mHoldsScriptObject(PR_FALSE),
           mScriptTypeID(nsIProgrammingLanguage::UNKNOWN)
     {
-        NS_LOG_ADDREF(this, 1, ClassName(), ClassSize());
     }
 
     virtual ~nsXULPrototypeElement()
     {
         UnlinkJSObjects();
         Unlink();
-        NS_ASSERTION(!mChildren && mNumChildren == 0,
-                     "ReleaseSubtree not called");
     }
 
 #ifdef NS_BUILD_REFCNT_LOGGING
     virtual const char* ClassName() { return "nsXULPrototypeElement"; }
     virtual PRUint32 ClassSize() { return sizeof(*this); }
 #endif
 
     virtual void ReleaseSubtree()
     {
-      if (mChildren) {
-        for (PRInt32 i = mNumChildren-1; i >= 0; i--) {
-          if (mChildren[i])
-            mChildren[i]->ReleaseSubtree();
+        for (PRInt32 i = mChildren.Length() - 1; i >= 0; i--) {
+            if (mChildren[i].get())
+                mChildren[i]->ReleaseSubtree();
         }
-        mNumChildren = 0;
-        delete[] mChildren;
-        mChildren = nsnull;
-      }
-
-      nsXULPrototypeNode::ReleaseSubtree();
+        mChildren.Clear();
+        nsXULPrototypeNode::ReleaseSubtree();
     }
 
     virtual nsresult Serialize(nsIObjectOutputStream* aStream,
                                nsIScriptGlobalObject* aGlobal,
                                const nsCOMArray<nsINodeInfo> *aNodeInfos);
     virtual nsresult Deserialize(nsIObjectInputStream* aStream,
                                  nsIScriptGlobalObject* aGlobal,
                                  nsIURI* aDocumentURI,
                                  const nsCOMArray<nsINodeInfo> *aNodeInfos);
 
     nsresult SetAttrAt(PRUint32 aPos, const nsAString& aValue, nsIURI* aDocumentURI);
 
     void UnlinkJSObjects();
     void Unlink();
 
-    PRUint32                 mNumChildren;
-    nsXULPrototypeNode**     mChildren;           // [OWNER]
+    nsPrototypeArray         mChildren;
 
     nsCOMPtr<nsINodeInfo>    mNodeInfo;           // [OWNER]
 
     PRUint32                 mNumAttributes;
     nsXULPrototypeAttribute* mAttributes;         // [OWNER]
     
     PRPackedBool             mHasIdAttribute:1;
     PRPackedBool             mHasClassAttribute:1;
@@ -411,17 +402,16 @@ public:
 };
 
 class nsXULPrototypeText : public nsXULPrototypeNode
 {
 public:
     nsXULPrototypeText()
         : nsXULPrototypeNode(eType_Text)
     {
-        NS_LOG_ADDREF(this, 1, ClassName(), ClassSize());
     }
 
     virtual ~nsXULPrototypeText()
     {
     }
 
 #ifdef NS_BUILD_REFCNT_LOGGING
     virtual const char* ClassName() { return "nsXULPrototypeText"; }
@@ -440,17 +430,16 @@ public:
 };
 
 class nsXULPrototypePI : public nsXULPrototypeNode
 {
 public:
     nsXULPrototypePI()
         : nsXULPrototypeNode(eType_PI)
     {
-        NS_LOG_ADDREF(this, 1, ClassName(), ClassSize());
     }
 
     virtual ~nsXULPrototypePI()
     {
     }
 
 #ifdef NS_BUILD_REFCNT_LOGGING
     virtual const char* ClassName() { return "nsXULPrototypePI"; }
--- a/content/xul/document/public/nsIXULPrototypeCache.h
+++ b/content/xul/document/public/nsIXULPrototypeCache.h
@@ -77,15 +77,15 @@ NS_NewXULPrototypeCache(nsISupports* aOu
 
 
 const char XUL_FASTLOAD_FILE_BASENAME[] = "XUL";
 
 // Increase the subtractor when changing version, say when changing the
 // (opaque to XPCOM FastLoad code) format of XUL-specific XDR serializations.
 // See also JSXDR_BYTECODE_VERSION in jsxdrapi.h, which tracks incompatible JS
 // bytecode version changes.
-#define XUL_FASTLOAD_FILE_VERSION       (0xfeedbeef - 24)
+#define XUL_FASTLOAD_FILE_VERSION       (0xfeedbeef - 25)
 
 #define XUL_SERIALIZATION_BUFFER_SIZE   (64 * 1024)
 #define XUL_DESERIALIZATION_BUFFER_SIZE (8 * 1024)
 
 
 #endif // nsIXULPrototypeCache_h__
--- a/content/xul/document/src/nsXULContentSink.cpp
+++ b/content/xul/document/src/nsXULContentSink.cpp
@@ -143,28 +143,28 @@ XULContentSinkImpl::ContextStack::Pop(St
     *aState = entry->mState;
     delete entry;
 
     return NS_OK;
 }
 
 
 nsresult
-XULContentSinkImpl::ContextStack::GetTopNode(nsXULPrototypeNode** aNode)
+XULContentSinkImpl::ContextStack::GetTopNode(nsRefPtr<nsXULPrototypeNode>& aNode)
 {
     if (mDepth == 0)
         return NS_ERROR_UNEXPECTED;
 
-    *aNode = mTop->mNode;
+    aNode = mTop->mNode;
     return NS_OK;
 }
 
 
 nsresult
-XULContentSinkImpl::ContextStack::GetTopChildren(nsVoidArray** aChildren)
+XULContentSinkImpl::ContextStack::GetTopChildren(nsPrototypeArray** aChildren)
 {
     if (mDepth == 0)
         return NS_ERROR_UNEXPECTED;
 
     *aChildren = &(mTop->mChildren);
     return NS_OK;
 }
 
@@ -172,59 +172,47 @@ nsresult
 XULContentSinkImpl::ContextStack::GetTopNodeScriptType(PRUint32 *aScriptType)
 {
     if (mDepth == 0)
         return NS_ERROR_UNEXPECTED;
 
     // This would be much simpler if nsXULPrototypeNode itself
     // stored the language ID - but text elements don't need it!
     nsresult rv = NS_OK;
-    nsXULPrototypeNode* node;
-    rv = GetTopNode(&node);
+    nsRefPtr<nsXULPrototypeNode> node;
+    rv = GetTopNode(node);
     if (NS_FAILED(rv)) return rv;
     switch (node->mType) {
         case nsXULPrototypeNode::eType_Element: {
-            nsXULPrototypeElement *parent = \
-                reinterpret_cast<nsXULPrototypeElement*>(node);
+            nsXULPrototypeElement *parent =
+                reinterpret_cast<nsXULPrototypeElement*>(node.get());
             *aScriptType = parent->mScriptTypeID;
             break;
         }
         case nsXULPrototypeNode::eType_Script: {
-            nsXULPrototypeScript *parent = \
-                reinterpret_cast<nsXULPrototypeScript*>(node);
+            nsXULPrototypeScript *parent =
+                reinterpret_cast<nsXULPrototypeScript*>(node.get());
             *aScriptType = parent->mScriptObject.mLangID;
             break;
         }
         default: {
             NS_WARNING("Unexpected parent node type");
             rv = NS_ERROR_UNEXPECTED;
         }
     }
     return rv;
 }
 
 void
 XULContentSinkImpl::ContextStack::Clear()
 {
   Entry *cur = mTop;
   while (cur) {
-    // Release all children (with their descendants) that haven't been added to
-    // their parents.
-    for (PRInt32 i = cur->mChildren.Count() - 1; i >= 0; --i) {
-      nsXULPrototypeNode* child =
-          reinterpret_cast<nsXULPrototypeNode*>(cur->mChildren.ElementAt(i));
-
-      child->ReleaseSubtree();
-    }
-
     // Release the root element (and its descendants).
     Entry *next = cur->mNext;
-    if (!next)
-      cur->mNode->ReleaseSubtree();
-
     delete cur;
     cur = next;
   }
 
   mTop = nsnull;
   mDepth = 0;
 }
 
@@ -411,24 +399,24 @@ XULContentSinkImpl::FlushText(PRBool aCr
         // Don't do anything if there's no text to create a node from, or
         // if they've told us not to create a text node
         if (! mTextLength)
             break;
 
         if (! aCreateTextNode)
             break;
 
-        nsXULPrototypeNode* node;
-        rv = mContextStack.GetTopNode(&node);
+        nsRefPtr<nsXULPrototypeNode> node;
+        rv = mContextStack.GetTopNode(node);
         if (NS_FAILED(rv)) return rv;
 
         PRBool stripWhitespace = PR_FALSE;
         if (node->mType == nsXULPrototypeNode::eType_Element) {
             nsINodeInfo *nodeInfo =
-                static_cast<nsXULPrototypeElement*>(node)->mNodeInfo;
+                static_cast<nsXULPrototypeElement*>(node.get())->mNodeInfo;
 
             if (nodeInfo->NamespaceEquals(kNameSpaceID_XUL))
                 stripWhitespace = !nodeInfo->Equals(nsGkAtoms::label) &&
                                   !nodeInfo->Equals(nsGkAtoms::description);
         }
 
         // Don't bother if there's nothing but whitespace.
         if (stripWhitespace && ! IsDataInBuffer(mText, mTextLength))
@@ -442,17 +430,17 @@ XULContentSinkImpl::FlushText(PRBool aCr
         if (! text)
             return NS_ERROR_OUT_OF_MEMORY;
 
         text->mValue.Assign(mText, mTextLength);
         if (stripWhitespace)
             text->mValue.Trim(" \t\n\r");
 
         // hook it up
-        nsVoidArray* children;
+        nsPrototypeArray* children = nsnull;
         rv = mContextStack.GetTopChildren(&children);
         if (NS_FAILED(rv)) return rv;
 
         // transfer ownership of 'text' to the children array
         children->AppendElement(text);
     } while (0);
 
     // Reset our text buffer
@@ -570,55 +558,52 @@ XULContentSinkImpl::HandleStartElement(c
 NS_IMETHODIMP 
 XULContentSinkImpl::HandleEndElement(const PRUnichar *aName)
 {
     // Never EVER return anything but NS_OK or
     // NS_ERROR_HTMLPARSER_BLOCK from this method. Doing so will blow
     // the parser's little mind all over the planet.
     nsresult rv;
 
-    nsXULPrototypeNode* node;
-    rv = mContextStack.GetTopNode(&node);
+    nsRefPtr<nsXULPrototypeNode> node;
+    rv = mContextStack.GetTopNode(node);
 
     if (NS_FAILED(rv)) {
       return NS_OK;
     }
 
     switch (node->mType) {
     case nsXULPrototypeNode::eType_Element: {
         // Flush any text _now_, so that we'll get text nodes created
         // before popping the stack.
         FlushText();
 
         // Pop the context stack and do prototype hookup.
-        nsVoidArray* children;
+        nsPrototypeArray* children = nsnull;
         rv = mContextStack.GetTopChildren(&children);
         if (NS_FAILED(rv)) return rv;
 
         nsXULPrototypeElement* element =
-            reinterpret_cast<nsXULPrototypeElement*>(node);
+          static_cast<nsXULPrototypeElement*>(node.get());
 
-        PRInt32 count = children->Count();
+        PRInt32 count = children->Length();
         if (count) {
-            element->mChildren = new nsXULPrototypeNode*[count];
-            if (! element->mChildren)
+            if (!element->mChildren.SetCapacity(count))
                 return NS_ERROR_OUT_OF_MEMORY;
 
-            for (PRInt32 i = count - 1; i >= 0; --i)
-                element->mChildren[i] =
-                    reinterpret_cast<nsXULPrototypeNode*>(children->ElementAt(i));
+            for (PRInt32 i = 0; i < count; ++i)
+                element->mChildren.AppendElement(children->ElementAt(i));
 
-            element->mNumChildren = count;
         }
     }
     break;
 
     case nsXULPrototypeNode::eType_Script: {
         nsXULPrototypeScript* script =
-            static_cast<nsXULPrototypeScript*>(node);
+            static_cast<nsXULPrototypeScript*>(node.get());
 
         // If given a src= attribute, we must ignore script tag content.
         if (! script->mSrcURI && ! script->mScriptObject.mObject) {
             nsCOMPtr<nsIDocument> doc = do_QueryReferent(mDocument);
 
             script->mOutOfLine = PR_FALSE;
             if (doc)
                 script->Compile(mText, mTextLength, mDocumentURL,
@@ -644,17 +629,17 @@ XULContentSinkImpl::HandleEndElement(con
         NS_ASSERTION(node->mType == nsXULPrototypeNode::eType_Element, "root is not an element");
         if (node->mType != nsXULPrototypeNode::eType_Element)
             return NS_ERROR_UNEXPECTED;
 
         // Now that we're done parsing, set the prototype document's
         // root element. This transfers ownership of the prototype
         // element tree to the prototype document.
         nsXULPrototypeElement* element =
-            static_cast<nsXULPrototypeElement*>(node);
+            static_cast<nsXULPrototypeElement*>(node.get());
 
         mPrototype->SetRootElement(element);
         mState = eInEpilog;
     }
 
     return NS_OK;
 }
 
@@ -697,38 +682,36 @@ XULContentSinkImpl::HandleProcessingInst
                                                 const PRUnichar *aData)
 {
     FlushText();
 
     const nsDependentString target(aTarget);
     const nsDependentString data(aData);
 
     // Note: the created nsXULPrototypePI has mRefCnt == 1
-    nsXULPrototypePI* pi = new nsXULPrototypePI();
+    nsRefPtr<nsXULPrototypePI> pi = new nsXULPrototypePI();
     if (!pi)
         return NS_ERROR_OUT_OF_MEMORY;
 
     pi->mTarget = target;
     pi->mData = data;
 
     if (mState == eInProlog) {
         // Note: passing in already addrefed pi
         return mPrototype->AddProcessingInstruction(pi);
     }
 
     nsresult rv;
-    nsVoidArray* children;
+    nsPrototypeArray* children = nsnull;
     rv = mContextStack.GetTopChildren(&children);
     if (NS_FAILED(rv)) {
-        pi->Release();
         return rv;
     }
 
     if (!children->AppendElement(pi)) {
-        pi->Release();
         return NS_ERROR_OUT_OF_MEMORY;
     }
 
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
@@ -934,17 +917,17 @@ XULContentSinkImpl::OpenTag(const PRUnic
                     aLineNumber));
         }
 #endif
 
         return rv;
     }
 
     // Link this element to its parent.
-    nsVoidArray* children;
+    nsPrototypeArray* children = nsnull;
     rv = mContextStack.GetTopChildren(&children);
     if (NS_FAILED(rv)) {
         delete element;
         return rv;
     }
 
     // Add the attributes
     rv = AddAttributes(aAttributes, aAttrLen, element);
@@ -1130,17 +1113,17 @@ XULContentSinkImpl::OpenScript(const PRU
       langID = nsIProgrammingLanguage::UNKNOWN;
       NS_WARNING("Non JS language called from non chrome - ignored");
   }
   // Don't process scripts that aren't known
   if (langID != nsIProgrammingLanguage::UNKNOWN) {
       nsIScriptGlobalObject* globalObject = nsnull; // borrowed reference
       if (doc)
           globalObject = doc->GetScriptGlobalObject();
-      nsXULPrototypeScript* script =
+      nsRefPtr<nsXULPrototypeScript> script =
           new nsXULPrototypeScript(langID, aLineNumber, version);
       if (! script)
           return NS_ERROR_OUT_OF_MEMORY;
 
       // If there is a SRC attribute...
       if (! src.IsEmpty()) {
           // Use the SRC attribute value to load the URL
           rv = NS_NewURI(getter_AddRefs(script->mSrcURI), src, nsnull, mDocumentURL);
@@ -1159,32 +1142,30 @@ XULContentSinkImpl::OpenScript(const PRU
                           CheckLoadURIWithPrincipal(doc->NodePrincipal(),
                                                     script->mSrcURI,
                                                     nsIScriptSecurityManager::ALLOW_CHROME);
                   }
               }
           }
 
           if (NS_FAILED(rv)) {
-              delete script;
               return rv;
           }
 
           // Attempt to deserialize an out-of-line script from the FastLoad
           // file right away.  Otherwise we'll end up reloading the script and
           // corrupting the FastLoad file trying to serialize it, in the case
           // where it's already there.
           if (globalObject)
                 script->DeserializeOutOfLine(nsnull, globalObject);
       }
 
-      nsVoidArray* children;
+      nsPrototypeArray* children = nsnull;
       rv = mContextStack.GetTopChildren(&children);
       if (NS_FAILED(rv)) {
-          delete script;
           return rv;
       }
 
       children->AppendElement(script);
 
       mConstrainSize = PR_FALSE;
 
       mContextStack.Push(script, mState);
--- a/content/xul/document/src/nsXULContentSink.h
+++ b/content/xul/document/src/nsXULContentSink.h
@@ -43,16 +43,17 @@
 #define nsXULContentSink_h__
 
 #include "nsIExpatSink.h"
 #include "nsIXMLContentSink.h"
 #include "nsAutoPtr.h"
 #include "nsNodeInfoManager.h"
 #include "nsVoidArray.h"
 #include "nsWeakPtr.h"
+#include "nsXULElement.h"
 
 class nsIDocument;
 class nsIScriptSecurityManager;
 class nsAttrName;
 class nsXULPrototypeDocument;
 class nsXULPrototypeElement;
 class nsXULPrototypeNode;
 
@@ -138,37 +139,38 @@ protected:
     protected:
 
     State mState;
 
     // content stack management
     class ContextStack {
     protected:
         struct Entry {
-            nsXULPrototypeNode* mNode;
+            nsRefPtr<nsXULPrototypeNode> mNode;
             // a LOT of nodes have children; preallocate for 8
-            nsAutoVoidArray     mChildren;
+            nsPrototypeArray    mChildren;
             State               mState;
             Entry*              mNext;
+            Entry() : mChildren(8) {}
         };
 
         Entry* mTop;
         PRInt32 mDepth;
 
     public:
         ContextStack();
         ~ContextStack();
 
         PRInt32 Depth() { return mDepth; }
 
         nsresult Push(nsXULPrototypeNode* aNode, State aState);
         nsresult Pop(State* aState);
 
-        nsresult GetTopNode(nsXULPrototypeNode** aNode);
-        nsresult GetTopChildren(nsVoidArray** aChildren);
+        nsresult GetTopNode(nsRefPtr<nsXULPrototypeNode>& aNode);
+        nsresult GetTopChildren(nsPrototypeArray** aChildren);
         nsresult GetTopNodeScriptType(PRUint32 *aScriptType);
 
         void Clear();
     };
 
     friend class ContextStack;
     ContextStack mContextStack;
 
--- a/content/xul/document/src/nsXULDocument.cpp
+++ b/content/xul/document/src/nsXULDocument.cpp
@@ -119,16 +119,17 @@
 #include "nsEventDispatcher.h"
 #include "nsContentErrors.h"
 #include "nsIObserverService.h"
 #include "nsNodeUtils.h"
 #include "nsIDocShellTreeItem.h"
 #include "nsIDocShellTreeOwner.h"
 #include "nsIXULWindow.h"
 #include "nsXULPopupManager.h"
+#include "nsCCUncollectableMarker.h"
 
 //----------------------------------------------------------------------
 //
 // CIDs
 //
 
 static NS_DEFINE_CID(kParserCID,                 NS_PARSER_CID);
 
@@ -328,16 +329,19 @@ TraverseObservers(nsIURI* aKey, nsIObser
 
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*cb, "mOverlayLoadObservers/mPendingOverlayLoadNotifications value");
     cb->NoteXPCOMChild(aData);
 
     return PL_DHASH_NEXT;
 }
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsXULDocument, nsXMLDocument)
+    if (nsCCUncollectableMarker::InGeneration(tmp->GetMarkedCCGeneration())) {
+        return NS_OK;
+    }
     // XXX tmp->mForwardReferences?
     // XXX tmp->mContextStack?
 
     // An element will only have a template builder as long as it's in the
     // document, so we'll traverse the table here instead of from the element.
     if (tmp->mTemplateBuilderTable)
         tmp->mTemplateBuilderTable->EnumerateRead(TraverseTemplateBuilders, &cb);
         
@@ -2384,17 +2388,17 @@ nsXULDocument::PrepareToWalk()
 
     PRUint32 piInsertionPoint = 0;
     if (mState != eState_Master) {
         piInsertionPoint = IndexOf(GetRootContent());
         NS_ASSERTION(piInsertionPoint >= 0,
                      "No root content when preparing to walk overlay!");
     }
 
-    const nsTArray<nsXULPrototypePI*>& processingInstructions =
+    const nsTArray<nsRefPtr<nsXULPrototypePI> >& processingInstructions =
         mCurrentPrototype->GetProcessingInstructions();
 
     PRUint32 total = processingInstructions.Length();
     for (PRUint32 i = 0; i < total; ++i) {
         rv = CreateAndInsertPI(processingInstructions[i],
                                this, piInsertionPoint + i);
         if (NS_FAILED(rv)) return rv;
     }
@@ -2824,17 +2828,17 @@ nsXULDocument::ResumeWalk()
             // inserted to the actual document.
             nsXULPrototypeElement* proto;
             nsCOMPtr<nsIContent> element;
             PRInt32 indx; // all children of proto before indx (not
                           // inclusive) have already been constructed
             rv = mContextStack.Peek(&proto, getter_AddRefs(element), &indx);
             if (NS_FAILED(rv)) return rv;
 
-            if (indx >= (PRInt32)proto->mNumChildren) {
+            if (indx >= (PRInt32)proto->mChildren.Length()) {
                 if (element) {
                     // We've processed all of the prototype's children. If
                     // we're in the master prototype, do post-order
                     // document-level hookup. (An overlay will get its
                     // document hookup done when it's successfully
                     // resolved.)
                     if (mState == eState_Master) {
                         AddElementToDocumentPost(element);
@@ -2915,17 +2919,17 @@ nsXULDocument::ResumeWalk()
                     // enter a forward reference so we can hook it up
                     // later.
                     rv = CreateOverlayElement(protoele, getter_AddRefs(child));
                     if (NS_FAILED(rv)) return rv;
                 }
 
                 // If it has children, push the element onto the context
                 // stack and begin to process them.
-                if (protoele->mNumChildren > 0) {
+                if (protoele->mChildren.Length() > 0) {
                     rv = mContextStack.Push(protoele, child);
                     if (NS_FAILED(rv)) return rv;
                 }
                 else {
                     if (mState == eState_Master) {
                         // If there are no children, and we're in the
                         // master document, do post-order document hookup
                         // immediately.
--- a/content/xul/document/src/nsXULPrototypeDocument.cpp
+++ b/content/xul/document/src/nsXULPrototypeDocument.cpp
@@ -57,17 +57,17 @@
 #include "jsapi.h"
 #include "nsString.h"
 #include "nsIConsoleService.h"
 #include "nsIScriptError.h"
 #include "nsIDOMScriptObjectFactory.h"
 #include "nsDOMCID.h"
 #include "nsNodeInfoManager.h"
 #include "nsContentUtils.h"
-
+#include "nsCCUncollectableMarker.h"
 #include "nsDOMJSUtils.h" // for GetScriptContextFromJSContext
 
 static NS_DEFINE_CID(kDOMScriptObjectFactoryCID,
                      NS_DOM_SCRIPT_OBJECT_FACTORY_CID);
 
 
 class nsXULPDGlobalObject : public nsIScriptGlobalObject,
                             public nsIScriptObjectPrincipal
@@ -174,22 +174,16 @@ nsXULPrototypeDocument::Init()
 
 nsXULPrototypeDocument::~nsXULPrototypeDocument()
 {
     if (mGlobalObject) {
         // cleaup cycles etc.
         mGlobalObject->ClearGlobalObjectOwner();
     }
 
-    PRUint32 count = mProcessingInstructions.Length();
-    for (PRUint32 i = 0; i < count; i++)
-    {
-        mProcessingInstructions[i]->Release();
-    }
-
     if (mRoot)
         mRoot->ReleaseSubtree();
 
     if (--gRefCnt == 0) {
         NS_IF_RELEASE(gSystemPrincipal);
         NS_IF_RELEASE(gSystemGlobal);
     }
 }
@@ -302,34 +296,44 @@ nsXULPrototypeDocument::Read(nsIObjectIn
     mRoot = new nsXULPrototypeElement();
     if (! mRoot)
        return NS_ERROR_OUT_OF_MEMORY;
 
     // nsINodeInfo table
     nsCOMArray<nsINodeInfo> nodeInfos;
 
     rv |= aStream->Read32(&count);
-    nsAutoString namespaceURI, qualifiedName;
+    nsAutoString namespaceURI, prefixStr, localName;
+    PRBool prefixIsNull;
+    nsCOMPtr<nsIAtom> prefix;
     for (i = 0; i < count; ++i) {
         rv |= aStream->ReadString(namespaceURI);
-        rv |= aStream->ReadString(qualifiedName);
+        rv |= aStream->ReadBoolean(&prefixIsNull);
+        if (prefixIsNull) {
+            prefix = nsnull;
+        } else {
+            rv |= aStream->ReadString(prefixStr);
+            prefix = do_GetAtom(prefixStr);
+        }
+        rv |= aStream->ReadString(localName);
 
         nsCOMPtr<nsINodeInfo> nodeInfo;
-        rv |= mNodeInfoManager->GetNodeInfo(qualifiedName, namespaceURI, getter_AddRefs(nodeInfo));
+        rv |= mNodeInfoManager->GetNodeInfo(localName, prefix, namespaceURI,
+                                            getter_AddRefs(nodeInfo));
         if (!nodeInfos.AppendObject(nodeInfo))
             rv |= NS_ERROR_OUT_OF_MEMORY;
     }
 
     // Document contents
     PRUint32 type;
     while (NS_SUCCEEDED(rv)) {
         rv |= aStream->Read32(&type);
 
         if ((nsXULPrototypeNode::Type)type == nsXULPrototypeNode::eType_PI) {
-            nsXULPrototypePI* pi = new nsXULPrototypePI();
+            nsRefPtr<nsXULPrototypePI> pi = new nsXULPrototypePI();
             if (! pi) {
                rv |= NS_ERROR_OUT_OF_MEMORY;
                break;
             }
 
             rv |= pi->Deserialize(aStream, mGlobalObject, mURI, &nodeInfos);
             rv |= AddProcessingInstruction(pi);
         } else if ((nsXULPrototypeNode::Type)type == nsXULPrototypeNode::eType_Element) {
@@ -374,17 +378,17 @@ GetNodeInfos(nsXULPrototypeElement* aPro
         if (aArray.IndexOf(ni) < 0) {
             if (!aArray.AppendObject(ni)) {
                 return NS_ERROR_OUT_OF_MEMORY;
             }
         }
     }
 
     // Search children
-    for (i = 0; i < aPrototype->mNumChildren; ++i) {
+    for (i = 0; i < aPrototype->mChildren.Length(); ++i) {
         nsXULPrototypeNode* child = aPrototype->mChildren[i];
         if (child->mType == nsXULPrototypeNode::eType_Element) {
             rv = GetNodeInfos(static_cast<nsXULPrototypeElement*>(child),
                               aArray);
             NS_ENSURE_SUCCESS(rv, rv);
         }
     }
 
@@ -423,19 +427,27 @@ nsXULPrototypeDocument::Write(nsIObjectO
     for (i = 0; i < nodeInfoCount; ++i) {
         nsINodeInfo *nodeInfo = nodeInfos[i];
         NS_ENSURE_TRUE(nodeInfo, NS_ERROR_FAILURE);
 
         nsAutoString namespaceURI;
         rv |= nodeInfo->GetNamespaceURI(namespaceURI);
         rv |= aStream->WriteWStringZ(namespaceURI.get());
 
-        nsAutoString qualifiedName;
-        nodeInfo->GetQualifiedName(qualifiedName);
-        rv |= aStream->WriteWStringZ(qualifiedName.get());
+        nsAutoString prefix;
+        nodeInfo->GetPrefix(prefix);
+        PRBool nullPrefix = DOMStringIsNull(prefix);
+        rv |= aStream->WriteBoolean(nullPrefix);
+        if (!nullPrefix) {
+            rv |= aStream->WriteWStringZ(prefix.get());
+        }
+
+        nsAutoString localName;
+        nodeInfo->GetName(localName);
+        rv |= aStream->WriteWStringZ(localName.get());
     }
 
     // Now serialize the document contents
     nsIScriptGlobalObject* globalObject = GetScriptGlobalObject();
     NS_ENSURE_TRUE(globalObject, NS_ERROR_UNEXPECTED);
 
     count = mProcessingInstructions.Length();
     for (i = 0; i < count; ++i) {
@@ -490,17 +502,17 @@ nsXULPrototypeDocument::AddProcessingIns
 {
     NS_PRECONDITION(aPI, "null ptr");
     if (!mProcessingInstructions.AppendElement(aPI)) {
         return NS_ERROR_OUT_OF_MEMORY;
     }
     return NS_OK;
 }
 
-const nsTArray<nsXULPrototypePI*>&
+const nsTArray<nsRefPtr<nsXULPrototypePI> >&
 nsXULPrototypeDocument::GetProcessingInstructions() const
 {
     return mProcessingInstructions;
 }
 
 void
 nsXULPrototypeDocument::AddStyleSheetReference(nsIURI* aURI)
 {
--- a/content/xul/document/src/nsXULPrototypeDocument.h
+++ b/content/xul/document/src/nsXULPrototypeDocument.h
@@ -43,16 +43,17 @@
 #define nsXULPrototypeDocument_h__
 
 #include "nsAutoPtr.h"
 #include "nsCOMArray.h"
 #include "nsCOMPtr.h"
 #include "nsTArray.h"
 #include "nsIScriptGlobalObjectOwner.h"
 #include "nsISerializable.h"
+#include "nsIDocument.h"
 #include "nsCycleCollectionParticipant.h"
 
 class nsIAtom;
 class nsIPrincipal;
 class nsIURI;
 class nsNodeInfoManager;
 class nsXULDocument;
 class nsXULPrototypeElement;
@@ -97,17 +98,17 @@ public:
      * @param aPI an already adrefed PI proto to add. This method takes
      *            ownership of the passed PI.
      */
     nsresult AddProcessingInstruction(nsXULPrototypePI* aPI);
     /**
      * @note GetProcessingInstructions retains the ownership (the PI
      *       protos only get deleted when the proto document is deleted)
      */
-    const nsTArray<nsXULPrototypePI*>& GetProcessingInstructions() const;
+    const nsTArray<nsRefPtr<nsXULPrototypePI> >& GetProcessingInstructions() const;
 
     /**
      * Access the array of style overlays for this document.
      *
      * Style overlays are stylesheets that need to be applied to the
      * document, but are not referenced from within the document. They
      * are currently obtained from the chrome registry via
      * nsIXULOverlayProvider::getStyleOverlays.)
@@ -146,18 +147,18 @@ public:
     // nsIScriptGlobalObjectOwner methods
     virtual nsIScriptGlobalObject* GetScriptGlobalObject();
 
     NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsXULPrototypeDocument,
                                              nsIScriptGlobalObjectOwner)
 
 protected:
     nsCOMPtr<nsIURI> mURI;
-    nsXULPrototypeElement* mRoot;
-    nsTArray<nsXULPrototypePI*> mProcessingInstructions;
+    nsRefPtr<nsXULPrototypeElement> mRoot;
+    nsTArray<nsRefPtr<nsXULPrototypePI> > mProcessingInstructions;
     nsCOMArray<nsIURI> mStyleSheetReferences;
 
     nsRefPtr<nsXULPDGlobalObject> mGlobalObject;
 
     PRPackedBool mLoaded;
     nsTArray< nsRefPtr<nsXULDocument> > mPrototypeWaiters;
 
     nsRefPtr<nsNodeInfoManager> mNodeInfoManager;
--- a/docshell/test/chrome/Makefile.in
+++ b/docshell/test/chrome/Makefile.in
@@ -48,12 +48,13 @@ include $(topsrcdir)/config/rules.mk
 		bug113934_window.xul \
 		test_bug364461.xul \
 		bug364461_window.xul \
 		test_bug396519.xul \
 		bug396519_window.xul \
 		test_bug428288.html \
 		test_bug454235.xul \
 		bug454235-subframe.xul \
+		test_bug456980.xul \
 		$(NULL)
 
 libs:: $(_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/chrome/$(relativesrcdir)
--- a/docshell/test/chrome/bug113934_window.xul
+++ b/docshell/test/chrome/bug113934_window.xul
@@ -1,36 +1,48 @@
 <?xml version="1.0"?>
 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
 <window title="Mozilla Bug 113934" onload="doTheTest()"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <hbox>
-    <vbox>
-      <browser type="content" id="f1" width="300" height="200"/>
-      <browser type="content" id="f2" width="300" height="200"/>
+    <vbox id="box1">
     </vbox>
-    <vbox>
-      <browser type="content" id="f3" width="30" height="200"/>
+    <vbox id="box2">
     </vbox>
     <spacer flex="1"/>
   </hbox>
   
   <!-- test code goes here -->
   <script type="application/javascript"><![CDATA[
     var imports = [ "SimpleTest", "is", "isnot", "ok", "snapshotWindow",
-                    "compareSnapshots" ];
+                    "compareSnapshots", "onerror" ];
     for each (var import in imports) {
       window[import] = window.opener.wrappedJSObject[import];
     }
 
     function $(id) {
       return document.getElementById(id);
     }
 
+    function addBrowser(parent, id, width, height) {
+      var b =
+        document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "browser");
+      var type = window.location.search.slice(1);
+      is(type == "chrome" || type == "content", true, "Unexpected type");
+      b.setAttribute("type", type);
+      b.setAttribute("id", id);
+      b.setAttribute("width", width);
+      b.setAttribute("height", height);
+      $(parent).appendChild(b);
+    }
+    addBrowser("box1", "f1", 300, 200);
+    addBrowser("box1", "f2", 300, 200);
+    addBrowser("box2", "f3", 30, 200);
+
     /** Test for Bug 113934 **/
     var doc1 =
     "data:text/html,<html><body onbeforeunload='document.documentElement.textContent = \"\"' onunload='document.documentElement.textContent = \"\"' onpagehide='document.documentElement.textContent = \"\"'>This is a test</body></html>";
     var doc2 = "data:text/html,<html><body>This is a second test</body></html>";
 
 
     $("f1").setAttribute("src", doc1);
     $("f2").setAttribute("src", doc2);
--- a/docshell/test/chrome/test_bug113934.xul
+++ b/docshell/test/chrome/test_bug113934.xul
@@ -20,14 +20,14 @@ https://bugzilla.mozilla.org/show_bug.cg
      target="_blank">Mozilla Bug 396519</a>
   </body>
 
   <!-- test code goes here -->
   <script type="application/javascript"><![CDATA[
     SimpleTest.waitForExplicitFinish();
 
     addLoadEvent(function() {
-      window.open("bug113934_window.xul", "bug113934",
-            "chrome,width=800,height=800");
+      window.open("bug113934_window.xul?content", "bug113934",
+                  "chrome,width=800,height=800");
     });
 
   ]]></script>
 </window>
new file mode 100644
--- /dev/null
+++ b/docshell/test/chrome/test_bug456980.xul
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
+                 type="text/css"?>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=456980
+-->
+<window title="Mozilla Bug 456980"
+  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+  <script type="application/javascript"
+          src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="application/javascript"
+          src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script>
+
+  <!-- test results are displayed in the html:body -->
+  <body xmlns="http://www.w3.org/1999/xhtml">
+  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=456980"
+     target="_blank">Mozilla Bug 396519</a>
+  </body>
+
+  <!-- test code goes here -->
+  <script type="application/javascript"><![CDATA[
+    SimpleTest.waitForExplicitFinish();
+
+    addLoadEvent(function() {
+      window.open("bug113934_window.xul?chrome", "bug456980",
+                  "chrome,width=800,height=800");
+    });
+
+  ]]></script>
+</window>
--- a/dom/src/base/nsDOMClassInfo.cpp
+++ b/dom/src/base/nsDOMClassInfo.cpp
@@ -7584,23 +7584,20 @@ nsGenericArraySH::Enumerate(nsIXPConnect
   sCurrentlyEnumerating = PR_TRUE;
 
   jsval len_val;
   JSAutoRequest ar(cx);
   JSBool ok = ::JS_GetProperty(cx, obj, "length", &len_val);
 
   if (ok && JSVAL_IS_INT(len_val)) {
     PRInt32 length = JSVAL_TO_INT(len_val);
-    char buf[11];
 
     for (PRInt32 i = 0; ok && i < length; ++i) {
-      PR_snprintf(buf, sizeof(buf), "%d", i);
-
-      ok = ::JS_DefineProperty(cx, obj, buf, JSVAL_VOID, nsnull, nsnull,
-                               JSPROP_ENUMERATE | JSPROP_SHARED);
+      ok = ::JS_DefineElement(cx, obj, i, JSVAL_VOID, nsnull, nsnull,
+                              JSPROP_ENUMERATE | JSPROP_SHARED);
     }
   }
 
   sCurrentlyEnumerating = PR_FALSE;
 
   return ok ? NS_OK : NS_ERROR_UNEXPECTED;
 }
 
--- a/dom/src/base/nsJSEnvironment.cpp
+++ b/dom/src/base/nsJSEnvironment.cpp
@@ -3406,18 +3406,19 @@ nsJSContext::CC()
   sDelayedCCollectCount = 0;
   sGCCount = 0;
   sCCSuspectChanges = 0;
   // nsCycleCollector_collect() will run a ::JS_GC() indirectly, so
   // we do not explicitly call ::JS_GC() here.
   sCollectedObjectsCounts = nsCycleCollector_collect();
   sCCSuspectedCount = nsCycleCollector_suspectedCount();
 #ifdef DEBUG_smaug
-  printf("Collected %u objects, %u suspected objects\n",
-         sCollectedObjectsCounts, sCCSuspectedCount);
+  printf("Collected %u objects, %u suspected objects, took %lldms\n",
+         sCollectedObjectsCounts, sCCSuspectedCount,
+         (PR_Now() - sPreviousCCTime) / PR_USEC_PER_MSEC);
 #endif
 }
 
 //static
 PRBool
 nsJSContext::MaybeCC(PRBool aHigherProbability)
 {
   ++sDelayedCCollectCount;
--- a/dom/src/geolocation/nsGeolocation.cpp
+++ b/dom/src/geolocation/nsGeolocation.cpp
@@ -188,17 +188,17 @@ nsGeolocationRequest::Allow()
       return NS_OK; // silently fail
 
     callbackProxy->HandleEvent(positionError);
 
     // remove the stack
     JSContext* cx;
     stack->Pop(&cx);
 
-    return rv;
+    return NS_OK;  // silently fail
   }
 
   mAllowed = PR_TRUE;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsGeolocationRequest::AllowButFuzz()
--- a/embedding/browser/activex/src/plugin/npwin.cpp
+++ b/embedding/browser/activex/src/plugin/npwin.cpp
@@ -1,22 +1,17 @@
 /* IMPORTANT NOTE - This file has been hacked to add support for NPP_GetValue & NPP_SetValue! */
 
 /* npwin.cpp */
 
 //\\// INCLUDE
 //#include "StdAfx.h"
 
-// netscape
-#ifndef _NPAPI_H_
 #include "npapi.h"
-#endif
-#ifndef _NPUPP_H_
-#include "npupp.h"
-#endif
+#include "npfunctions.h"
 
 //\\// DEFINE
 #ifdef WIN32
     #define NP_EXPORT
 #else
     #define NP_EXPORT _export
 #endif
 
deleted file mode 100644
--- a/embedding/config/xulprefs.mn
+++ /dev/null
@@ -1,102 +0,0 @@
-
-content/global/nsWidgetStateManager.js, toolkit/content/global/nsWidgetStateManager.js
-
-content/communicator/contents.rdf, comm/content/communicator/contents.rdf
-content/communicator/communicator.css, comm/content/communicator/communicator.css
-skin/classic/communicator/communicator.css, classic/skin/classic/communicator/communicator.css
-skin/classic/communicator/brand.css, classic/skin/classic/communicator/brand.css
-skin/classic/communicator/button.css, classic/skin/classic/communicator/button.css
-skin/classic/communicator/prefpanels.css, classic/skin/classic/communicator/prefpanels.css
-skin/classic/global/formatting.css, classic/skin/classic/global/formatting.css
-skin/classic/global/tree/twisty-clsd.gif, classic/skin/classic/global/tree/twisty-clsd.gif
-skin/classic/global/tree/twisty-open.gif, classic/skin/classic/global/tree/twisty-open.gif
-skin/classic/global/arrow/arrow-dn.gif, classic/skin/classic/global/arrow/arrow-dn.gif
-skin/classic/global/arrow/arrow-up.gif, classic/skin/classic/global/arrow/arrow-upes.gif
-skin/classic/global/menulist/menulist-radio.gif, classic/skin/classic/global/menulist/menulist-radio.gif
-skin/classic/global/menulist/menulist-arrow-act.gif, classic/skin/classic/global/menulist/menulist-arrow-act.gif
-skin/classic/global/menu/menu-radio-hov.gif, classic/skin/classic/global/menu/menu-radio-hov.gif
-skin/classic/global/menu/menu-radio.gif, classic/skin/classic/global/menu/menu-radio.gif
-
-content/communicator/pref/pref-advanced.xul, comm/content/communicator/pref/pref-advanced.xul
-content/communicator/pref/pref-appearance.xul, comm/content/communicator/pref/pref-appearance.xul
-content/communicator/pref/pref-applications.xul, comm/content/communicator/pref/pref-applications.xul
-content/communicator/pref/pref-applications.js, comm/content/communicator/pref/pref-applications.js
-content/communicator/pref/pref-applications-edit.xul, comm/content/communicator/pref/pref-applications-edit.xul
-content/communicator/pref/overrideHandler.js, comm/content/communicator/pref/overrideHandler.js
-content/communicator/pref/pref-cache.js, comm/content/communicator/pref/pref-cache.js
-content/communicator/pref/pref-cache.xul, comm/content/communicator/pref/pref-cache.xul
-content/communicator/pref/pref-colors.js, comm/content/communicator/pref/pref-colors.js
-content/communicator/pref/pref-colors.xul, comm/content/communicator/pref/pref-colors.xul
-content/communicator/pref/pref-help.js, comm/content/communicator/pref/pref-help.js
-content/communicator/pref/pref-themes.xul, comm/content/communicator/pref/pref-themes.xul
-content/communicator/pref/pref-themes.js, comm/content/communicator/pref/pref-themes.js
-content/communicator/pref/pref-charset.js, comm/content/communicator/pref/pref-charset.js
-content/communicator/pref/pref-charset.xul, comm/content/communicator/pref/pref-charset.xul
-content/communicator/pref/pref-debug.xul, comm/content/communicator/pref/pref-debug.xul
-content/communicator/pref/pref-debug1.xul, comm/content/communicator/pref/pref-debug1.xul
-content/communicator/pref/pref-debug2.xul, comm/content/communicator/pref/pref-debug2.xul
-content/communicator/pref/pref-fonts.js, comm/content/communicator/pref/pref-fonts.js
-content/communicator/pref/pref-fonts.xul, comm/content/communicator/pref/pref-fonts.xul
-content/communicator/pref/pref-calibrate-screen.xul, comm/content/communicator/pref/pref-calibrate-screen.xul
-content/communicator/pref/pref-history.xul, comm/content/communicator/pref/pref-history.xul
-content/communicator/pref/pref-languages.xul, comm/content/communicator/pref/pref-languages.xul
-content/communicator/pref/pref-languages-add.xul, comm/content/communicator/pref/pref-languages-add.xul
-content/communicator/pref/pref-languages.js, comm/content/communicator/pref/pref-languages.js
-content/communicator/pref/pref-navigator.js, comm/content/communicator/pref/pref-navigator.js
-content/communicator/pref/pref-navigator.xul, comm/content/communicator/pref/pref-navigator.xul
-content/communicator/pref/pref-offline.xul, comm/content/communicator/pref/pref-offline.xul
-content/communicator/pref/pref-proxies.js, comm/content/communicator/pref/pref-proxies.js
-content/communicator/pref/pref-policies.xul, comm/content/communicator/pref/pref-policies.xul
-content/communicator/pref/pref-proxies.xul, comm/content/communicator/pref/pref-proxies.xul
-content/communicator/pref/pref-scripts.xul, comm/content/communicator/pref/pref-scripts.xul
-content/communicator/pref/pref-scripts.js, comm/content/communicator/pref/pref-scripts.js
-content/communicator/pref/pref-search.js, comm/content/communicator/pref/pref-search.js
-content/communicator/pref/pref-search.xul, comm/content/communicator/pref/pref-search.xul
-content/communicator/pref/pref-security.xul, comm/content/communicator/pref/pref-security.xul
-content/communicator/pref/pref-smart_browsing.xul, comm/content/communicator/pref/pref-smart_browsing.xul
-content/communicator/pref/pref-smart_browsing.js, comm/content/communicator/pref/pref-smart_browsing.js
-content/communicator/pref/pref-smart_browsing-ac.xul, comm/content/communicator/pref/pref-smart_browsing-ac.xul
-content/communicator/pref/pref-smartupdate.xul, comm/content/communicator/pref/pref-smartupdate.xul
-content/communicator/pref/pref-tabs.xul, comm/content/communicator/pref/pref-tabs.xul
-content/communicator/pref/pref.xul, comm/content/communicator/pref/pref.xul
-content/communicator/pref/nsPrefWindow.js, comm/content/communicator/pref/nsPrefWindow.js
-content/communicator/pref/preftree.xul, comm/content/communicator/pref/preftree.xul
-content/communicator/pref/pref-mousewheel.xul, comm/content/communicator/pref/pref-mousewheel.xul
-content/communicator/pref/pref-winhooks.xul, comm/content/communicator/pref/pref-winhooks.xul
-content/communicator/pref/pref-winhooks.js, comm/content/communicator/pref/pref-winhooks.js
-content/communicator/pref/platformPrefOverlay.xul, comm/content/communicator/pref/platformPrefOverlay.xul
-
-locale/XXXX/communicator/contents.rdf, XXXX/locale/XXXX/communicator/contents.rdf
-locale/XXXX/communicator/pref/pref-advanced.dtd, XXXX/locale/XXXX/communicator/pref/pref-advanced.dtd
-locale/XXXX/communicator/pref/pref-appearance.dtd, XXXX/locale/XXXX/communicator/pref/pref-appearance.dtd
-locale/XXXX/communicator/pref/pref-applications.dtd, (XXXX/locale/XXXX/communicator/pref/pref-applications.dtd
-locale/XXXX/communicator/pref/pref-applications.properties, XXXX/locale/XXXX/communicator/pref/pref-applications.properties
-locale/XXXX/communicator/pref/pref-applications-edit.dtd, XXXX/locale/XXXX/communicator/pref/pref-applications-edit.dtd
-locale/XXXX/communicator/pref/pref-cache.dtd, XXXX/locale/XXXX/communicator/pref/pref-cache.dtd
-locale/XXXX/communicator/pref/pref-charset.dtd, XXXX/locale/XXXX/communicator/pref/pref-charset.dtd
-locale/XXXX/communicator/pref/pref-colors.dtd, XXXX/locale/XXXX/communicator/pref/pref-colors.dtd
-locale/XXXX/communicator/pref/pref-themes.dtd, XXXX/locale/XXXX/communicator/pref/pref-themes.dtd
-locale/XXXX/communicator/pref/pref-debug.dtd, XXXX/locale/XXXX/communicator/pref/pref-debug.dtd
-locale/XXXX/communicator/pref/pref-debug1.dtd, XXXX/locale/XXXX/communicator/pref/pref-debug1.dtd
-locale/XXXX/communicator/pref/pref-debug2.dtd, XXXX/locale/XXXX/communicator/pref/pref-debug2.dtd
-locale/XXXX/communicator/pref/pref-fonts.dtd, XXXX/locale/XXXX/communicator/pref/pref-fonts.dtd
-locale/XXXX/communicator/pref/pref-history.dtd, XXXX/locale/XXXX/communicator/pref/pref-history.dtd
-locale/XXXX/communicator/pref/pref-languages.dtd, XXXX/locale/XXXX/communicator/pref/pref-languages.dtd
-locale/XXXX/communicator/pref/pref-languages.properties, XXXX/locale/XXXX/communicator/pref/pref-languages.properties
-locale/XXXX/communicator/pref/pref-navigator.dtd, XXXX/locale/XXXX/communicator/pref/pref-navigator.dtd
-locale/XXXX/communicator/pref/pref-offline.dtd, XXXX/locale/XXXX/communicator/pref/pref-offline.dtd
-locale/XXXX/communicator/pref/pref-policies.dtd, XXXX/locale/XXXX/communicator/pref/pref-policies.dtd
-locale/XXXX/communicator/pref/pref-proxies.dtd, XXXX/locale/XXXX/communicator/pref/pref-proxies.dtd
-locale/XXXX/communicator/pref/pref-scripts.dtd, XXXX/locale/XXXX/communicator/pref/pref-scripts.dtd
-locale/XXXX/communicator/pref/pref-search.dtd, XXXX/locale/XXXX/communicator/pref/pref-search.dtd
-locale/XXXX/communicator/pref/pref-security.dtd, XXXX/locale/XXXX/communicator/pref/pref-security.dtd
-locale/XXXX/communicator/pref/pref-smart_browsing.dtd, XXXX/locale/XXXX/communicator/pref/pref-smart_browsing.dtd
-locale/XXXX/communicator/pref/pref-smartupdate.dtd, XXXX/locale/XXXX/communicator/pref/pref-smartupdate.dtd
-locale/XXXX/communicator/pref/pref-tabs.dtd, XXXX/locale/XXXX/communicator/pref/pref-tabs.dtd
-locale/XXXX/communicator/pref/prefutilities.properties, XXXX/locale/XXXX/communicator/pref/prefutilities.properties
-locale/XXXX/communicator/pref/preftree.dtd, XXXX/locale/XXXX/communicator/pref/preftree.dtd
-locale/XXXX/communicator/pref/pref.dtd, XXXX/locale/XXXX/communicator/pref/pref.dtd
-locale/XXXX/communicator/pref/pref-mousewheel.dtd, XXXX/locale/XXXX/communicator/pref/pref-mousewheel.dtd
-locale/XXXX/communicator/pref/pref-winhooks.dtd, XXXX/locale/XXXX/communicator/pref/pref-winhooks.dtd
-locale/XXXX/global/dialog.properties, XXXX/locale/XXXX/global/dialog.properties.
-
--- a/gfx/thebes/public/gfxQtPlatform.h
+++ b/gfx/thebes/public/gfxQtPlatform.h
@@ -68,17 +68,18 @@ public:
 
     nsresult ResolveFontName(const nsAString& aFontName,
                              FontResolverCallback aCallback,
                              void *aClosure, PRBool& aAborted);
 
     nsresult GetStandardFamilyName(const nsAString& aFontName, nsAString& aFamilyName);
 
     gfxFontGroup *CreateFontGroup(const nsAString &aFamilies,
-                                  const gfxFontStyle *aStyle);
+                                  const gfxFontStyle *aStyle,
+                                  gfxUserFontSet* aUserFontSet);
 
     FontFamily *FindFontFamily(const nsAString& aName);
     FontEntry *FindFontEntry(const nsAString& aFamilyName, const gfxFontStyle& aFontStyle);
 
     static PRInt32 DPI() {
         if (sDPI == -1) {
             InitDPI();
         }
--- a/gfx/thebes/src/gfxQtPlatform.cpp
+++ b/gfx/thebes/src/gfxQtPlatform.cpp
@@ -332,17 +332,18 @@ gfxQtPlatform::ResolveFontName(const nsA
 nsresult
 gfxQtPlatform::GetStandardFamilyName(const nsAString& aFontName, nsAString& aFamilyName)
 {
     return sFontconfigUtils->GetStandardFamilyName(aFontName, aFamilyName);
 }
 
 gfxFontGroup *
 gfxQtPlatform::CreateFontGroup(const nsAString &aFamilies,
-                               const gfxFontStyle *aStyle)
+                               const gfxFontStyle *aStyle,
+                               gfxUserFontSet* aUserFontSet)
 {
     return new gfxFT2FontGroup(aFamilies, aStyle);
 }
 
 /* static */
 void
 gfxQtPlatform::InitDPI()
 {
--- a/intl/unicharutil/util/nsCompressedCharMap.cpp
+++ b/intl/unicharutil/util/nsCompressedCharMap.cpp
@@ -567,18 +567,19 @@ MapToCCMapExt(PRUint32* aBmpPlaneMap, PR
   // Add an empty plane ccmap
   // A totally empty plane ccmap can be represented by 16 *(PRUint16)0. 
   totalSize += CCMAP_EMPTY_SIZE_PER_INT16;
 
   // Create ccmap for other planes
   for (i = 0; i < aOtherPlaneNum; i++) {
     if (aOtherPlaneMaps[i]) {
       otherPlaneObj[i] = new nsCompressedCharMap();
-      NS_ASSERTION(otherPlaneObj, "unable to create new nsCompressedCharMap");
-      if(otherPlaneObj) {
+      NS_ASSERTION(otherPlaneObj[i],
+                   "unable to create new nsCompressedCharMap");
+      if(otherPlaneObj[i]) {
         otherPlaneObj[i]->SetChars(aOtherPlaneMaps[i]);
         totalSize += otherPlaneObj[i]->GetSize();
       }
     } else {
       otherPlaneObj[i] = nsnull;
     }
   }
 
--- a/js/src/xpconnect/src/xpccomponents.cpp
+++ b/js/src/xpconnect/src/xpccomponents.cpp
@@ -3515,65 +3515,67 @@ xpc_EvalInSandbox(JSContext *cx, JSObjec
     if (!filename) {
         // Default the filename to the codebase.
         filename = jsPrincipals->codebase;
         lineNo = 1;
     }
 
     nsresult rv = NS_OK;
 
-    AutoJSRequestWithNoCallContext req(sandcx->GetJSContext());
-    JSString *str = nsnull;
-    if (!JS_EvaluateUCScriptForPrincipals(sandcx->GetJSContext(), sandbox,
-                                          jsPrincipals,
-                                          reinterpret_cast<const jschar *>
-                                                          (PromiseFlatString(source).get()),
-                                          source.Length(), filename, lineNo,
-                                          rval) ||
-        (returnStringOnly &&
-         !JSVAL_IS_VOID(*rval) &&
-         !(str = JS_ValueToString(sandcx->GetJSContext(), *rval)))) {
-        jsval exn;
-        if (JS_GetPendingException(sandcx->GetJSContext(), &exn)) {
-            // Stash the exception in |cx| so we can execute code on
-            // sandcx without a pending exception.
-            {
-                AutoJSSuspendRequestWithNoCallContext sus(sandcx->GetJSContext());
-                AutoJSRequestWithNoCallContext cxreq(cx);
-
-                JS_SetPendingException(cx, exn);
+    {
+        AutoJSRequestWithNoCallContext req(sandcx->GetJSContext());
+        JSString *str = nsnull;
+        if (!JS_EvaluateUCScriptForPrincipals(sandcx->GetJSContext(), sandbox,
+                                              jsPrincipals,
+                                              reinterpret_cast<const jschar *>
+                                                              (PromiseFlatString(source).get()),
+                                              source.Length(), filename, lineNo,
+                                              rval) ||
+            (returnStringOnly &&
+             !JSVAL_IS_VOID(*rval) &&
+             !(str = JS_ValueToString(sandcx->GetJSContext(), *rval)))) {
+            jsval exn;
+            if (JS_GetPendingException(sandcx->GetJSContext(), &exn)) {
+                // Stash the exception in |cx| so we can execute code on
+                // sandcx without a pending exception.
+                {
+                    AutoJSSuspendRequestWithNoCallContext sus(sandcx->GetJSContext());
+                    AutoJSRequestWithNoCallContext cxreq(cx);
+
+                    JS_SetPendingException(cx, exn);
+                }
+
+                JS_ClearPendingException(sandcx->GetJSContext());
+                if (returnStringOnly) {
+                    // The caller asked for strings only, convert the
+                    // exception into a string.
+                    str = JS_ValueToString(sandcx->GetJSContext(), exn);
+
+                    AutoJSSuspendRequestWithNoCallContext sus(sandcx->GetJSContext());
+                    AutoJSRequestWithNoCallContext cxreq(cx);
+                    if (str) {
+                        // We converted the exception to a string. Use that
+                        // as the value exception.
+                        JS_SetPendingException(cx, STRING_TO_JSVAL(str));
+                    } else {
+                        JS_ClearPendingException(cx);
+                        rv = NS_ERROR_FAILURE;
+                    }
+                }
+
+                // Clear str so we don't confuse callers.
+                str = nsnull;
+            } else {
+                rv = NS_ERROR_OUT_OF_MEMORY;
             }
-
-            JS_ClearPendingException(sandcx->GetJSContext());
-            if (returnStringOnly) {
-                // The caller asked for strings only, convert the
-                // exception into a string.
-                str = JS_ValueToString(sandcx->GetJSContext(), exn);
-
-                AutoJSSuspendRequestWithNoCallContext sus(sandcx->GetJSContext());
-                AutoJSRequestWithNoCallContext cxreq(cx);
-                if (str) {
-                    // We converted the exception to a string. Use that
-                    // as the value exception.
-                    JS_SetPendingException(cx, STRING_TO_JSVAL(str));
-                } else {
-                    JS_ClearPendingException(cx);
-                    rv = NS_ERROR_FAILURE;
-                }
-            }
-
-            // Clear str so we don't confuse callers.
-            str = nsnull;
-        } else {
-            rv = NS_ERROR_OUT_OF_MEMORY;
         }
-    }
-
-    if (str) {
-        *rval = STRING_TO_JSVAL(str);
+
+        if (str) {
+            *rval = STRING_TO_JSVAL(str);
+        }
     }
 
     if (stack) {
         stack->Pop(nsnull);
     }
 
     JSPRINCIPALS_DROP(cx, jsPrincipals);
 
--- a/js/tests/bisect.sh
+++ b/js/tests/bisect.sh
@@ -154,17 +154,17 @@ case $bisect_branch in
         localbad=`hg -R $REPO id -n -r $bisect_bad`
 
         # if good < bad, then we are searching for a regression, 
         # i.e. the first bad changeset 
         # if bad < good, then we are searching for a fix.
         # i.e. the first good changeset. so we reverse the nature
         # of good and bad.
 
-        if [[ $localgood < $localbad ]]; then
+        if (( $localgood < $localbad )); then
             cat <<EOF
 
 searching for a regression between $localgood:$bisect_good and $localbad:$bisect_bad
 the result is considered good when the test result does not appear in the failure log, bad otherwise.
 the bisection is searching for the transition from test failure not found, to test failure found.
 
 EOF
             searchtype="regression"
--- a/js/tests/browser.js
+++ b/js/tests/browser.js
@@ -606,16 +606,17 @@ function jsTestDriverBrowserInit()
 
   // testpath http://machine/path-to-suite/sub-suite/test.js
   var testpath  = matches[1];
   var attribute = matches[2];
   var value     = matches[3];
 
   if (testpath)
   {
+    testpath = decodeURIComponent(testpath);
     gTestPath = testpath;
   }
 
   var ise4x = /e4x\//.test(testpath);
 
   var gczealmatches = /gczeal=([0-9]*)/.exec(document.location.search);
 
   if (gczealmatches)
@@ -630,17 +631,42 @@ function jsTestDriverBrowserInit()
   {
     jit(true);
   }
 
   var versionmatches = /version=([.0-9]*)/.exec(value);
 
   if (!versionmatches)
   {
-    gVersion = 150;
+    value = 'text/javascript;version=';
+    if (testpath.match(/^js1_6/))
+    {
+      gVersion = 160;
+      value += '1.6';
+    }
+    else if (testpath.match(/^js1_7/))
+    {
+      gVersion = 170;
+      value += '1.7';
+    }
+    else if (testpath.match(/^js1_8/))
+    {
+      gVersion = 180;
+      value += '1.8';
+    }
+    else if (testpath.match(/^js1_8_1/))
+    {
+      gVersion = 180;
+      value += '1.8';
+    }
+    else
+    {
+      gVersion = 150;
+      value += '1.5';
+    }
   }
   else
   {
     gVersion = 10*parseInt(versionmatches[1].replace(/\./g, ''));
   }
 
   var testpathparts = testpath.split(/\//);
 
--- a/js/tests/js1_5/Regress/regress-452573-02.js
+++ b/js/tests/js1_5/Regress/regress-452573-02.js
@@ -30,17 +30,17 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
-var gTestfile = 'regress-452573-01.js';
+var gTestfile = 'regress-452573-02.js';
 //-----------------------------------------------------------------------------
 var BUGNUMBER = 452573;
 var summary = 'Do not assert with JIT: "(((rmask(rr) & FpRegs) != 0))"';
 var actual = 'No Crash';
 var expect = 'No Crash';
 
 //-----------------------------------------------------------------------------
 test();
--- a/js/tests/js1_5/extensions/regress-443569.js
+++ b/js/tests/js1_5/extensions/regress-443569.js
@@ -30,17 +30,17 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
-var gTestfile = 'regress-443569-01.js';
+var gTestfile = 'regress-443569.js';
 //-----------------------------------------------------------------------------
 var BUGNUMBER = 443569;
 var summary = 'Do not assert: OBJ_IS_NATIVE(obj)';
 var actual = 'No Crash';
 var expect = 'No Crash';
 
 
 printBugNumber(BUGNUMBER);
--- a/js/tests/js1_7/regress/regress-350387.js
+++ b/js/tests/js1_7/regress/regress-350387.js
@@ -44,27 +44,27 @@ var expect = '';
 
 expect = undefined + '';
 actual = '';
 let (x = 2)
 {
   var x;
 }
 actual = x + '';
-reportCompare(expect, actual, summary);
+reportCompare(expect, actual, summary + ': 1');
 
 //-----------------------------------------------------------------------------
 test();
 //-----------------------------------------------------------------------------
 
 function test()
 {
   enterFunc ('test');
   printBugNumber(BUGNUMBER);
   printStatus (summary);
 
   expect = undefined + '';
   actual = '';
   (function () { let (x = 2) { var x; } actual = x + ''; })(); 
-  reportCompare(expect, actual, summary);
+  reportCompare(expect, actual, summary + ': 2');
 
   exitFunc ('test');
 }
--- a/js/tests/public-failures.txt
+++ b/js/tests/public-failures.txt
@@ -1,23 +1,21 @@
 TEST_ID=e4x/Expressions/11.1.4-08.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 50 of test - 11.1.4 - XML Initializer - {} Expressions - 08 reason: Expected value 'true', Actual value 'false'
 TEST_ID=e4x/Expressions/11.1.4-08.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 51 of test - 11.1.4 - XML Initializer - {} Expressions - 08 reason: Expected value 'true', Actual value 'false'
 TEST_ID=e4x/Expressions/11.1.4-08.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 53 of test - 11.1.4 - XML Initializer - {} Expressions - 08 reason: Expected value 'true', Actual value 'false'
 TEST_ID=e4x/Expressions/11.1.4-08.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 54 of test - 11.1.4 - XML Initializer - {} Expressions - 08 reason: Expected value 'true', Actual value 'false'
 TEST_ID=e4x/Expressions/11.1.4-08.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 56 of test - 11.1.4 - XML Initializer - {} Expressions - 08 reason: Expected value 'true', Actual value 'false'
 TEST_ID=e4x/GC/regress-324278.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=e4x/GC/regress-324278.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=e4x/GC/regress-324278.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=e4x/GC/regress-324278.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=e4x/GC/regress-324278.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=e4x/GC/regress-324278.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/e4x/GC/regress-324278.js:`.``*`: out of memory
 TEST_ID=e4x/GC/regress-324278.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/e4x/GC/regress-324278.js:`.``*`: out of memory
 TEST_ID=e4x/Global/13.1.2.1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 4 of test - 13.1.2.1 - isXMLName() reason: Expected value 'exception', Actual value 'no exception'
 TEST_ID=e4x/Global/13.1.2.1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 6 of test - 13.1.2.1 - isXMLName() reason: Expected value '', Actual value '0xAA-0xAA : Invalid char accepted as start : Invalid Char accepted as other NL0xB5-0xB5 : Invalid char accepted as start : Invalid Char accepted as other NL0xB7-0xB7 : Other char not acceptedNL0xBA-0xBA : Invalid char accepted as start : Invalid Char accepted as other NL0x132-0x133 : Invalid char accepted as start : Invalid Char accepted as other NL0x13F-0x140 : Invalid char accepted as start : Invalid Char accepted as other NL0x149-0x149 : Invalid char accepted as start : Invalid Char accepted as other NL0x17F-0x17F : Invalid char accepted as start : Invalid Char accepted as other NL0x1C4-0x1CC : Invalid char accepted as start : Invalid Char accepted as other NL0x1F1-0x1F3 : Invalid char accepted as start : Invalid Char accepted as other NL0x2B0-0x2B8 : Invalid Char accepted as other NL0x2BB-0x2C1 : Start char not acceptedNL0x2E0-0x2E4 : Invalid Char accepted as other NL0x37A-0x37A : Invalid Char accepted as other NL0x387-0x387 : Other char not acceptedNL0x559-0x559 : Start char not acceptedNL0x587-0x587 : Invalid char accepted as start : Invalid Char accepted as other NL0x6E5-0x6E6 : Start char not acceptedNL0xEDC-0xEDD : Invalid char accepted as start : Invalid Char accepted as other NL0x1101-0x1101 : Invalid char accepted as start : Invalid Char accepted as other NL0x1104-0x1104 : Invalid char accepted as start : Invalid Char accepted as other NL0x1108-0x1108 : Invalid char accepted as start : Invalid Char accepted as other NL0x110A-0x110A : Invalid char accepted as start : Invalid Char accepted as other NL0x110D-0x110D : Invalid char accepted as start : Invalid Char accepted as other NL0x1113-0x113B : Invalid char accepted as start : Invalid Char accepted as other NL0x113D-0x113D : Invalid char accepted as start : Invalid Char accepted as other NL0x113F-0x113F : Invalid char accepted as start : Invalid Char accepted as other NL0x1141-0x114B : Invalid char accepted as start : Invalid Char accepted as other NL0x114D-0x114D : Invalid char accepted as start : Invalid Char accepted as other NL0x114F-0x114F : Invalid char accepted as start : Invalid Char accepted as other NL0x1151-0x1153 : Invalid char accepted as start : Invalid Char accepted as other NL0x1156-0x1158 : Invalid char accepted as start : Invalid Char accepted as other NL0x1162-0x1162 : Invalid char accepted as start : Invalid Char accepted as other NL0x1164-0x1164 : Invalid char accepted as start : Invalid Char accepted as other NL0x1166-0x1166 : Invalid char accepted as start : Invalid Char accepted as other NL0x1168-0x1168 : Invalid char accepted as start : Invalid Char accepted as other NL0x116A-0x116C : Invalid char accepted as start : Invalid Char accepted as other NL0x116F-0x1171 : Invalid char accepted as start : Invalid Char accepted as other NL0x1174-0x1174 : Invalid char accepted as start : Invalid Char accepted as other NL0x1176-0x119D : Invalid char accepted as start : Invalid Char accepted as other NL0x119F-0x11A2 : Invalid char accepted as start : Invalid Char accepted as other NL0x11A9-0x11AA : Invalid char accepted as start : Invalid Char accepted as other NL0x11AC-0x11AD : Invalid char accepted as start : Invalid Char accepted as other NL0x11B0-0x11B6 : Invalid char accepted as start : Invalid Char accepted as other NL0x11B9-0x11B9 : Invalid char accepted as start : Invalid Char accepted as other NL0x11BB-0x11BB : Invalid char accepted as start : Invalid Char accepted as other NL0x11C3-0x11EA : Invalid char accepted as start : Invalid Char accepted as other NL0x11EC-0x11EF : Invalid char accepted as start : Invalid Char accepted as other NL0x11F1-0x11F8 : Invalid char accepted as start : Invalid Char accepted as other NL0x207F-0x207F : Invalid char accepted as start : Invalid Char accepted as other NL0x20DD-0x20E0 : Invalid Char accepted as other NL0x2102-0x2102 : Invalid char accepted as start : Invalid Char accepted as other NL0x2107-0x2107 : Invalid char accepted as start : Invalid Char accepted as other NL0x210A-0x2113 : Invalid char accepted as start : Invalid Char accepted as other NL0x2115-0x2115 : Invalid char accepted as start : Invalid Char accepted as other NL0x2118-0x211D : Invalid char accepted as start : Invalid Char accepted as other NL0x2124-0x2124 : Invalid char accepted as start : Invalid Char accepted as other NL0x2128-0x2128 : Invalid char accepted as start : Invalid Char accepted as other NL0x212C-0x212D : Invalid char accepted as start : Invalid Char accepted as other NL0x212F-0x2131 : Invalid char accepted as start : Invalid Char accepted as other NL0x2133-0x2138 : Invalid char accepted as start : Invalid Char accepted as other NL0x2160-0x217F : Invalid char accepted as start : Invalid Char accepted as other NL0x309B-0x309C : Invalid Char accepted as other NL0x3131-0x318E : Invalid char accepted as start : Invalid Char accepted as other NL0xF900-0xFA2D : Invalid char accepted as start : Invalid Char accepted as other NL0xFB00-0xFB06 : Invalid char accepted as start : Invalid Char accepted as other NL0xFB13-0xFB17 : Invalid char accepted as start : Invalid Char accepted as other NL0xFB1E-0xFB1E : Invalid Char accepted as other NL0xFB1F-0xFB28 : Invalid char accepted as start : Invalid Char accepted as other NL0xFB2A-0xFB36 : Invalid char accepted as start : Invalid Char accepted as other NL0xFB38-0xFB3C : Invalid char accepted as start : Invalid Char accepted as other NL0xFB3E-0xFB3E : Invalid char accepted as start : Invalid Char accepted as other NL0xFB40-0xFB41 : Invalid char accepted as start : Invalid Char accepted as other NL0xFB43-0xFB44 : Invalid char accepted as start : Invalid Char accepted as other NL0xFB46-0xFBB1 : Invalid char accepted as start : Invalid Char accepted as other NL0xFBD3-0xFD3D : Invalid char accepted as start : Invalid Char accepted as other NL0xFD50-0xFD8F : Invalid char accepted as start : Invalid Char accepted as other NL0xFD92-0xFDC7 : Invalid char accepted as start : Invalid Char accepted as other NL0xFDF0-0xFDFB : Invalid char accepted as start : Invalid Char accepted as other NL0xFE20-0xFE23 : Invalid Char accepted as other NL0xFE70-0xFE72 : Invalid char accepted as start : Invalid Char accepted as other NL0xFE74-0xFE74 : Invalid char accepted as start : Invalid Char accepted as other NL0xFE76-0xFEFC : Invalid char accepted as start : Invalid Char accepted as other NL0xFF10-0xFF19 : Invalid Char accepted as other NL0xFF21-0xFF3A : Invalid char accepted as start : Invalid Char accepted as other NL0xFF41-0xFF5A : Invalid char accepted as start : Invalid Char accepted as other NL0xFF66-0xFF6F : Invalid char accepted as start : Invalid Char accepted as other NL0xFF70-0xFF70 : Invalid Char accepted as other NL0xFF71-0xFF9D : Invalid char accepted as start : Invalid Char accepted as other NL0xFF9E-0xFF9F : Invalid Char accepted as other NL0xFFA0-0xFFBE : Invalid char accepted as start : Invalid Char accepted as other NL0xFFC2-0xFFC7 : Invalid char accepted as start : Invalid Char accepted as other NL0xFFCA-0xFFCF : Invalid char accepted as start : Invalid Char accepted as other NL0xFFD2-0xFFD7 : Invalid char accepted as start : Invalid Char accepted as other NL0xFFDA-0xFFDC : Invalid char accepted as start : Invalid Char accepted as other NL'
 TEST_ID=e4x/Namespace/regress-292863.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test - Undeclaring namespace prefix should cause parse error reason: Expected value 'error', Actual value 'no error'
-TEST_ID=e4x/Regress/regress-319872.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=e4x/Regress/regress-319872.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=e4x/Regress/regress-319872.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=e4x/Regress/regress-319872.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=e4x/Regress/regress-352223.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test - Reject invalid spaces in tags reason: Expected value 'SyntaxError: invalid XML name', Actual value ''
 TEST_ID=e4x/Regress/regress-352223.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 2 of test - Reject invalid spaces in tags reason: Expected value 'SyntaxError: invalid XML tag syntax', Actual value ''
 TEST_ID=e4x/Regress/regress-369032.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: kid2->parent == xml || !kid2->parent, at `.``*`jsxml.c:
 TEST_ID=e4x/Regress/regress-369032.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: kid2->parent == xml || !kid2->parent, at `.``*`jsxml.c:
 TEST_ID=e4x/Regress/regress-369032.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
@@ -36,39 +34,34 @@ TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANC
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 23 of test - 13.4.4.26 - XML normalize() reason: Expected value '2', Actual value '1'
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 3 of test - 13.4.4.26 - XML normalize() reason: Expected value '<alpha> <bravo> one </bravo> </alpha>', Actual value '<alpha><bravo> one </bravo></alpha>'
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 4 of test - 13.4.4.26 - XML normalize() reason: Expected value '<alpha>  </alpha>', Actual value '<alpha/>'
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 5 of test - 13.4.4.26 - XML normalize() reason: Expected value '2', Actual value '0'
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 6 of test - 13.4.4.26 - XML normalize() reason: Expected value '<alpha>  </alpha>', Actual value '<alpha/>'
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 7 of test - 13.4.4.26 - XML normalize() reason: Expected value '1', Actual value '0'
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 8 of test - 13.4.4.26 - XML normalize() reason: Expected value '<alpha>  <bravo> fun </bravo></alpha>', Actual value '<alpha><bravo> fun </bravo></alpha>'
 TEST_ID=e4x/XML/13.4.4.26.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 9 of test - 13.4.4.26 - XML normalize() reason: Expected value '2', Actual value '1'
-TEST_ID=e4x/XML/regress-324422-2.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=e4x/XML/regress-324422-2.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=e4x/XML/regress-324422-2.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/e4x/XML/regress-324422-2.js:`.``*`: out of memory
-TEST_ID=e4x/XML/regress-324422-2.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported`.``*`/e4x/XML/regress-324422-2.js:`.``*`: out of memory
 TEST_ID=e4x/XML/regress-376773.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=xmlsimple.stringmethod === xmlsimple.function::stringmethod Section 61 reason: `.``*`/e4x/XML/regress-376773.js:`.``*`: reference to undefined XML name @mozilla.org/js/function::charAt
 TEST_ID=e4x/XML/regress-376773.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=Section 61 of test - xmlsimple.stringmethod === xmlsimple.function::stringmethod reason:
 TEST_ID=e4x/decompilation/decompile-xml-escapes.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test - Decompiler escapes line breaks/backslashes in E4X literals reason: Type mismatch, expected type boolean, actual type string Expected value 'false', Actual value ''function anonymous() {NL    return <![CDATA[\\\\]]>;NL}' does not contain '<![CDATA[\\]]>'!'
 TEST_ID=e4x/decompilation/decompile-xml-escapes.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test - Decompiler escapes line breaks/backslashes in E4X literals reason: Type mismatch, expected type boolean, actual type string Expected value 'false', Actual value ''function anonymous() {NL    return <?f bNLNLcNLc?>;NL}' does not contain '<?f bNLNLcNLc?>'!'
 TEST_ID=e4x/decompilation/decompile-xml-escapes.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test - Decompiler escapes line breaks/backslashes in E4X literals reason: Type mismatch, expected type boolean, actual type string Expected value 'false', Actual value ''function anonymous() {NL    return <?f bNLNLcNLc?>;NL}' does not contain '<?f bNLNLcNLc?>'!'
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 11 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . n : : z ) ; } ', Actual value ' function ( ) { new x ( y ) . n : : z ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 12 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . n : : z ) ; } ', Actual value ' function ( ) { new x ( y ) . n : : z ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 14 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . n : : [ z ] ) ; } ', Actual value ' function ( ) { new x ( y ) . n : : [ z ] ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 15 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . n : : [ z ] ) ; } ', Actual value ' function ( ) { new x ( y ) . n : : [ z ] ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 2 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) [ z ] ) ; } ', Actual value ' function ( ) { new x ( y ) [ z ] ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 3 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) [ z ] ) ; } ', Actual value ' function ( ) { new x ( y ) [ z ] ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 5 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . @ a ) ; } ', Actual value ' function ( ) { new x ( y ) . @ a ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 6 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . @ a ) ; } ', Actual value ' function ( ) { new x ( y ) . @ a ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 8 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . @ [ n : : a ] ) ; } ', Actual value ' function ( ) { new x ( y ) . @ [ n : : a ] ; } '
 TEST_ID=e4x/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 9 of test - Decompilation with new operator redeaux reason: Expected value ' function ( ) { new ( x ( y ) . @ [ n : : a ] ) ; } ', Actual value ' function ( ) { new x ( y ) . @ [ n : : a ] ; } '
 TEST_ID=e4x/decompilation/regress-352789.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test - Decompilation of new and .@ reason: Expected value ' function ( ) { return new ( a ( ) . @ z ) ; } ', Actual value ' function ( ) { return new a . @ z ; } '
-TEST_ID=e4x/decompilation/regress-355474-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=e4x/decompilation/regress-355474-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=e4x/decompilation/regress-355474-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=;
-TEST_ID=e4x/decompilation/regress-355474-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test - Iterating over XML with WAY_TOO_MUCH_GC reason: Expected value ' function ( ) { for each ( var z in <y/> ) { print ( z ) ; } } ', Actual value ' function ( ) { while ( <y/> ) { print ( z ) ; } } '
 TEST_ID=e4x/decompilation/regress-429249.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=trap should not change decompilation <x/> : after trap reason: Expected value ' function g ( ) { return <x/>; } ', Actual value ' function g ( ) { return "<x/>"; } '
 TEST_ID=e4x/extensions/regress-337226.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=function::globalfunction Section  reason: `.``*`/e4x/extensions/regress-337226.js:`.``*`: reference to undefined XML name @mozilla.org/js/function::parseInt
 TEST_ID=e4x/extensions/regress-337226.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/e4x/extensions/regress-337226.js:`.``*`: ReferenceError: reference to undefined XML name @mozilla.org/js/function::parseInt
 TEST_ID=e4x/extensions/regress-374025.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
 TEST_ID=e4x/extensions/regress-374025.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=e4x/extensions/regress-374025.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=e4x/extensions/regress-374025.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/e4x/extensions/regress-374025.js:`.``*`: out of memory
 TEST_ID=e4x/extensions/regress-374025.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 11, TEST_DESCRIPTION=
@@ -100,27 +93,29 @@ TEST_ID=ecma/TypeConversion/9.3.1-3.js, 
 TEST_ID=ecma/TypeConversion/9.3.1-3.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=-s2 == -Infinity || -s2 == -1.7976931348623157e+308  reason: wrong value
 TEST_ID=ecma/TypeConversion/9.3.1-3.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=parseInt(s2) == Infinity || parseInt(s2) == 1.7976931348623157e+308 reason: wrong value
 TEST_ID=ecma/TypeConversion/9.3.1-3.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=parseInt(s2,10) == Infinity || parseInt(s2,10) == 1.7976931348623157e+308 reason: wrong value
 TEST_ID=ecma/TypeConversion/9.3.1-3.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=-s2 == -Infinity || -s2 == -1.7976931348623157e+308  reason: wrong value
 TEST_ID=ecma/TypeConversion/9.3.1-3.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=parseInt(s2) == Infinity || parseInt(s2) == 1.7976931348623157e+308 reason: wrong value
 TEST_ID=ecma/TypeConversion/9.3.1-3.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=parseInt(s2,10) == Infinity || parseInt(s2,10) == 1.7976931348623157e+308 reason: wrong value
 TEST_ID=ecma_3/Array/regress-322135-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=ecma_3/Array/regress-322135-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=ecma_3/Array/regress-322135-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 322135
+TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/Array/regress-322135-03.js:`.``*`: out of memory
-TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-03.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/Array/regress-322135-03.js:`.``*`: out of memory
+TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/Array/regress-322135-04.js:`.``*`: out of memory
-TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/Array/regress-322135-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/Array/regress-322135-04.js:`.``*`: out of memory
 TEST_ID=ecma_3/Array/regress-387501.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Array.prototype.toString|toSource|toLocaleString is not generic reason: Expected value 'TypeError: Array.prototype.toLocaleString called on incompatible String', Actual value 'f,o,o'
 TEST_ID=ecma_3/Array/regress-387501.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Array.prototype.toString|toSource|toLocaleString is not generic reason: Expected value 'TypeError: Array.prototype.toSource called on incompatible String', Actual value '["f", "o", "o"]'
 TEST_ID=ecma_3/Array/regress-387501.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Array.prototype.toString|toSource|toLocaleString is not generic reason: Expected value 'TypeError: Array.prototype.toString called on incompatible String', Actual value 'f,o,o'
 TEST_ID=ecma_3/Date/15.9.4.3.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=15.9.4.3 - Date.UTC edge-case arguments.: date -1 reason: Expected value '30', Actual value '1'
 TEST_ID=ecma_3/Date/15.9.4.3.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=15.9.4.3 - Date.UTC edge-case arguments.: date 0 reason: Expected value '31', Actual value '1'
 TEST_ID=ecma_3/Date/15.9.4.3.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=15.9.4.3 - Date.UTC edge-case arguments.: date null reason: Expected value '31', Actual value '1'
@@ -159,33 +154,26 @@ TEST_ID=ecma_3/Operators/order-01.js, TE
 TEST_ID=ecma_3/Operators/order-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=operator evaluation order: 11.5.1 * reason: Expected value 'left valueOf, left toString, right valueOf, right toString, ', Actual value 'right valueOf, right toString, left valueOf, left toString, '
 TEST_ID=ecma_3/Operators/order-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=operator evaluation order: 11.6.2 - reason: Expected value 'left valueOf, left toString, right valueOf, right toString, ', Actual value 'right valueOf, right toString, left valueOf, left toString, '
 TEST_ID=ecma_3/Operators/order-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=operator evaluation order: 11.7.1 << reason: Expected value 'left valueOf, left toString, right valueOf, right toString, ', Actual value 'right valueOf, right toString, left valueOf, left toString, '
 TEST_ID=ecma_3/Operators/order-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=operator evaluation order: 11.7.2 >> reason: Expected value 'left valueOf, left toString, right valueOf, right toString, ', Actual value 'right valueOf, right toString, left valueOf, left toString, '
 TEST_ID=ecma_3/Operators/order-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=operator evaluation order: 11.7.3 >>> reason: Expected value 'left valueOf, left toString, right valueOf, right toString, ', Actual value 'right valueOf, right toString, left valueOf, left toString, '
 TEST_ID=ecma_3/RegExp/15.10.2.12.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=15.10.2.12 - CharacterClassEscape d reason: Expected value 'false', Actual value 'true'
 TEST_ID=ecma_3/RegExp/regress-307456.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=ecma_3/RegExp/regress-330684.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-367888.js:`.``*`: out of memory
 TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-367888.js:`.``*`: out of memory
-TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-367888.js:`.``*`: out of memory
-TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-367888.js:`.``*`: out of memory
 TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=ecma_3/RegExp/regress-367888.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-367888.js:`.``*`: out of memory
+TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-375642.js:`.``*`: out of memory
 TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-375642.js:`.``*`: out of memory
-TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-375642.js:`.``*`: out of memory
-TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-375642.js:`.``*`: out of memory
 TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=ecma_3/RegExp/regress-375642.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/ecma_3/RegExp/regress-375642.js:`.``*`: out of memory
 TEST_ID=ecma_3/RegExp/regress-375711.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Do not assert with /[Q-b]/i.exec(""): /[Q-b]/i.exec("") reason: Expected value 'No Error', Actual value 'SyntaxError: invalid range in character class'
 TEST_ID=ecma_3/RegExp/regress-375715-01-n.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (c2 <= cs->length) && (c1 <= c2), at `.``*`jsregexp.c:
 TEST_ID=ecma_3/RegExp/regress-375715-01-n.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (c2 <= cs->length) && (c1 <= c2), at `.``*`jsregexp.c:
 TEST_ID=ecma_3/RegExp/regress-375715-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (c2 <= cs->length) && (c1 <= c2), at `.``*`jsregexp.c:
 TEST_ID=ecma_3/RegExp/regress-375715-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (c2 <= cs->length) && (c1 <= c2), at `.``*`jsregexp.c:
 TEST_ID=ecma_3/RegExp/regress-375715-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=ecma_3/RegExp/regress-375715-04.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (c2 <= cs->length) && (c1 <= c2), at `.``*`jsregexp.c:
 TEST_ID=ecma_3/RegExp/regress-375715-04.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (c2 <= cs->length) && (c1 <= c2), at `.``*`jsregexp.c:
@@ -202,173 +190,176 @@ TEST_ID=ecma_3/String/15.5.4.11.js, TEST
 TEST_ID=ecma_3/String/15.5.4.11.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 66 reason: Expected value 'xyy|z|string||undefined||string|3|number|xyyz|string|', Actual value 'xyy|z|string||string||string|3|number|xyyz|string|'
 TEST_ID=ecma_3/String/15.5.4.11.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 67 reason: Expected value 'x|y|string|1|number|xyz|string||string||undefined|y|string|z', Actual value 'x|y|string|1|number|xyz|string||string||string|y|string|z'
 TEST_ID=ecma_3/String/15.5.4.11.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 7 reason: Expected value '/x/g/x/g/x/g', Actual value 'xnullx'
 TEST_ID=ecma_3/String/regress-392378.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Regular Expression Non-participating Capture Groups are inaccurate in edge cases: "y".replace(/(x)?\1y/, function($0, $1){ return String($1); }) reason: Expected value 'undefined', Actual value ''
 TEST_ID=ecma_3/String/regress-392378.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Regular Expression Non-participating Capture Groups are inaccurate in edge cases: "y".replace(/(x)?y/, function($0, $1){ return $1; }) reason: Expected value 'undefined', Actual value ''
 TEST_ID=ecma_3/String/regress-392378.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Regular Expression Non-participating Capture Groups are inaccurate in edge cases: "y".replace(/(x)?y/, function($0, $1){ return String($1); }) reason: Expected value 'undefined', Actual value ''
 TEST_ID=ecma_3/Unicode/regress-352044-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=issues with Unicode escape sequences in JavaScript source code reason: Expected value 'SyntaxError: illegal character', Actual value ''
 TEST_ID=ecma_3/Unicode/regress-352044-02-n.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=issues with Unicode escape sequences in JavaScript source code reason: Expected value 'SyntaxError', Actual value 'No Error'
-TEST_ID=ecma_3/Unicode/uc-005.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (uintN)js_GetSrcNoteOffset(sn, 0) == ss->top, at `.``*`jsopcode.c:
-TEST_ID=ecma_3/Unicode/uc-005.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: (uintN)js_GetSrcNoteOffset(sn, 0) == ss->top, at `.``*`jsopcode.c:
-TEST_ID=ecma_3/Unicode/uc-005.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=;
-TEST_ID=ecma_3/Unicode/uc-005.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=ecma_3_1/RegExp/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Is MEDIUM MATHEMATICAL SPACE a space reason: Expected value 'true', Actual value 'false'
 TEST_ID=ecma_3_1/RegExp/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Is MONGOLIAN VOWEL SEPARATOR a space reason: Expected value 'true', Actual value 'false'
 TEST_ID=ecma_3_1/RegExp/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Is NARROW NO-BREAK SPACE a space reason: Expected value 'true', Actual value 'false'
 TEST_ID=ecma_3_1/RegExp/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Is OGHAM SPACE MARK a space reason: Expected value 'true', Actual value 'false'
 TEST_ID=js1_2/function/regexparg-1.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=typeof f(/abc/) reason: wrong value
 TEST_ID=js1_2/function/regexparg-1.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=typeof new f(/abc/) reason: wrong value
 TEST_ID=js1_5/Array/11.1.4.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Elisons in Array literals should not be enumed Section 1 of test -  [,1]  reason: Expected value '1', Actual value '01'
 TEST_ID=js1_5/Array/11.1.4.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Elisons in Array literals should not be enumed Section 2 of test -  [,,1]  reason: Expected value '2', Actual value '012'
 TEST_ID=js1_5/Array/11.1.4.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Elisons in Array literals should not be enumed Section 4 of test -  [1,,]  reason: Expected value '0', Actual value '01'
 TEST_ID=js1_5/Array/11.1.4.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Elisons in Array literals should not be enumed Section 1 of test -  [,1]  reason: Expected value '1', Actual value '01'
 TEST_ID=js1_5/Array/11.1.4.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Elisons in Array literals should not be enumed Section 2 of test -  [,,1]  reason: Expected value '2', Actual value '012'
 TEST_ID=js1_5/Array/11.1.4.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Elisons in Array literals should not be enumed Section 4 of test -  [1,,]  reason: Expected value '0', Actual value '01'
 TEST_ID=js1_5/Array/regress-101964.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Section 1 of test -  reason: Expected value 'Truncation took less than 50 ms', Actual value 'Truncation took `.``*` ms'
+TEST_ID=js1_5/Array/regress-157652.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Array/regress-157652.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Array/regress-157652.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Array/regress-157652.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Array/regress-157652.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Array/regress-330812.js:`.``*`: out of memory
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Array/regress-330812.js:`.``*`: out of memory
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Array/regress-330812.js:`.``*`: out of memory
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Array/regress-330812.js:`.``*`: out of memory
 TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Array/regress-330812.js:`.``*`: out of memory
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Array/regress-330812.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Array/regress-330812.js:`.``*`: out of memory
 TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/Array/regress-350256-03.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Error/regress-354246.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_5/Error/regress-354246.js:`.``*`: x is not defined
 TEST_ID=js1_5/Error/regress-354246.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Error/regress-354246.js:`.``*`: x is not defined
 TEST_ID=js1_5/Expressions/regress-394673.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_5/Expressions/regress-394673.js:`.``*`: too much recursion
 TEST_ID=js1_5/Expressions/regress-394673.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Expressions/regress-394673.js:`.``*`: InternalError: too much recursion
 TEST_ID=js1_5/Function/regress-338001.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=8.11.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=4, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Function/regress-338121-01.js:`.``*`: out of memory
-TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Function/regress-338121-01.js:`.``*`: out of memory
-TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=8.11.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=4, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121; /js1_5/Function/regress-338121-01.js:`.``*`: out of memory
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121; /js1_5/Function/regress-338121-01.js:`.``*`: out of memory; ./js1_5/Function/regress-338121-01.js:`.``*`: out of memory
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121; ./js1_5/Function/regress-338121-01.js:`.``*`: out of memory
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121
+TEST_ID=js1_5/Function/regress-338121-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121
+TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=8.11.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=4, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Function/regress-338121-02.js:`.``*`: out of memory
-TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Function/regress-338121-02.js:`.``*`: out of memory
-TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=8.11.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=4, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121; /js1_5/Function/regress-338121-02.js:`.``*`: out of memory
+TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121; /js1_5/Function/regress-338121-02.js:`.``*`: out of memory; ./js1_5/Function/regress-338121-02.js:`.``*`: out of memory
+TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121; ./js1_5/Function/regress-338121-02.js:`.``*`: out of memory
+TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 338121
+TEST_ID=js1_5/Function/regress-338121-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
 TEST_ID=js1_5/Function/regress-338121-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Function/regress-338121-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Function/regress-338121-03.js:`.``*`: out of memory
+TEST_ID=js1_5/GC/regress-203278-2.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/GC/regress-203278-2.js:`.``*`: out of memory
+TEST_ID=js1_5/GC/regress-203278-2.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/GC/regress-203278-2.js:`.``*`: out of memory
 TEST_ID=js1_5/GC/regress-203278-2.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/GC/regress-203278-2.js:`.``*`: out of memory
-TEST_ID=js1_5/GC/regress-203278-2.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/GC/regress-203278-2.js:`.``*`: out of memory
-TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/GC/regress-346794.js:`.``*`: out of memory
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/GC/regress-346794.js:`.``*`: out of memory
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/GC/regress-338653.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794; ./js1_5/GC/regress-346794.js:`.``*`: out of memory
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 9 SIGKILL, TEST_DESCRIPTION=;
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794; ./js1_5/GC/regress-346794.js:`.``*`: out of memory
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794; ./js1_5/GC/regress-346794.js:`.``*`: out of memory
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
+TEST_ID=js1_5/GC/regress-346794.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 346794
 TEST_ID=js1_5/GC/regress-348532.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_5/GC/regress-348532.js:`.``*`: too much recursion
 TEST_ID=js1_5/GC/regress-348532.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`js1_5/GC/regress-348532.js:`.``*`: too much recursion
 TEST_ID=js1_5/GC/regress-348532.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`js1_5/GC/regress-348532.js:`.``*`: too much recursion
 TEST_ID=js1_5/GC/regress-383269-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`uncaught exception: generate_big_object_graph() leaked
 TEST_ID=js1_5/GC/regress-383269-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`uncaught exception: generate_big_object_graph() leaked
+TEST_ID=js1_5/GC/regress-383269-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=`.``*`uncaught exception: generate_big_object_graph() leaked
 TEST_ID=js1_5/GC/regress-383269-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`uncaught exception: generate_big_object_graph() leaked
 TEST_ID=js1_5/GC/regress-383269-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`uncaught exception: generate_big_object_graph() leaked
 TEST_ID=js1_5/GC/regress-383269-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`uncaught exception: generate_big_object_graph() leaked
+TEST_ID=js1_5/Regress/regress-203278-1.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-203278-1.js:`.``*`: out of memory
+TEST_ID=js1_5/Regress/regress-203278-1.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-203278-1.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-203278-1.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-203278-1.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-203278-1.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-203278-1.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-252892.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=js1_5/Regress/regress-252892.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=js1_5/Regress/regress-252892.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=;
-TEST_ID=js1_5/Regress/regress-252892.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=for (var i in o) in heavyweight function f should define i in f's activation reason: Expected value 'true', Actual value 'false'
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-271716-n.js:`.``*`: out of memory
+TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-271716-n.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-271716-n.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=.* SIGABRT, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-271716-n.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-271716-n.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-271716-n.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-271716-n.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-274035.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-274035.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-274035.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/Regress/regress-303213.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Regress/regress-303213.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-303213.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-303213.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-303213.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Regress/regress-303213.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-303213.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-312588.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-312588.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-312588.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-314401.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-314401.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-314401.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-319384.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-319384.js:`.``*`: can't convert "foo" to an integer
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: arguments no longer shared reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: arity no longer shared reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: caller no longer shared reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: name no longer shared reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: arguments no longer shared reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: arity no longer shared reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: caller no longer shared reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/Regress/regress-320119.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=delegating objects and arguments, arity, caller, name: name no longer shared reason: Expected value 'false', Actual value 'true'
 TEST_ID=js1_5/Regress/regress-328897.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Unknown reason: :0: uncaught exception: Permission denied to get property UnnamedClass.classes
 TEST_ID=js1_5/Regress/regress-328897.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=JS_ReportPendingException should reason: Expected value 'Error', Actual value 'No Error'
 TEST_ID=js1_5/Regress/regress-328897.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Unknown reason: javascript:Components.classes:0: Script error.
 TEST_ID=js1_5/Regress/regress-328897.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=JS_ReportPendingException should reason: Expected value 'Error', Actual value 'No Error'
 TEST_ID=js1_5/Regress/regress-328897.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Unknown reason: javascript:Components.classes:0: Script error.
+TEST_ID=js1_5/Regress/regress-329530.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-329530.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-330352.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-346237.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Regress/regress-346237.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-346237.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-346237.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-346237.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-346237.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-346237.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-346237.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-346237.js:`.``*`: out of memory
+TEST_ID=js1_5/Regress/regress-346237.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-346237.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-350268.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=new Function with unbalanced braces: alert(6); } alert(5); reason: Expected value 'SyntaxError', Actual value 'No Error'
 TEST_ID=js1_5/Regress/regress-350268.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=new Function with unbalanced braces: } reason: Expected value 'SyntaxError', Actual value 'No Error'
 TEST_ID=js1_5/Regress/regress-350268.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=new Function with unbalanced braces: } { reason: Expected value 'SyntaxError', Actual value 'No Error'
 TEST_ID=js1_5/Regress/regress-350268.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=new Function with unbalanced braces: }}}}} reason: Expected value 'SyntaxError', Actual value 'No Error'
 TEST_ID=js1_5/Regress/regress-352604.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !OBJ_GET_PROTO(cx, ctor), at `.``*`jsapi.c:
 TEST_ID=js1_5/Regress/regress-352604.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !OBJ_GET_PROTO(cx, ctor), at `.``*`jsapi.c:
 TEST_ID=js1_5/Regress/regress-352604.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=js1_5/Regress/regress-362583.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: caller->fun && !JSFUN_HEAVYWEIGHT_TEST(caller->fun->flags), at `.``*`jsscript.c:
 TEST_ID=js1_5/Regress/regress-362583.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: caller->fun && !JSFUN_HEAVYWEIGHT_TEST(caller->fun->flags), at `.``*`jsscript.c:
 TEST_ID=js1_5/Regress/regress-362583.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
+TEST_ID=js1_5/Regress/regress-3649-n.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Regress/regress-3649-n.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-3649-n.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-3649-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-3649-n.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Regress/regress-3649-n.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-3649-n.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-383674.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Statement that implicitly calls toString should not be optimized away as a "useless expression": 1 reason: Expected value 'toString called', Actual value 'toString not called'
 TEST_ID=js1_5/Regress/regress-383674.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Statement that implicitly calls toString should not be optimized away as a "useless expression": 2 reason: Expected value 'toString called', Actual value 'toString not called'
-TEST_ID=js1_5/Regress/regress-417893.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=js1_5/Regress/regress-417893.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=js1_5/Regress/regress-417893.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=;
+TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-422348.js:`.``*`: out of memory
+TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-422348.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-422348.js:`.``*`: out of memory
 TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-422348.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Regress/regress-422348.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/Regress/regress-422348.js:`.``*`: out of memory
-TEST_ID=js1_5/Regress/regress-452573-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/Regress/regress-454981.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/Regress/regress-452573-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=8.11.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=4, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Regress/regress-452573-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/Regress/regress-452573-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/decompilation/regress-351219.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of immutable infinity, NaN decompile Infinity as 1/0 reason: Expected value ' function ( ) { return 1 / 0 ; } ', Actual value ' function ( ) { return Infinity ; } '
 TEST_ID=js1_5/decompilation/regress-351219.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of immutable infinity, NaN: decompile NaN as 0/0 reason: Expected value ' function ( ) { var NaN = 0 / 0 ; return NaN ; } ', Actual value ' function ( ) { var NaN = NaN ; return NaN ; } '
 TEST_ID=js1_5/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of new parenthetic expressions reason: Expected value ' function ( ) { new ( x ( y ) ( z ) ) ; } ', Actual value ' function ( ) { new x ( y ) ( z ) ; } '
 TEST_ID=js1_5/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of new parenthetic expressions reason: Expected value ' function ( ) { new ( x ( y ) . z ) ; } ', Actual value ' function ( ) { new x ( y ) . z ; } '
 TEST_ID=js1_5/decompilation/regress-352013.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of new parenthetic expressions reason: Expected value ' function ( ) { new ( x ( z ) ) ( w ) ; } ', Actual value ' function ( ) { new x ( z ) ( w ) ; } '
 TEST_ID=js1_5/decompilation/regress-352360.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of negative 0 reason: Expected value ' function ( ) { return - 0 ; } ', Actual value ' function ( ) { return 0 ; } '
 TEST_ID=js1_5/decompilation/regress-352360.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of negative 0: 8 / eval("" + f)() reason: Expected value '-Infinity', Actual value 'Infinity'
 TEST_ID=js1_5/decompilation/regress-352453.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_5/decompilation/regress-352453.js:`.``*`: invalid decrement operand
@@ -377,65 +368,45 @@ TEST_ID=js1_5/decompilation/regress-3531
 TEST_ID=js1_5/decompilation/regress-356083.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation for ({this setter: function () { } })  reason: Expected value ' function ( ) { return { this setter : function ( ) { } } ; } ', Actual value ' function ( ) { return { ' this ' setter : function ( ) { } } ; } '
 TEST_ID=js1_5/decompilation/regress-356248.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of object literal with named getter reason: Expected value ' function ( ) { return { set p y ( ) { } } ; } ', Actual value ' function ( ) { return { set py ( ) { } } ; } '
 TEST_ID=js1_5/decompilation/regress-371692.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Keep extra parentheses in conditional tests reason: Expected value ' function ( ) { if ( ( i = 1 ) ) { a = 2 ; } } ', Actual value ' function ( ) { if ( i = 1 ) { a = 2 ; } } '
 TEST_ID=js1_5/decompilation/regress-375882.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of switch with case 0/0 reason: Expected value ' function ( ) { switch ( a ) { case 0 / 0 : a ; case 1 / 0 : b ; case 1 / - 0 : c ; case - 0 : d ; default : ; } } ', Actual value ' function ( ) { switch ( a ) { case NaN : a ; case Infinity : b ; case - Infinity : c ; case 0 : d ; default : ; } } '
 TEST_ID=js1_5/decompilation/regress-376564.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of new (eval()) reason: Expected value ' function ( ) { new ( eval ( ) ) ; } ', Actual value ' function ( ) { new eval ; } '
 TEST_ID=js1_5/decompilation/regress-376564.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of new (eval()) reason: Expected value ' function ( ) { new ( g ( ) ) ; } ', Actual value ' function ( ) { new g ; } '
 TEST_ID=js1_5/decompilation/regress-383721.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompiling Tabs: toString reason: Expected value ' function ( ) { return "\ t "; } ', Actual value ' function ( ) { return " "; } '
 TEST_ID=js1_5/decompilation/regress-383721.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompiling Tabs: uneval reason: Expected value ' ( function ( ) { return "\ t "; } ) ', Actual value ' ( function ( ) { return " "; } ) '
-TEST_ID=js1_5/decompilation/regress-456964-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=js1_5/decompilation/regress-456964-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: top != 0, at `.``*`jsopcode.c:
-TEST_ID=js1_5/decompilation/regress-456964-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=
-TEST_ID=js1_5/decompilation/regress-456964-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Infinite loop decompling function reason: Expected value ' function Test ( ) { var object = { abc : 1 , def : 2 } ; var o = ""; for ( var i in object ) { o += i + " = " + object [ i ] + "\ n "; } return o ; } ', Actual value ' function Test ( ) { var object = { abc : 1 , def : 2 } ; var o = ""; while ( object ) { o += i + " = " + object [ i ] + "\ n "; } return o ; } '
-TEST_ID=js1_5/decompilation/regress-457093-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: newtop <= oldtop, at `.``*`jsopcode.c:
-TEST_ID=js1_5/decompilation/regress-457093-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: newtop <= oldtop, at `.``*`jsopcode.c:
-TEST_ID=js1_5/decompilation/regress-457093-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=
-TEST_ID=js1_5/decompilation/regress-457093-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/decompilation/regress-457093-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-164697.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=([]).__proto__ == Array.prototype reason: Expected value 'true', Actual value 'false'
 TEST_ID=js1_5/extensions/regress-164697.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=(new Array()).__proto__ == Array.prototype reason: Expected value 'true', Actual value 'false'
 TEST_ID=js1_5/extensions/regress-226507.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION= reason: Expected value '', Actual value 'InternalError: too much recursion'
 TEST_ID=js1_5/extensions/regress-226507.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION= reason: Expected value '', Actual value 'InternalError: too much recursion'
 TEST_ID=js1_5/extensions/regress-226507.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION= reason: Expected value '', Actual value 'InternalError: too much recursion'
 TEST_ID=js1_5/extensions/regress-304897.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=uneval("\t"), uneval("\x09") reason: Expected value '"\t"', Actual value '"\x09"'
 TEST_ID=js1_5/extensions/regress-322957.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TryMethod should not eat getter exceptions reason: Type mismatch, expected type boolean, actual type number Expected value 'true', Actual value '-1'
 TEST_ID=js1_5/extensions/regress-330569.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/extensions/regress-336409-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336409-2.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336410-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336410-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336410-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336410-1.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-336410-2.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-342960.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/extensions/regress-342960.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=`.``*`/js1_5/extensions/regress-350531.js:`.``*`: out of memory
-TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 345967; This test will probably run out of memory; This test really should only fail on 64 bit machines
+TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 345967; This test will probably run out of memory; This test really should only fail on 64 bit machines
+TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 345967; This test will probably run out of memory; This test really should only fail on 64 bit machines
+TEST_ID=js1_5/extensions/regress-345967.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 345967; This test will probably run out of memory; This test really should only fail on 64 bit machines
+TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 350531; ./js1_5/extensions/regress-350531.js:`.``*`: out of memory
+TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 350531; ./js1_5/extensions/regress-350531.js:`.``*`: out of memory
+TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 350531; ./js1_5/extensions/regress-350531.js:`.``*`: out of memory
+TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 350531
+TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=; messages: BUGNUMBER: 350531
+TEST_ID=js1_5/extensions/regress-350531.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 5, TEST_DESCRIPTION=; messages: BUGNUMBER: 350531; ./js1_5/extensions/regress-350531.js:`.``*`: out of memory
 TEST_ID=js1_5/extensions/regress-351448.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_5/extensions/regress-351463-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Treat hyphens as not special adjacent to CharacterClassEscapes in character classes: /([\d-\S]+)/.exec("a0- z") reason: Expected value 'a0-,a0-', Actual value 'SyntaxError: invalid range in character class'
 TEST_ID=js1_5/extensions/regress-351463-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Treat hyphens as not special adjacent to CharacterClassEscapes in character classes: /([\d-\s]+)/.exec("a0- z") reason: Expected value '0- ,0- ', Actual value 'SyntaxError: invalid range in character class'
 TEST_ID=js1_5/extensions/regress-352455.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Eval object with non-function getters/setters reason: Expected value 'SyntaxError: invalid getter usage', Actual value ''
 TEST_ID=js1_5/extensions/regress-352604.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !OBJ_GET_PROTO(cx, ctor), at `.``*`jsapi.c:
 TEST_ID=js1_5/extensions/regress-352604.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !OBJ_GET_PROTO(cx, ctor), at `.``*`jsapi.c:
 TEST_ID=js1_5/extensions/regress-352604.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=js1_5/extensions/regress-352604.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Do not assert: !OBJ_GET_PROTO(cx, ctor) reason: Expected value 'function f() {NL}', Actual value 'function () {NL}'
@@ -443,21 +414,22 @@ TEST_ID=js1_5/extensions/regress-353214.
 TEST_ID=js1_5/extensions/regress-355622.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: overwriting, at `.``*`jsscope.c:
 TEST_ID=js1_5/extensions/regress-355622.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: overwriting, at `.``*`jsscope.c:
 TEST_ID=js1_5/extensions/regress-355622.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=js1_5/extensions/regress-355736.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of "[reserved]" has extra quotes: 1 reason: Expected value ' function ( ) { [ super ] = q ; } ', Actual value ' function ( ) { [ " super " ] = q ; } '
 TEST_ID=js1_5/extensions/regress-355736.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of "[reserved]" has extra quotes: 1: compile actual reason: Expected value 'No Error', Actual value 'SyntaxError: invalid assignment left-hand side'
 TEST_ID=js1_5/extensions/regress-355736.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of "[reserved]" has extra quotes: 2 reason: Expected value ' function ( ) { return { super getter : function ( ) { } } ; } ', Actual value ' function ( ) { return { ' super ' getter : function ( ) { } } ; } '
 TEST_ID=js1_5/extensions/regress-355736.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of "[reserved]" has extra quotes: 3 reason: Expected value ' function ( ) { [ goto ] = a ; } ', Actual value ' function ( ) { [ " goto " ] = a ; } '
 TEST_ID=js1_5/extensions/regress-355736.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of "[reserved]" has extra quotes: 3: compile actual reason: Expected value 'No Error', Actual value 'SyntaxError: invalid assignment left-hand side'
-TEST_ID=js1_5/extensions/regress-355820.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Remove non-standard Script object reason: Expected value 'undefined', Actual value 'function'
 TEST_ID=js1_5/extensions/regress-356085.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=js_obj_toString for getter/setter reason: Expected value ' ( { set p y ( ) { } } ) ', Actual value ' ( { set p ( ) { } } ) '
 TEST_ID=js1_5/extensions/regress-365869.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=strict warning for object literal with duplicate propery names reason: Expected value 'TypeError: redeclaration of property 1', Actual value 'No warning'
 TEST_ID=js1_5/extensions/regress-365869.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=strict warning for object literal with duplicate propery names reason: Expected value 'TypeError: redeclaration of property a', Actual value 'No warning'
 TEST_ID=js1_5/extensions/regress-367923.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=strict warning for variable redeclares argument reason: Expected value 'TypeError: variable v redeclares argument', Actual value 'TypeError: variable v hides argument'
+TEST_ID=js1_5/extensions/regress-371636.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Numeric sort performance reason: Expected value '(tint/tstr < 3)=true', Actual value '(tint/tstr < 3)=false'
+TEST_ID=js1_5/extensions/regress-371636.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Numeric sort performance reason: Expected value '(tint/tstr < 3)=true', Actual value '(tint/tstr < 3)=false'
 TEST_ID=js1_5/extensions/regress-371636.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Numeric sort performance reason: Expected value '(tint/tstr < 3)=true', Actual value '(tint/tstr < 3)=false'
 TEST_ID=js1_5/extensions/regress-371636.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Numeric sort performance reason: Expected value '(tint/tstr < 3)=true', Actual value '(tint/tstr < 3)=false'
 TEST_ID=js1_5/extensions/regress-371636.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/extensions/regress-371636.js:`.``*`: out of memory
 TEST_ID=js1_5/extensions/regress-371636.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/extensions/regress-371636.js:`.``*`: out of memory
 TEST_ID=js1_5/extensions/regress-371636.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/extensions/regress-371636.js:`.``*`: out of memory
 TEST_ID=js1_5/extensions/regress-375801.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=uneval should use "(void 0)" instead of "undefined": uneval reason: Expected value ' ( { a : ( void 0 ) } ) ', Actual value ' ( { a : undefined } ) '
 TEST_ID=js1_5/extensions/regress-376052.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=javascript.options.anonfunfix to allow function (){} expressions: 3 reason: Expected value 'SyntaxError: syntax error', Actual value 'No Error'
 TEST_ID=js1_5/extensions/regress-379523.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Decompilation of sharp declaration: 1 reason: Expected value ' ( function ( ) { return # 1 = [ a ] ; } ) ', Actual value ' ( function ( ) { return # 1 = [ , a ] ; } ) '
@@ -472,41 +444,29 @@ TEST_ID=js1_5/extensions/regress-381304.
 TEST_ID=js1_5/extensions/regress-381304.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_5/extensions/regress-381304.js:`.``*`: SyntaxError: missing : after property id
 TEST_ID=js1_5/extensions/regress-385134.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
 TEST_ID=js1_5/extensions/regress-385134.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
 TEST_ID=js1_5/extensions/regress-385134.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=js1_5/extensions/regress-394967.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-407019.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Do not assert: !JS_IsExceptionPending(cx) - Browser only reason: Expected match to '/Illegal operation on WrappedNative prototype object/', Actual value 'TypeError: window.Option is not a function'
 TEST_ID=js1_5/extensions/regress-422592.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-422592.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: [1].__count__ reason: Expected value '1', Actual value '3'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: [1].__count__ reason: Expected value '9', Actual value '3'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: [].__count__ reason: Expected value '0', Actual value '3'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: x.test1 reason: Expected value 'true', Actual value 'false'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: x.test2 reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: x.test3 (1) reason: Expected value 'true', Actual value 'false'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: y.__count__ reason: Expected value '4', Actual value '3'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: [1].__count__ reason: Expected value '1', Actual value '3'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: [1].__count__ reason: Expected value '9', Actual value '3'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: [].__count__ reason: Expected value '0', Actual value '3'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: x.test1 reason: Expected value 'true', Actual value 'false'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: x.test2 reason: Expected value 'false', Actual value 'true'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: x.test3 (1) reason: Expected value 'true', Actual value 'false'
-TEST_ID=js1_5/extensions/regress-434837-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=|this| in accessors in prototype chain of array: y.__count__ reason: Expected value '4', Actual value '3'
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 1 reason: Expected value 'watcher: propname=length, oldval=0, newval=1; ', Actual value ''
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 2 reason: Expected value 'watcher: propname=length, oldval=1, newval=2; watcher: propname=length, oldval=2, newval=2; ', Actual value 'watcher: propname=length, oldval=undefined, newval=2; '
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 3 reason: Expected value 'watcher: propname=length, oldval=2, newval=1; ', Actual value 'watcher: propname=length, oldval=undefined, newval=1; '
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 4 reason: Expected value 'watcher: propname=length, oldval=1, newval=2; ', Actual value 'watcher: propname=length, oldval=undefined, newval=2; '
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 5 reason: Expected value 'watcher: propname=length, oldval=2, newval=5; ', Actual value 'watcher: propname=length, oldval=undefined, newval=5; '
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 1 reason: Expected value 'watcher: propname=length, oldval=0, newval=1; ', Actual value ''
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 2 reason: Expected value 'watcher: propname=length, oldval=1, newval=2; watcher: propname=length, oldval=2, newval=2; ', Actual value 'watcher: propname=length, oldval=undefined, newval=2; '
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 3 reason: Expected value 'watcher: propname=length, oldval=2, newval=1; ', Actual value 'watcher: propname=length, oldval=undefined, newval=1; '
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 4 reason: Expected value 'watcher: propname=length, oldval=1, newval=2; ', Actual value 'watcher: propname=length, oldval=undefined, newval=2; '
 TEST_ID=js1_5/extensions/regress-435345-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Watch the length property of arrays: 5 reason: Expected value 'watcher: propname=length, oldval=2, newval=5; ', Actual value 'watcher: propname=length, oldval=undefined, newval=5; '
-TEST_ID=js1_5/extensions/regress-443569.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/extensions/regress-443569.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=8.11.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=4, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/extensions/regress-443569.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
+TEST_ID=js1_5/extensions/regress-443569.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=No test results reported
 TEST_ID=js1_5/extensions/regress-452178.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_5/extensions/regress-452178.js:`.``*`: setting a property that has only a getter
 TEST_ID=js1_5/extensions/regress-452178.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=`.``*`/js1_5/extensions/regress-452178.js:`.``*`: TypeError: setting a property that has only a getter
 TEST_ID=js1_5/extensions/regress-452329.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 5 SIGTRAP, TEST_DESCRIPTION=`.``*`Assertion failure: *fp->regs->pc == JSOP_CALL || *fp->regs->pc == JSOP_NEW, at `.``*`jsstr.c:
 TEST_ID=js1_5/extensions/regress-452329.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: *fp->pc == JSOP_CALL || *fp->pc == JSOP_NEW, at `.``*`jsstr.c:
 TEST_ID=js1_5/extensions/regress-452329.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: *fp->pc == JSOP_CALL || *fp->pc == JSOP_NEW, at `.``*`jsstr.c:
 TEST_ID=js1_5/extensions/regress-452329.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=;
 TEST_ID=js1_5/extensions/regress-452329.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: *fp->regs->pc == JSOP_CALL || *fp->regs->pc == JSOP_NEW, at `.``*`jsstr.c:
 TEST_ID=js1_5/extensions/regress-452329.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 5 SIGTRAP, TEST_DESCRIPTION=`.``*`Assertion failure: *fp->regs->pc == JSOP_CALL || *fp->regs->pc == JSOP_NEW, at `.``*`jsstr.c:
@@ -528,48 +488,68 @@ TEST_ID=js1_5/extensions/toLocaleFormat-
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value '32767327673276732767327673276732767327673276732767327673276732767327673276732767327673276732767', Actual value '2767276727672767276727672767276727672767276727672767276727672767276727672767'
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value '-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51', Actual value '00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/'
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("xxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value 'xxx-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51', Actual value 'xxx00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/00+/'
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value 'xxxx-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999', Actual value 'xxxx'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value 'xxxx32767327673276732767327673276732767327673276732767327673276732767327673276732767327673276732767', Actual value 'xxxx2767276727672767276727672767276727672767276727672767276727672767276727672767'
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value 'Mon Jan 01 -9999 00:00:00 `.``*`', Actual value 'xxxx'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value 'Sun Jan 01 32767 00:00:00 `.``*`', Actual value 'xxxx2767276727672767276727672767276727672767276727672767276727672767276727672767276727672767'
 TEST_ID=js1_5/extensions/toLocaleFormat-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("xxxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y") reason: Expected value 'Sun Jan 01 32767 00:00:00 `.``*`', Actual value 'xxxxx2767276727672767276727672767276727672767276727672767276727672767276727672767'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C") reason: Expected value '20', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%G") reason: Expected value '2005', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M") == Date.toLocaleFormat("%R") reason: Expected value '`.``*`:00', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M:%S") == Date.toLocaleFormat("%T") reason: Expected value '`.``*`:00:00', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%I:%M:%S %p") == Date.toLocaleFormat("%r") reason: Expected value '`.``*`:00:00 PM', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%V") reason: Expected value '22', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%Y-%m-%d") == Date.toLocaleFormat("%F") reason: Expected value '2005-06-04', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%b") == Date.toLocaleFormat("%h") reason: Expected value 'Jun', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%e") reason: Expected value ' 4', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%g") reason: Expected value '05', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%m/%d/%y") == Date.toLocaleFormat("%D") reason: Expected value '06/04/05', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%n") == "NL" reason: Expected value 'NL', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%t") == "\t" reason: Expected value '\x09', Actual value 'Sat Jun 04 2005 `.``*`'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%u") reason: Expected value '6', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C") reason: Expected value '20', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C%y") == Date.toLocaleFormat("%Y") reason: Expected value 'Sat Jun 04 2005 `.``*`', Actual value '2005'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%G") reason: Expected value '2005', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M") == Date.toLocaleFormat("%R") reason: Expected value '`.``*`:00', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M:%S") == Date.toLocaleFormat("%T") reason: Expected value '`.``*`:00:00', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%I:%M:%S %p") == Date.toLocaleFormat("%r") reason: Expected value '`.``*`:00:00 PM', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%V") reason: Expected value '22', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%Y-%m-%d") == Date.toLocaleFormat("%F") reason: Expected value '2005-06-04', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%b") == Date.toLocaleFormat("%h") reason: Expected value 'Jun', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%e") reason: Expected value ' 4', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%g") reason: Expected value '05', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%m/%d/%y") == Date.toLocaleFormat("%D") reason: Expected value '06/04/05', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%n") == "NL" reason: Expected value 'NL', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%t") == "\t" reason: Expected value '\x09', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%u") reason: Expected value '6', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C") reason: Expected value '20', Actual value 'Sat Jun 04 2005 `.``*`'
 TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C%y") == Date.toLocaleFormat("%Y") reason: Expected value '05', Actual value '2005'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%G") reason: Expected value '2005', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M") == Date.toLocaleFormat("%R") reason: Expected value '`.``*`:00', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M:%S") == Date.toLocaleFormat("%T") reason: Expected value '`.``*`:00:00', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%I:%M:%S %p") == Date.toLocaleFormat("%r") reason: Expected value '`.``*`:00:00 PM', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%V") reason: Expected value '22', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%Y-%m-%d") == Date.toLocaleFormat("%F") reason: Expected value '2005-06-04', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%b") == Date.toLocaleFormat("%h") reason: Expected value 'Jun', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%e") reason: Expected value ' 4', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%g") reason: Expected value '05', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%m/%d/%y") == Date.toLocaleFormat("%D") reason: Expected value '06/04/05', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%n") == "NL" reason: Expected value 'NL', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%t") == "\t" reason: Expected value '\x09', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%u") reason: Expected value '6', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C") reason: Expected value '20', Actual value 'Sat Jun 04 2005 `.``*`'
 TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C%y") == Date.toLocaleFormat("%Y") reason: Expected value 'Sat Jun 04 2005 `.``*`', Actual value '2005'
-TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%C%y") == Date.toLocaleFormat("%Y") reason: Expected value 'Sat Jun 04 2005 `.``*`', Actual value '2005'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%G") reason: Expected value '2005', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M") == Date.toLocaleFormat("%R") reason: Expected value '`.``*`:00', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%H:%M:%S") == Date.toLocaleFormat("%T") reason: Expected value '`.``*`:00:00', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%I:%M:%S %p") == Date.toLocaleFormat("%r") reason: Expected value '`.``*`:00:00 PM', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%V") reason: Expected value '22', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%Y-%m-%d") == Date.toLocaleFormat("%F") reason: Expected value '2005-06-04', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%b") == Date.toLocaleFormat("%h") reason: Expected value 'Jun', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%e") reason: Expected value ' 4', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%g") reason: Expected value '05', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%m/%d/%y") == Date.toLocaleFormat("%D") reason: Expected value '06/04/05', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%n") == "NL" reason: Expected value 'NL', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%t") == "\t" reason: Expected value '\x09', Actual value 'Sat Jun 04 2005 `.``*`'
+TEST_ID=js1_5/extensions/toLocaleFormat-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Date.toLocaleFormat("%u") reason: Expected value '6', Actual value 'Sat Jun 04 2005 `.``*`'
 TEST_ID=js1_6/Array/regress-320887.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=var x should not throw a ReferenceError reason: Expected value 'No error', Actual value 'ReferenceError: x is not defined'
 TEST_ID=js1_6/Array/regress-386030.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Array.reduce should ignore holes: 1 reason: Expected value 'PASS', Actual value 'FAIL, reduce'
 TEST_ID=js1_6/Array/regress-386030.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Array.reduce should ignore holes: 2 reason: Expected value 'PASS', Actual value 'FAIL, reduceRight'
 TEST_ID=js1_6/Regress/regress-353078.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Do not assert with bogus toString, map, split reason: Expected value 'TypeError: can't convert global to string', Actual value 'No Crash'
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !f->vmprivate, at `.``*`jstracer.cpp:
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !f->vmprivate, at `.``*`jstracer.cpp:
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !f->vmprivate, at `.``*`jstracer.cpp:
-TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=
+TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 5 SIGTRAP, TEST_DESCRIPTION=`.``*`Assertion failure: !f->vmprivate, at `.``*`jstracer.cpp:
+TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=9.5.0, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 5 SIGTRAP, TEST_DESCRIPTION=`.``*`Assertion failure: !f->vmprivate, at `.``*`jstracer.cpp:
+TEST_ID=js1_6/extensions/regress-455464-04.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=; messages: 
 TEST_ID=js1_7/block/order-of-operation.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Test let and order of operation issues reason: Type mismatch, expected type boolean, actual type string Expected value 'false', Actual value 'f1(5):NL  expected:  NaNNL  actual:    6'
 TEST_ID=js1_7/block/regress-352422.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=let declaration must be direct child of block, top-level implicit block, or switch body block reason: Expected value 'SyntaxError', Actual value ''
 TEST_ID=js1_7/block/regress-352609.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=p = {}; (p.z = [let (x = 3, y = 4) x])() reason: Expected match to '/TypeError: (p.z = \[let \(x = 3, y = 4\) x\]|.*Array.*) is not a function/', Actual value 'TypeError: p.z = [(let (x = 3, y = 4) x)] is not a function'
 TEST_ID=js1_7/block/regress-352786.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=let declaration must be direct child of block, top-level implicit block, or switch body block reason: Expected value 'SyntaxError', Actual value ''
 TEST_ID=js1_7/block/regress-352907.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=let declaration must be direct child of block, top-level implicit block, or switch body block reason: Expected value 'SyntaxError', Actual value ''
 TEST_ID=js1_7/block/regress-376410.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=let declaration must be direct child of block, top-level implicit block, or switch body block reason: Expected value 'SyntaxError', Actual value ''
 TEST_ID=js1_7/decompilation/regress-346642-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of destructuring assignment: 14 reason: Expected value ' function ( ) { while ( [ ] = e ) { } } ', Actual value ' function ( ) { while ( ( [ ] = e ) ) { } } '
 TEST_ID=js1_7/decompilation/regress-346642-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of destructuring assignment: 15 reason: Expected value ' function ( ) { while ( [ ] = a ( b ) ) { } } ', Actual value ' function ( ) { while ( ( [ ] = a ( b ) ) ) { } } '
@@ -612,50 +592,40 @@ TEST_ID=js1_7/extensions/regress-368224.
 TEST_ID=js1_7/extensions/regress-368224.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: pnprop->pn_type == TOK_COLON, at `.``*`jsparse.c:
 TEST_ID=js1_7/extensions/regress-368224.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
 TEST_ID=js1_7/extensions/regress-368224.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=
 TEST_ID=js1_7/extensions/regress-379566.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Keywords after get|set reason: Expected value ' ( { in getter : ( function ( ) { return this . for ; } ) , in setter : ( function ( value ) { this . for = value ; } ) } ) ', Actual value ' SyntaxError : missing : after property id '
 TEST_ID=js1_7/extensions/regress-379566.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Keywords after get|set: compile actual reason: Expected value 'No Error', Actual value 'SyntaxError: missing ; before statement'
 TEST_ID=js1_7/extensions/regress-380933.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Do not assert with uneval object with setter with modified proto reason: Expected match to '/TypeError: Array.prototype.toSource called on incompatible Function/', Actual value 'No Error'
 TEST_ID=js1_7/extensions/regress-381301.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=uneval of object with native-function getter reason: Expected value ' ( { get x decodeURI ( ) { [ native code ] } } ) ', Actual value ' ( { get x ( ) { [ native code ] } ) '
 TEST_ID=js1_7/extensions/regress-381303.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=object toSource when a property has both a getter and a setter reason: Expected value ' ( { get inn ( ) { return this . for ; } , set inn ( value ) { this . for = value ; } } ) ', Actual value ' ( { get inn ( ) { return this [ ' for ' ] ; } , set inn ( value ) { this [ ' for ' ] = value ; } } ) '
-TEST_ID=js1_7/geniter/regress-347739.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=generator_instance.close readonly and immune: 2 reason: Expected value 'Inside finally: 1 Inside finally: 2 ', Actual value 'Inside finally: 2 '
-TEST_ID=js1_7/geniter/regress-347739.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=generator_instance.close readonly and immune: 2 reason: Expected value 'Inside finally: 1 Inside finally: 2 ', Actual value 'Inside finally: 2 '
 TEST_ID=js1_7/geniter/regress-349012-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/geniter/regress-349012-01.js:`.``*`: yield from closing generator function gen() {try {try {yield 1;} finally {actual += "Inner finally";yield 2;}} finally {actual += ",Outer finally";}}
-TEST_ID=js1_7/geniter/regress-349012-01.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=closing a generator fails to report error if yield during close is ignored reason: Expected value 'Inner finally,Outer finally', Actual value ''
-TEST_ID=js1_7/geniter/regress-349012-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=closing a generator fails to report error if yield during close is ignored reason: Expected value 'Inner finally,Outer finally', Actual value ''
-TEST_ID=js1_7/geniter/regress-349331.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=test GC-invoke close reason: Expected value 'true', Actual value 'false'
-TEST_ID=js1_7/geniter/regress-349331.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=test GC-invoke close reason: Expected value 'true', Actual value 'false'
-TEST_ID=js1_7/iterable/regress-340526-02.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Iterators: cross-referenced objects with close handler can delay close handler execution reason: Expected value '2', Actual value '0'
-TEST_ID=js1_7/iterable/regress-340526-02.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Iterators: cross-referenced objects with close handler can delay close handler execution reason: Expected value '2', Actual value '0'
-TEST_ID=js1_7/iterable/regress-341815.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_7/iterable/regress-341815.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_7/iterable/regress-341815.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=slow, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_7/iterable/regress-341815.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_7/iterable/regress-341815.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_7/iterable/regress-341815.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_7/iterable/regress-341821.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_7/iterable/regress-341821.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_7/iterable/regress-341821.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_7/iterable/regress-341821.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=medium, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
-TEST_ID=js1_7/iterable/regress-341821.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
 TEST_ID=js1_7/iterable/regress-415922.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Support exception from withing JSNewEnumerateOp on JSENUMERATE_NEXT reason: Expected value 'Error: its enumeration failed', Actual value 'No exception r: color'
 TEST_ID=js1_7/lexical/regress-346642-03.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of destructuring assignment: 8 reason: Expected value 'TypeError: ++x is not a function', Actual value 'TypeError: ++e1 is not a function'
 TEST_ID=js1_7/lexical/regress-346642-03.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of destructuring assignment: 2 reason: Expected match to '/TypeError: x.t (has no properties|is undefined)/', Actual value 'TypeError: e1.t has no properties'
 TEST_ID=js1_7/lexical/regress-346642-03.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of destructuring assignment: 2 reason: Expected match to '/TypeError: x.t (has no properties|is undefined)/', Actual value 'TypeError: e1.t is undefined'
 TEST_ID=js1_7/lexical/regress-346642-03.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=decompilation of destructuring assignment: 2 reason: Expected match to '/TypeError: x.t (has no properties|is undefined)/', Actual value 'TypeError: e1.t is undefined'
 TEST_ID=js1_7/lexical/regress-351515.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Invalid uses of yield, let keywords in js17: global: yield = 1 reason: Expected value 'SyntaxError: syntax error', Actual value 'SyntaxError: yield not in function'
 TEST_ID=js1_7/regexp/yflag.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regexp/yflag.js:`.``*`: invalid flag after regular expression
 TEST_ID=js1_7/regexp/yflag.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_7/regexp/yflag.js:`.``*`: SyntaxError: invalid flag after regular expression
+TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-350387.js:`.``*`: x is not defined
+TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Unknown reason: http://test.mozilla.com//tests/mozilla.org/js/js1_7/regress/regress-350387.js:51: x is not defined
+TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-350387.js:`.``*`: x is not defined
+TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Unknown reason: http://test.mozilla.com//tests/mozilla.org/js/js1_7/regress/regress-350387.js:51: x is not defined
 TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-350387.js:`.``*`: x is not defined
 TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-350387.js:`.``*`: ReferenceError: x is not defined
 TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`js1_7/regress/regress-350387.js:`.``*`: x is not defined
 TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`js1_7/regress/regress-350387.js:`.``*`: x is not defined
 TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-350387.js:`.``*`: x is not defined
 TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=
-TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-350387.js:`.``*`: x is not defined
-TEST_ID=js1_7/regress/regress-350387.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Unknown reason: http://test.mozilla.com//tests/mozilla.org/js/js1_7/regress/regress-350387.js:51: x is not defined
 TEST_ID=js1_7/regress/regress-361566.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !fp->blockChain || OBJ_GET_PARENT(cx, obj) == fp->blockChain, at `.``*`jsinterp.c:
 TEST_ID=js1_7/regress/regress-361566.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !fp->blockChain || OBJ_GET_PARENT(cx, obj) == fp->blockChain, at `.``*`jsinterp.c:
 TEST_ID=js1_7/regress/regress-361566.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=js1_7/regress/regress-363040-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Test reduce of empty array without initializer. : TypeError: reduce of empty array with no initial value reason: Expected value 'TypeError: reduce of empty array with no initial value', Actual value 'TypeError: arr0elms.reduce is not a function'
 TEST_ID=js1_7/regress/regress-363040-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Test reduceRight of empty array without initializer. : TypeError: reduce of empty array with no initial value reason: Expected value 'TypeError: reduce of empty array with no initial value', Actual value 'TypeError: arr0elms.reduceRight is not a function'
 TEST_ID=js1_7/regress/regress-363040-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-363040-01.js:`.``*`: arr0elms.reduce is not a function
 TEST_ID=js1_7/regress/regress-363040-01.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=Test reduceRight of empty array without initializer. : TypeError: reduce of empty array with no initial value reason: Expected value 'TypeError: reduce of empty array with no initial value', Actual value 'TypeError: arr0elms.reduceRight is not a function';
 TEST_ID=js1_7/regress/regress-363040-02.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=browser, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=`.``*`/js1_7/regress/regress-363040-02.js:`.``*`: arr.reduce is not a function
@@ -671,17 +641,18 @@ TEST_ID=js1_7/regress/regress-373827-02.
 TEST_ID=js1_7/regress/regress-373828.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: op == JSOP_LEAVEBLOCKEXPR ? fp->spbase + OBJ_BLOCK_DEPTH(cx, obj) == sp - 1 : fp->spbase + OBJ_BLOCK_DEPTH(cx, obj) == sp, at `.``*`jsinterp.c:
 TEST_ID=js1_7/regress/regress-373828.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: op == JSOP_LEAVEBLOCKEXPR ? fp->spbase + OBJ_BLOCK_DEPTH(cx, obj) == sp - 1 : fp->spbase + OBJ_BLOCK_DEPTH(cx, obj) == sp, at `.``*`jsinterp.c:
 TEST_ID=js1_7/regress/regress-373828.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=js1_7/regress/regress-375695.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=darwin, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !fp->blockChain || OBJ_GET_PARENT(cx, obj) == fp->blockChain, at `.``*`jsinterp.c:
 TEST_ID=js1_7/regress/regress-375695.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=linux, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED.*, TEST_DESCRIPTION=`.``*`Assertion failure: !fp->blockChain || OBJ_GET_PARENT(cx, obj) == fp->blockChain, at `.``*`jsinterp.c:
 TEST_ID=js1_7/regress/regress-375695.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=.*, TEST_OS=nt, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL.*, TEST_DESCRIPTION=
 TEST_ID=js1_7/regress/regress-406477.js, TEST_BRANCH=1.8.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=eval of function x() in a function with an argument "x" and "let x" reason: Expected value '', Actual value 'Unexpected test_param_result value: 1NLUnexpected test_var_result value: 1NL'
 TEST_ID=js1_7/regress/regress-410649.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=type for destructuring parameter case reason: Expected value 'function', Actual value 'number'
-TEST_ID=js1_8/genexps/regress-380237-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=`.``*`/js1_8/genexps/regress-380237-01.js:`.``*`: InternalError: too much recursion
+TEST_ID=js1_8/genexps/regress-380237-01.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=`.``*`/js1_8/genexps/regress-380237-01.js:`.``*`: InternalError: too much recursion
+TEST_ID=js1_8/genexps/regress-380237-01.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=ABNORMAL 3, TEST_DESCRIPTION=`.``*`/js1_8/genexps/regress-380237-01.js:`.``*`: InternalError: too much recursion
 TEST_ID=js1_8/genexps/regress-380237-04.js, TEST_BRANCH=1.9.0, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=Generator expressions parenthesization test: roundTripTest no round-trip change reason: Expected value 'function anonymous() {NL    for (;;) {NL    }NL}', Actual value 'function anonymous() {NL    for (; (x * x for (x in []));) {NL    }NL}'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=MEDIUM MATHEMATICAL SPACE:"\u205F\u205F\u205F".trim() reason: Expected value '', Actual value '\u205F\u205F\u205F'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=MEDIUM MATHEMATICAL SPACE:"\u205F\u205F\u205F".trimLeft() reason: Expected value '', Actual value '\u205F\u205F\u205F'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=MEDIUM MATHEMATICAL SPACE:"\u205F\u205F\u205F".trimRight() reason: Expected value '', Actual value '\u205F\u205F\u205F'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=MEDIUM MATHEMATICAL SPACE:"\u205F\u205F\u205Fa".trim() reason: Expected value 'a', Actual value '\u205F\u205F\u205Fa'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=MEDIUM MATHEMATICAL SPACE:"\u205F\u205F\u205Fa".trimLeft() reason: Expected value 'a', Actual value '\u205F\u205F\u205Fa'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=MEDIUM MATHEMATICAL SPACE:"\u205F\u205F\u205Fa\u205F\u205F\u205F".trim() reason: Expected value 'a', Actual value '\u205F\u205F\u205Fa\u205F\u205F\u205F'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=MEDIUM MATHEMATICAL SPACE:"\u205F\u205F\u205Fa\u205F\u205F\u205F".trimLeft() reason: Expected value 'a\u205F\u205F\u205F', Actual value '\u205F\u205F\u205Fa\u205F\u205F\u205F'
@@ -713,10 +684,10 @@ TEST_ID=js1_8_1/String/regress-305064.js
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"\u1680\u1680\u1680".trimRight() reason: Expected value '', Actual value '\u1680\u1680\u1680'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"\u1680\u1680\u1680a".trim() reason: Expected value 'a', Actual value '\u1680\u1680\u1680a'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"\u1680\u1680\u1680a".trimLeft() reason: Expected value 'a', Actual value '\u1680\u1680\u1680a'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"\u1680\u1680\u1680a\u1680\u1680\u1680".trim() reason: Expected value 'a', Actual value '\u1680\u1680\u1680a\u1680\u1680\u1680'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"\u1680\u1680\u1680a\u1680\u1680\u1680".trimLeft() reason: Expected value 'a\u1680\u1680\u1680', Actual value '\u1680\u1680\u1680a\u1680\u1680\u1680'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"\u1680\u1680\u1680a\u1680\u1680\u1680".trimRight() reason: Expected value '\u1680\u1680\u1680a', Actual value '\u1680\u1680\u1680a\u1680\u1680\u1680'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"a\u1680\u1680\u1680".trim() reason: Expected value 'a', Actual value 'a\u1680\u1680\u1680'
 TEST_ID=js1_8_1/String/regress-305064.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=OGHAM SPACE MARK:"a\u1680\u1680\u1680".trimRight() reason: Expected value 'a', Actual value 'a\u1680\u1680\u1680'
-TEST_ID=js1_8_1/trace/trace-test.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 11 SIGSEGV, TEST_DESCRIPTION=
-TEST_ID=js1_8_1/trace/trace-test.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=opt, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=TIMED OUT, TEST_DESCRIPTION=
+TEST_ID=js1_8_1/trace/trace-test.js, TEST_BRANCH=.*, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 11 SIGSEGV, TEST_DESCRIPTION=
+TEST_ID=js1_8_1/trace/trace-test.js, TEST_BRANCH=.*, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=CRASHED signal 11 SIGSEGV, TEST_DESCRIPTION=
--- a/js/tests/spidermonkey-n-1.8.0.tests
+++ b/js/tests/spidermonkey-n-1.8.0.tests
@@ -84,8 +84,10 @@ ecma_2/String/replace-001.js
 #
 # pre ecma warnings are doa
 #
 js1_5/Regress/regress-106244.js
 #
 # do not ignore unicode formatting chars/trunk - bug 274152
 #
 ecma_3/Unicode/uc-001.js
+# bug 355820
+js1_5/extensions/regress-355820.js
--- a/js/tests/spidermonkey-n-1.8.1.tests
+++ b/js/tests/spidermonkey-n-1.8.1.tests
@@ -84,8 +84,10 @@ ecma_2/String/replace-001.js
 #
 # pre ecma warnings are doa
 #
 js1_5/Regress/regress-106244.js
 #
 # do not ignore unicode formatting chars/trunk - bug 274152
 #
 ecma_3/Unicode/uc-001.js
+# bug 355820
+js1_5/extensions/regress-355820.js
--- a/js/tests/spidermonkey-n-1.9.0.tests
+++ b/js/tests/spidermonkey-n-1.9.0.tests
@@ -83,8 +83,17 @@ ecma_2/String/replace-001.js
 #
 # pre ecma warnings are doa
 #
 js1_5/Regress/regress-106244.js
 #
 # do not ignore unicode formatting chars/trunk - bug 274152
 #
 ecma_3/Unicode/uc-001.js
+# bug 408002
+js1_5/Regress/regress-320119.js
+# bug 450275
+js1_5/extensions/regress-434837-01.js
+# bug 380469
+js1_7/geniter/regress-347739.js
+js1_7/geniter/regress-349012-01.js
+js1_7/geniter/regress-349331.js
+js1_7/iterable/regress-340526-02.js
--- a/js/tests/spidermonkey-n-1.9.1.tests
+++ b/js/tests/spidermonkey-n-1.9.1.tests
@@ -101,8 +101,15 @@ js1_5/GetSet/regress-353264.js
 js1_5/Regress/regress-249211.js
 js1_5/Regress/regress-350692.js
 js1_5/Regress/regress-354924.js
 js1_5/Regress/regress-362583.js
 js1_7/extensions/regress-353214-01.js
 js1_7/lexical/regress-346642-03.js
 # bug 450275
 js1_5/extensions/regress-434837-01.js
+# bug 408002
+js1_5/Regress/regress-320119.js
+# bug 380469
+js1_7/geniter/regress-347739.js
+js1_7/geniter/regress-349012-01.js
+js1_7/geniter/regress-349331.js
+js1_7/iterable/regress-340526-02.js
--- a/js/tests/universe.data
+++ b/js/tests/universe.data
@@ -67,16 +67,28 @@ TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
 TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=browser
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser
+TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
 TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0700, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
new file mode 100644
--- /dev/null
+++ b/layout/base/crashtests/455063-1.html
@@ -0,0 +1,6 @@
+<html>
+<body onload="document.documentElement.style.display = 'table'">
+  <span><div></div></span>
+</body>
+
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/base/crashtests/455063-2.html
@@ -0,0 +1,6 @@
+<html style="display:table">
+<body onload="document.documentElement.style.display = 'block'">
+  <span><div></div></span>
+</body>
+
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/base/crashtests/455063-3.html
@@ -0,0 +1,6 @@
+<html style="display:block;-moz-column-count:2;column-count:2;">
+<body>
+  <span><div></div></span>
+</body>
+
+</html>
--- a/layout/base/crashtests/crashtests.list
+++ b/layout/base/crashtests/crashtests.list
@@ -119,8 +119,11 @@ load 420213-1.html
 load 420651-1.xhtml
 load 423107-1.xhtml
 load 428448-1.html
 load 429088-1.html
 load 429088-2.html
 load 432752-1.svg
 load 433450-1.html
 load 444925-1.xul
+load 455063-1.html
+load 455063-2.html
+load 455063-3.html
--- a/layout/base/nsCSSFrameConstructor.cpp
+++ b/layout/base/nsCSSFrameConstructor.cpp
@@ -3153,16 +3153,19 @@ nsCSSFrameConstructor::GetParentFrame(PR
   nsresult rv = NS_OK;
 
   nsIAtom* parentFrameType = aParentFrameIn.GetType();
   nsIFrame* pseudoParentFrame = nsnull;
   nsPseudoFrames& pseudoFrames = aState.mPseudoFrames;
   aParentFrame = &aParentFrameIn;
   aIsPseudoParent = PR_FALSE;
 
+  nsFrameState savedStateBits  = aState.mAdditionalStateBits;
+  aState.mAdditionalStateBits &= ~NS_FRAME_GENERATED_CONTENT;
+
   if (nsGkAtoms::tableOuterFrame == aChildFrameType) { // table child
     if (IsTableRelated(parentFrameType, PR_TRUE) &&
         (nsGkAtoms::tableCaptionFrame != parentFrameType) ) { // need pseudo cell parent
       rv = GetPseudoCellFrame(aNameSpaceID, aState, aParentFrameIn);
       if (NS_FAILED(rv)) return rv;
       pseudoParentFrame = pseudoFrames.mCellInner.mFrame;
     }
   } 
@@ -3221,16 +3224,17 @@ nsCSSFrameConstructor::GetParentFrame(PR
     }
   }
   
   if (pseudoParentFrame) {
     aParentFrame = pseudoParentFrame;
     aIsPseudoParent = PR_TRUE;
   }
 
+  aState.mAdditionalStateBits = savedStateBits;
   return rv;
 }
 
 static PRBool
 IsSpecialContent(nsIContent*     aContent,
                  nsIAtom*        aTag,
                  PRInt32         aNameSpaceID,
                  nsStyleContext* aStyleContext)
@@ -3407,20 +3411,23 @@ nsCSSFrameConstructor::AdjustParentFrame
   // we're not table-related in any way, we have to create table
   // pseudo-frames so that we have a table cell to live in.
   if (IsTableRelated(aParentFrame->GetType(), PR_FALSE) &&
       (!IsTableRelated(aChildStyle->GetStyleDisplay()->mDisplay, PR_TRUE) ||
        // Also need to create a pseudo-parent if the child is going to end up
        // with a frame based on something other than display.
        childIsSpecialContent || // looked it up before
        IsSpecialContent(aChildContent, aTag, aNameSpaceID, aChildStyle))) {
+    nsFrameState savedStateBits  = aState.mAdditionalStateBits;
+    aState.mAdditionalStateBits &= ~NS_FRAME_GENERATED_CONTENT;
     nsresult rv = GetPseudoCellFrame(aNameSpaceID, aState, *aParentFrame);
     if (NS_FAILED(rv)) {
       return rv;
     }
+    aState.mAdditionalStateBits = savedStateBits;
 
     NS_ASSERTION(aState.mPseudoFrames.mCellInner.mFrame,
                  "Must have inner cell frame now!");
 
     aParentFrame = aState.mPseudoFrames.mCellInner.mFrame;
     aFrameItems = &aState.mPseudoFrames.mCellInner.mChildList;
     // We pushed an anonymous table cell.  The inner block of this
     // needs to become the float containing block.
@@ -3530,16 +3537,22 @@ nsCSSFrameConstructor::ConstructTableFra
     aNewOuterFrame->SetInitialChildList(nsnull, aNewInnerFrame);
 
     rv = aState.AddChild(aNewOuterFrame, *frameItems, aContent,
                          aStyleContext, parentFrame);
     if (NS_FAILED(rv)) {
       return rv;
     }
 
+    if (!mInitialContainingBlock) {
+      // The frame we're constructing will be the initial containing block.
+      // Set mInitialContainingBlock before processing children.
+      mInitialContainingBlock = aNewOuterFrame;
+    }
+
     nsFrameItems childItems;
     rv = ProcessChildren(aState, aContent, aNewInnerFrame, PR_TRUE, childItems,
                          PR_FALSE);
     // XXXbz what about cleaning up?
     if (NS_FAILED(rv)) return rv;
 
     // if there are any anonymous children for the table, create frames for them
     CreateAnonymousFrames(nsnull, aState, aContent, aNewInnerFrame,
@@ -4285,16 +4298,19 @@ nsCSSFrameConstructor::ConstructDocEleme
       NS_ASSERTION(!frameItems.childList->GetNextSibling(),
                    "multiple root element frames");
     }
   }
 
   // set the primary frame
   aState.mFrameManager->SetPrimaryFrameFor(aDocElement, contentFrame);
 
+  NS_ASSERTION(processChildren ? !mInitialContainingBlock :
+                 mInitialContainingBlock == contentFrame,
+               "unexpected mInitialContainingBlock");
   mInitialContainingBlock = contentFrame;
 
   // Figure out which frame has the main style for the document element,
   // assigning it to mRootElementStyleFrame.
   // Backgrounds should be propagated from that frame to the viewport.
   PRBool isChild;
   contentFrame->GetParentStyleContextFrame(aState.mPresContext,
           &mRootElementStyleFrame, &isChild);
@@ -7703,18 +7719,17 @@ nsCSSFrameConstructor::GetAbsoluteContai
   // Starting with aFrame, look for a frame that is absolutely positioned or
   // relatively positioned
   nsIFrame* containingBlock = nsnull;
   for (nsIFrame* frame = aFrame; frame && !containingBlock;
        frame = frame->GetParent()) {
     if (frame->IsFrameOfType(nsIFrame::eMathML)) {
       // If it's mathml, bail out -- no absolute positioning out from inside
       // mathml frames.  Note that we don't make this part of the loop
-      // condition because of the mInitialContainingBlock stuff at the
-      // end of this method...
+      // condition because of the stuff at the end of this method...
       return nsnull;
     }
     
     // Is it positioned?
     // If it's table-related then ignore it, because for the time
     // being table-related frames are not containers for absolutely
     // positioned child frames.
     const nsStyleDisplay* disp = frame->GetStyleDisplay();
@@ -12303,16 +12318,22 @@ nsCSSFrameConstructor::ConstructBlock(ns
                                                       aParentFrame);
   if (NS_FAILED(rv)) {
     return rv;
   }
 
   // See if we need to create a view, e.g. the frame is absolutely positioned
   nsHTMLContainerFrame::CreateViewForFrame(blockFrame, contentParent, PR_FALSE);
 
+  if (!mInitialContainingBlock) {
+    // The frame we're constructing will be the initial containing block.
+    // Set mInitialContainingBlock before processing children.
+    mInitialContainingBlock = *aNewFrame;
+  }
+
   // We should make the outer frame be the absolute containing block,
   // if one is required. We have to do this because absolute
   // positioning must be computed with respect to the CSS dimensions
   // of the element, which are the dimensions of the outer block. But
   // we can't really do that because only blocks can have absolute
   // children. So use the block and try to compensate with hacks
   // in nsBlockFrame::CalculateContainingBlockSizeForAbsolutes.
   nsFrameConstructorSaveState absoluteSaveState;
--- a/layout/base/nsCSSRendering.cpp
+++ b/layout/base/nsCSSRendering.cpp
@@ -268,17 +268,17 @@ static void DrawBorderImage(nsPresContex
                             nsIFrame* aForFrame,
                             const nsRect& aBorderArea,
                             const nsStyleBorder& aBorderStyle);
 
 static void DrawBorderImageSide(gfxContext *aThebesContext,
                                 nsIDeviceContext* aDeviceContext,
                                 imgIContainer* aImage,
                                 gfxRect& aDestRect,
-                                gfxSize& aInterSize,
+                                gfxSize aInterSize,
                                 gfxRect& aSourceRect,
                                 PRUint8 aHFillType,
                                 PRUint8 aVFillType);
 
 static void PaintBackgroundColor(nsPresContext* aPresContext,
                                  nsIRenderingContext& aRenderingContext,
                                  nsIFrame* aForFrame,
                                  const nsRect& aBgClipArea,
@@ -1971,17 +1971,18 @@ DrawBorderImage(nsPresContext* aPresCont
     gfxRect rectToDraw,
             rectToDrawSource;
 
     gfxRect clipRect;
     clipRect.pos.x = dc->AppUnitsToGfxUnits(outerRect.x);
     clipRect.pos.y = dc->AppUnitsToGfxUnits(outerRect.y);
     clipRect.size.width = dc->AppUnitsToGfxUnits(outerRect.width);
     clipRect.size.height = dc->AppUnitsToGfxUnits(outerRect.height);
-    thebesCtx->UserToDevicePixelSnapped(clipRect);
+    if (thebesCtx->UserToDevicePixelSnapped(clipRect))
+      clipRect = thebesCtx->DeviceToUser(clipRect);
 
     thebesCtx->Save();
     thebesCtx->PushGroup(gfxASurface::CONTENT_COLOR_ALPHA);
 
     gfxSize middleSize(clipRect.size.width - (borderLeft + borderRight),
                        clipRect.size.height - (borderTop + borderBottom));
 
     // middle size in source space
@@ -2153,32 +2154,34 @@ DrawBorderImage(nsPresContext* aPresCont
     thebesCtx->Restore();
 }
 
 static void
 DrawBorderImageSide(gfxContext *aThebesContext,
                     nsIDeviceContext* aDeviceContext,
                     imgIContainer* aImage,
                     gfxRect& aDestRect,
-                    gfxSize& aInterSize,
+                    gfxSize aInterSize, // non-ref to allow aliasing
                     gfxRect& aSourceRect,
                     PRUint8 aHFillType,
                     PRUint8 aVFillType)
 {
   if (aDestRect.size.width < 1.0 || aDestRect.size.height < 1.0 ||
       aSourceRect.size.width < 1.0 || aSourceRect.size.height < 1.0) {
     return;
   }
 
   gfxIntSize gfxSourceSize((PRInt32)aSourceRect.size.width,
                            (PRInt32)aSourceRect.size.height);
 
   // where the actual border ends up being rendered
-  aThebesContext->UserToDevicePixelSnapped(aDestRect);
-  aThebesContext->UserToDevicePixelSnapped(aSourceRect);
+  if (aThebesContext->UserToDevicePixelSnapped(aDestRect))
+    aDestRect = aThebesContext->DeviceToUser(aDestRect);
+  if (aThebesContext->UserToDevicePixelSnapped(aSourceRect))
+    aSourceRect = aThebesContext->DeviceToUser(aSourceRect);
 
   if (aDestRect.size.height < 1.0 ||
      aDestRect.size.width < 1.0)
     return;
 
   if (aInterSize.width < 1.0 ||
      aInterSize.height < 1.0)
     return;
--- a/layout/base/nsPresContext.cpp
+++ b/layout/base/nsPresContext.cpp
@@ -650,16 +650,19 @@ nsPresContext::GetUserPreferences()
   mFocusRingWidth =
     nsContentUtils::GetIntPref("browser.display.focus_ring_width",
                                mFocusRingWidth);
 
   mFocusRingOnAnything =
     nsContentUtils::GetBoolPref("browser.display.focus_ring_on_anything",
                                 mFocusRingOnAnything);
 
+  mFocusRingStyle =
+          nsContentUtils::GetIntPref("browser.display.focus_ring_style",
+                                      mFocusRingStyle);
   // * use fonts?
   mUseDocumentFonts =
     nsContentUtils::GetIntPref("browser.display.use_document_fonts") != 0;
 
   // * replace backslashes with Yen signs? (bug 245770)
   mEnableJapaneseTransform =
     nsContentUtils::GetBoolPref("layout.enable_japanese_specific_transform");
 
--- a/layout/base/nsPresContext.h
+++ b/layout/base/nsPresContext.h
@@ -368,17 +368,18 @@ public:
   const nscolor DefaultActiveLinkColor() const { return mActiveLinkColor; }
   const nscolor DefaultVisitedLinkColor() const { return mVisitedLinkColor; }
   const nscolor FocusBackgroundColor() const { return mFocusBackgroundColor; }
   const nscolor FocusTextColor() const { return mFocusTextColor; }
 
   PRBool GetUseFocusColors() const { return mUseFocusColors; }
   PRUint8 FocusRingWidth() const { return mFocusRingWidth; }
   PRBool GetFocusRingOnAnything() const { return mFocusRingOnAnything; }
- 
+  PRUint8 GetFocusRingStyle() const { return mFocusRingStyle; }
+
 
   /**
    * Set up observers so that aTargetFrame will be invalidated when
    * aImage loads, where aImage is its background image.  Only a single
    * image will be tracked per frame.
    */
   NS_HIDDEN_(imgIRequest*) LoadImage(imgIRequest* aImage,
                                      nsIFrame* aTargetFrame);
@@ -888,16 +889,17 @@ protected:
 
   nscoord               mBorderWidthTable[3];
 
   unsigned              mUseDocumentFonts : 1;
   unsigned              mUseDocumentColors : 1;
   unsigned              mUnderlineLinks : 1;
   unsigned              mUseFocusColors : 1;
   unsigned              mFocusRingOnAnything : 1;
+  unsigned              mFocusRingStyle : 1;
   unsigned              mDrawImageBackground : 1;
   unsigned              mDrawColorBackground : 1;
   unsigned              mNeverAnimate : 1;
   unsigned              mIsRenderingOnlySelection : 1;
   unsigned              mNoTheme : 1;
   unsigned              mPaginated : 1;
   unsigned              mCanPaginatedScroll : 1;
   unsigned              mDoScaledTwips : 1;
--- a/layout/base/nsPresShell.cpp
+++ b/layout/base/nsPresShell.cpp
@@ -2084,36 +2084,43 @@ nsresult PresShell::SetPrefFocusRules(vo
       strRule.Append(strColor);
       strRule.AppendLiteral(" !important; } ");
       // insert the rules
       result = mPrefStyleSheet->
         InsertRuleInternal(strRule, sInsertPrefSheetRulesAt, &index);
     }
     PRUint8 focusRingWidth = mPresContext->FocusRingWidth();
     PRBool focusRingOnAnything = mPresContext->GetFocusRingOnAnything();
+    PRUint8 focusRingStyle = mPresContext->GetFocusRingStyle();
 
     if ((NS_SUCCEEDED(result) && focusRingWidth != 1 && focusRingWidth <= 4 ) || focusRingOnAnything) {
       PRUint32 index = 0;
       nsAutoString strRule;
       if (!focusRingOnAnything)
         strRule.AppendLiteral("*|*:link:focus, *|*:visited");    // If we only want focus rings on the normal things like links
       strRule.AppendLiteral(":focus {outline: ");     // For example 3px dotted WindowText (maximum 4)
       strRule.AppendInt(focusRingWidth);
-      strRule.AppendLiteral("px dotted WindowText !important; } ");     // For example 3px dotted WindowText
+      if (focusRingStyle == 0) // solid
+        strRule.AppendLiteral("px solid -moz-mac-focusring !important; -moz-outline-radius: 3px;  -moz-outline-offset: 1px; } ");
+      else // dotted
+        strRule.AppendLiteral("px dotted WindowText !important; } ");
       // insert the rules
       result = mPrefStyleSheet->
         InsertRuleInternal(strRule, sInsertPrefSheetRulesAt, &index);
       NS_ENSURE_SUCCESS(result, result);
       if (focusRingWidth != 1) {
         // If the focus ring width is different from the default, fix buttons with rings
         strRule.AssignLiteral("button::-moz-focus-inner, input[type=\"reset\"]::-moz-focus-inner,");
         strRule.AppendLiteral("input[type=\"button\"]::-moz-focus-inner, ");
         strRule.AppendLiteral("input[type=\"submit\"]::-moz-focus-inner { padding: 1px 2px 1px 2px; border: ");
         strRule.AppendInt(focusRingWidth);
-        strRule.AppendLiteral("px dotted transparent !important; } ");
+        if (focusRingStyle == 0) // solid
+          strRule.AppendLiteral("px solid transparent !important; } ");
+        else
+          strRule.AppendLiteral("px dotted transparent !important; } ");
         result = mPrefStyleSheet->
           InsertRuleInternal(strRule, sInsertPrefSheetRulesAt, &index);
         NS_ENSURE_SUCCESS(result, result);
           
         strRule.AssignLiteral("button:focus::-moz-focus-inner, input[type=\"reset\"]:focus::-moz-focus-inner,");
         strRule.AppendLiteral("input[type=\"button\"]:focus::-moz-focus-inner, input[type=\"submit\"]:focus::-moz-focus-inner {");
         strRule.AppendLiteral("border-color: ButtonText !important; }");
         result = mPrefStyleSheet->
--- a/layout/generic/nsObjectFrame.cpp
+++ b/layout/generic/nsObjectFrame.cpp
@@ -873,19 +873,23 @@ nsObjectFrame::InstantiatePlugin(nsIPlug
   if (appShell) {
     appShell->SuspendNative();
   }
 
   NS_ASSERTION(mContent, "We should have a content node.");
 
   nsIDocument* doc = mContent->GetOwnerDoc();
   nsCOMPtr<nsIPluginDocument> pDoc (do_QueryInterface(doc));
+  PRBool fullPageMode = PR_FALSE;
+  if (pDoc) {
+    pDoc->GetWillHandleInstantiation(&fullPageMode);
+  }
 
   nsresult rv;
-  if (pDoc) {  /* full-page mode */
+  if (fullPageMode) {  /* full-page mode */
     nsCOMPtr<nsIStreamListener> stream;
     rv = aPluginHost->InstantiateFullPagePlugin(aMimeType, aURI,
           /* resulting stream listener */       *getter_AddRefs(stream),
                                                 mInstanceOwner);
     if (NS_SUCCEEDED(rv))
       pDoc->SetStreamListener(stream);
   } else {   /* embedded mode */
     rv = aPluginHost->InstantiateEmbeddedPlugin(aMimeType, aURI,
--- a/layout/generic/nsSelection.cpp
+++ b/layout/generic/nsSelection.cpp
@@ -5888,31 +5888,30 @@ nsTypedSelection::RemoveRange(nsIDOMRang
   nsCOMArray<nsIDOMRange> affectedRanges;
   rv = GetRangesForIntervalCOMArray(beginNode, beginOffset,
                                     endNode, endOffset,
                                     PR_TRUE, &affectedRanges);
   NS_ENSURE_SUCCESS(rv, rv);
   for (PRInt32 i = 0; i < affectedRanges.Count(); i ++)
     selectFrames(presContext, affectedRanges[i], PR_TRUE);
 
-  // When the selection is user-created it makes sense to scroll the range
-  // into view. The spell-check selection, however, is created and destroyed
-  // in the background. We don't want to scroll in this case or the view
-  // might appear to be moving randomly (bug 337871).
-  if (mType != nsISelectionController::SELECTION_SPELLCHECK &&
-      aRange == mAnchorFocusRange.get())
-  {
-    PRInt32 cnt = mRanges.Length();
-    if (cnt > 0)
-    {
-      setAnchorFocusRange(cnt - 1);//reset anchor to LAST range.
+  PRInt32 cnt = mRanges.Length();
+  if (aRange == mAnchorFocusRange.get()) {
+    // Reset anchor to LAST range or clear it if there are no ranges.
+    setAnchorFocusRange(cnt - 1);
+
+    // When the selection is user-created it makes sense to scroll the range
+    // into view. The spell-check selection, however, is created and destroyed
+    // in the background. We don't want to scroll in this case or the view
+    // might appear to be moving randomly (bug 337871).
+    if (mType != nsISelectionController::SELECTION_SPELLCHECK && cnt > 0)
       ScrollIntoView(nsISelectionController::SELECTION_FOCUS_REGION, PR_FALSE,
                      PR_FALSE);
-    }
-  }
+  }
+
   if (!mFrameSelection)
     return NS_OK;//nothing to do
   return mFrameSelection->NotifySelectionListeners(GetType());
 }
 
 
 
 /*
new file mode 100644
--- /dev/null
+++ b/layout/reftests/border-image/multicolor-image-4-ref.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+  <title>test of -moz-border-image</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta http-equiv="Content-Style-Type" content="text/css">
+  <style type="text/css">
+
+  table { margin: 0; padding: 0; border-spacing: 0; empty-cells: show; }
+  td { padding: 0; }
+  table { margin-bottom: 6px; }
+
+  </style>
+</head>
+<body>
+
+<div style="padding-top: 100px; padding-left: 100px">
+<table>
+  <col style="width: 22px">
+  <col style="width: 18px">
+  <col style="width: 12px">
+  <tr style="height: 12px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 3px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 24px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 8px">
+  <col style="width: 4px">
+  <col style="width: 2px">
+  <tr style="height: 9px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 51px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 6px">
+  <col style="width: 34px">
+  <col style="width: 4px">
+  <tr style="height: 30px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 24px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 15px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 0px">
+  <col style="width: 16px">
+  <col style="width: 14px">
+  <tr style="height: 15px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 15px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 3px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 4px">
+  <col style="width: 0px">
+  <col style="width: 16px">
+  <tr style="height: 12px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 24px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 30px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 4px">
+  <col style="width: 34px">
+  <col style="width: 0px">
+  <tr style="height: 12px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 30px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 0px">
+  <col style="width: 34px">
+  <col style="width: 6px">
+  <tr style="height: 3px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+</div>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/border-image/multicolor-image-4.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+  <title>test of -moz-border-image</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta http-equiv="Content-Style-Type" content="text/css">
+  <style type="text/css">
+
+  /**
+   * This is a copy of multicolor-image-2.html with a few changes:
+   *   (1) the whole thing is inside a -moz-transform
+   *   (2) different border-images have different values for
+   *       repeat/stretch/round
+   */
+
+  body {
+    width: 100px;
+    -moz-transform: translate(100px, 100px) scale(2,3);
+    -moz-transform-origin: 0 0;
+    -khtml-transform: translate(100px, 100px) scale(2,3);
+    -khtml-transform-origin: 0 0;
+    transform: translate(100px, 100px) scale(2,3);
+    transform-origin: 0 0;
+  }
+
+  div {
+    background: red; /* fail if this shows through */
+    background-image: url('3x3multicolor.png'); /* fail if this shows through */
+    margin-bottom: 2px;
+  }
+
+  div.one {
+    -moz-border-image: url(10x5multicolor.png) 2 2 1 3 stretch;
+    -khtml-border-image: url(10x5multicolor.png) 2 2 1 3 stretch;
+    border-image: url(10x5multicolor.png) 2 2 1 3 stretch;
+    border-width: 4px 6px 8px 11px;
+    width: 9px;
+    height: 1px;
+  }
+
+  div.two {
+    -moz-border-image: url(10x5multicolor.png) 40% 20% 20% 30% repeat;
+    -khtml-border-image: url(10x5multicolor.png) 40% 20% 20% 30% repeat;
+    border-image: url(10x5multicolor.png) 40% 20% 20% 30% repeat;
+    border-width: 3px 1px 0px 4px;
+    width: 2px;
+    height: 17px;
+  }
+
+  div.three {
+    -moz-border-image: url(10x5multicolor.png) 40% 2 1 30% round;
+    -khtml-border-image: url(10x5multicolor.png) 40% 2 1 30% round;
+    border-image: url(10x5multicolor.png) 40% 2 1 30% round;
+    border-width: 10px 2px 5px 3px;
+    width: 17px;
+    height: 8px;
+  }
+
+  div.four {
+    -moz-border-image: url(10x5multicolor.png) 2 2 20% 30% stretch round;
+    -khtml-border-image: url(10x5multicolor.png) 2 2 20% 30% stretch round;
+    border-image: url(10x5multicolor.png) 2 2 20% 30% stretch round;
+    border-width: 5px 7px 1px 0;
+    width: 8px;
+    height: 5px;
+  }
+
+  div.five {
+    border-width: 5px 6px 7px 8px; /* ignored */
+    border-width: 5px 6px 7px 8px ! important; /* ignored */
+    -moz-border-image: url(10x5multicolor.png) 40% 2 1 30% / 4px 8px 10px 2px repeat stretch;
+    -khtml-border-image: url(10x5multicolor.png) 40% 2 1 30% / 4px 8px 10px 2px repeat stretch;
+    border-image: url(10x5multicolor.png) 40% 2 1 30% / 4px 8px 10px 2px repeat stretch;
+    border-width: 5px 6px 7px 8px; /* ignored */
+    border-width: 5px 6px 7px 8px ! important; /* ignored */
+    width: 0;
+    height: 8px;
+  }
+  div.five {
+    border-width: 5px 6px 7px 8px; /* ignored */
+    border-width: 5px 6px 7px 8px ! important; /* ignored */
+  }
+
+  div.six {
+    border-width: 5px 6px 7px 8px; /* ignored */
+    -moz-border-image: url(10x5multicolor.png) 40% 2 1 30% / 4px 0 10px 2px round repeat;
+    -khtml-border-image: url(10x5multicolor.png) 40% 2 1 30% / 4px 0 10px 2px round repeat;
+    border-image: url(10x5multicolor.png) 40% 2 1 30% / 4px 0 10px 2px round repeat;
+    width: 17px;
+    height: 0;
+  }
+
+  div.seven {
+    -moz-border-image: url(10x5multicolor.png) 40% 2 1 30% stretch repeat;
+    -khtml-border-image: url(10x5multicolor.png) 40% 2 1 30% stretch repeat;
+    border-image: url(10x5multicolor.png) 40% 2 1 30% stretch repeat;
+    border-width: 1px 3px 0 0;
+    width: 17px;
+    height: 0;
+  }
+
+  </style>
+</head>
+<body>
+<div class="one"></div>
+<div class="two"></div>
+<div class="three"></div>
+<div class="four"></div>
+<div class="five"></div>
+<div class="six"></div>
+<div class="seven"></div>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/border-image/multicolor-image-5-ref.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+  <title>test of -moz-border-image</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta http-equiv="Content-Style-Type" content="text/css">
+  <style type="text/css">
+
+  table { margin: 0; padding: 0; border-spacing: 0; empty-cells: show; }
+  td { padding: 0; }
+  table { margin-bottom: 2px; }
+
+  </style>
+</head>
+<body>
+
+<div style="padding-top: 100px; padding-left: 100px">
+<table>
+  <col style="width: 11px">
+  <col style="width: 9px">
+  <col style="width: 6px">
+  <tr style="height: 4px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 1px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 8px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 4px">
+  <col style="width: 2px">
+  <col style="width: 1px">
+  <tr style="height: 3px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 17px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 3px">
+  <col style="width: 17px">
+  <col style="width: 2px">
+  <tr style="height: 10px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 8px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 5px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 0px">
+  <col style="width: 8px">
+  <col style="width: 7px">
+  <tr style="height: 5px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 5px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 1px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 2px">
+  <col style="width: 0px">
+  <col style="width: 8px">
+  <tr style="height: 4px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 8px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 10px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 2px">
+  <col style="width: 17px">
+  <col style="width: 0px">
+  <tr style="height: 4px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 10px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+
+<table>
+  <col style="width: 0px">
+  <col style="width: 17px">
+  <col style="width: 3px">
+  <tr style="height: 1px">
+    <td style="background: #93bd5d"></td>
+    <td style="background: #b55dbd"></td>
+    <td style="background: #8d4921"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #21a02c"></td>
+    <td style="background: #4a298e"></td>
+    <td style="background: #ef9b23"></td>
+  </tr>
+  <tr style="height: 0px">
+    <td style="background: #9b733a"></td>
+    <td style="background: #f155ad"></td>
+    <td style="background: #adf3eb"></td>
+  </tr>
+</table>
+</div>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/border-image/multicolor-image-5.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+  <title>test of -moz-border-image</title>
+  <meta http-equiv="C