
PASS document.createElement must create an instance of custom elements
PASS document.createElement must create an instance of autonomous custom elements when it has is attribute
FAIL document.createElement()'s second argument is to be ignored when it's a string assert_true: expected true got false
PASS document.createElement must report a TypeError when the result of Construct is not a DOM node
PASS document.createElement must report a TypeError when the result of Construct is a TextNode
PASS document.createElement must report a NotSupportedError when attribute is added by setAttribute during construction
PASS document.createElement must report a NotSupportedError when attribute is added by attributes.setNamedItem during construction
PASS document.createElement must not report a NotSupportedError when attribute is added and removed during construction
PASS document.createElement must report a NotSupportedError when a Text child is added during construction
PASS document.createElement must report a NotSupportedError when a Comment child is added during construction
PASS document.createElement must report a NotSupportedError when an element child is added during construction
PASS document.createElement must not report a NotSupportedError when an element child is added and removed during construction
PASS document.createElement must report a NotSupportedError when the element gets inserted into another element during construction
PASS document.createElement must not report a NotSupportedError when the element is inserted and removed from another element during construction
PASS document.createElement must report a NotSupportedError when the element is adopted into a the document of the template elements during construction
PASS document.createElement must report a NotSupportedError when the element is inserted into a the document of the template elements during construction
PASS document.createElement must not report a NotSupportedError when the element is adopted back from a the document of the template elements during construction
PASS document.createElement must report a NotSupportedError when the element is adopted into a a new document during construction
PASS document.createElement must report a NotSupportedError when the element is inserted into a a new document during construction
PASS document.createElement must not report a NotSupportedError when the element is adopted back from a a new document during construction
PASS document.createElement must report a NotSupportedError when the element is adopted into a a cloned document during construction
PASS document.createElement must report a NotSupportedError when the element is inserted into a a cloned document during construction
PASS document.createElement must not report a NotSupportedError when the element is adopted back from a a cloned document during construction
PASS document.createElement must report a NotSupportedError when the element is adopted into a a document created by createHTMLDocument during construction
PASS document.createElement must report a NotSupportedError when the element is inserted into a a document created by createHTMLDocument during construction
PASS document.createElement must not report a NotSupportedError when the element is adopted back from a a document created by createHTMLDocument during construction
PASS document.createElement must report a NotSupportedError when the element is adopted into a an HTML document created by createDocument during construction
PASS document.createElement must report a NotSupportedError when the element is inserted into a an HTML document created by createDocument during construction
PASS document.createElement must not report a NotSupportedError when the element is adopted back from a an HTML document created by createDocument during construction
PASS document.createElement must report a NotSupportedError when the element is adopted into a the document of an iframe during construction
PASS document.createElement must report a NotSupportedError when the element is inserted into a the document of an iframe during construction
PASS document.createElement must not report a NotSupportedError when the element is adopted back from a the document of an iframe during construction
PASS document.createElement must report a NotSupportedError when the element is adopted into a an HTML document fetched by XHR during construction
PASS document.createElement must report a NotSupportedError when the element is inserted into a an HTML document fetched by XHR during construction
PASS document.createElement must not report a NotSupportedError when the element is adopted back from a an HTML document fetched by XHR during construction
PASS document.createElement must report a NotSupportedError when the local name of the element does not match that of the custom element
PASS document.createElement must report an exception thrown by a custom element constructor
FAIL document.createElement must report an exception thrown by a custom built-in element constructor assert_throws_exactly: function "function () { new ThrowCustomBuiltinElement; }" threw object "TypeError: Illegal constructor" but we expected it to throw object "[object Object]"
FAIL document.createElement with unknown "is" value should create "undefined" state element assert_true: Undefined element is upgraded on connecting to a document expected true got false
PASS document.createElement with undefined options value should be upgraded.

