| <!DOCTYPE html> |
| <title>Custom Elements: Custom element in foreign content</title> |
| <meta name="assert" content="HTML parser should not create non-HTML namespace custom elements"> |
| <link rel="help" href="https://html.spec.whatwg.org/#create-an-element-for-the-token"> |
| <link rel="help" href="https://dom.spec.whatwg.org/#concept-create-element"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| class ThrowsException extends HTMLElement { |
| constructor() { |
| throw 'Bad'; |
| } |
| }; |
| customElements.define('throws-exception', ThrowsException); |
| </script> |
| <svg> |
| <throws-exception/> |
| </svg> |
| <script> |
| test(function () { |
| var instance = document.querySelector('throws-exception'); |
| assert_false(instance instanceof ThrowsException, |
| 'The HTML parser must NOT instantiate a custom element in non-HTML namespaces'); |
| assert_false(instance instanceof HTMLUnknownElement, 'The HTML parser should not fallback'); |
| assert_true(instance instanceof SVGElement, |
| 'The element created by the HTML parser must be an instance of SVGElement'); |
| }, 'HTML parser should not create custom elements in non-HTML namespaces'); |
| </script> |