| Index: third_party/WebKit/LayoutTests/custom-elements/spec/create-element-defined-synchronous.html
 | 
| diff --git a/third_party/WebKit/LayoutTests/custom-elements/spec/create-element-defined-synchronous.html b/third_party/WebKit/LayoutTests/custom-elements/spec/create-element-defined-synchronous.html
 | 
| index 49de1f0ee4bad82f16081e5e96e2e0d968eb75fc..d18c14ca3c23110b995a92723aba571adfadcd4f 100644
 | 
| --- a/third_party/WebKit/LayoutTests/custom-elements/spec/create-element-defined-synchronous.html
 | 
| +++ b/third_party/WebKit/LayoutTests/custom-elements/spec/create-element-defined-synchronous.html
 | 
| @@ -11,33 +11,68 @@ const expectTypeError = TypeError.prototype;
 | 
|  const expectNotSupportedError = 'NOT_SUPPORTED_ERR';
 | 
|  
 | 
|  // https://dom.spec.whatwg.org/#concept-create-element
 | 
| +// 5. If definition is non-null and the definition represents a customized built-in element:
 | 
| +// 5.3. If the synchronous custom elements flag is set:
 | 
|  // 6. If definition is non-null, then:
 | 
|  // 6.1. If the synchronous custom elements flag is set:
 | 
|  
 | 
|  test_create_element_synchronous(
 | 
|    'createElement(): ',
 | 
| -  (w, constructor, options) => {
 | 
| -    w.customElements.define('a-a', constructor, options);
 | 
| -    return w.document.createElement('a-a');
 | 
| +  (w, constructor, opt_tag) => {
 | 
| +    if (!opt_tag) {
 | 
| +      w.customElements.define('a-a', constructor);
 | 
| +      return w.document.createElement('a-a');
 | 
| +    } else {
 | 
| +      let extend_options = { extends: opt_tag };
 | 
| +      w.customElements.define('a-a', constructor, extend_options);
 | 
| +      return w.document.createElement(opt_tag, { is: 'a-a' });
 | 
| +    }
 | 
|    });
 | 
|  
 | 
|  test_create_element_synchronous(
 | 
|    'createElementNS(): ',
 | 
| -  (w, constructor, options) => {
 | 
| -    w.customElements.define('a-a', constructor, options);
 | 
| -    return w.document.createElementNS('http://www.w3.org/1999/xhtml', 'a-a');
 | 
| +  (w, constructor, opt_tag) => {
 | 
| +    if (!opt_tag) {
 | 
| +      w.customElements.define('a-a', constructor);
 | 
| +      return w.document.createElementNS('http://www.w3.org/1999/xhtml', 'a-a');
 | 
| +    } else {
 | 
| +      let extend_options = { extends: opt_tag };
 | 
| +      w.customElements.define('a-a', constructor, extend_options);
 | 
| +      return w.document.createElementNS('http://www.w3.org/1999/xhtml', opt_tag, { is: 'a-a' });
 | 
| +    }
 | 
|    });
 | 
|  
 | 
|  function test_create_element_synchronous(description, define_and_create_element) {
 | 
|    test_with_window((w) => {
 | 
|      let is_constructed = false;
 | 
| -    define_and_create_element(w, class extends w.HTMLElement {
 | 
| +    class A extends w.HTMLElement {
 | 
|        constructor() { super(); is_constructed = true; }
 | 
| -    });
 | 
| +    }
 | 
| +    let o = define_and_create_element(w, A);
 | 
|      assert_true(is_constructed, 'custom constructor ran');
 | 
| +    assert_equals(o.constructor, A);
 | 
|    }, `${description}Pre-flight check should succeed`);
 | 
|  
 | 
|    test_with_window((w) => {
 | 
| +    let is_constructed = false;
 | 
| +    class A extends w.HTMLDivElement {
 | 
| +      constructor() { super(); is_constructed = true; }
 | 
| +    }
 | 
| +    let o = define_and_create_element(w, A, 'div');
 | 
| +    assert_true(is_constructed, 'custom constructor ran');
 | 
| +    assert_equals(o.constructor, A);
 | 
| +  }, `${description}5. Create a customized built-in element`);
 | 
| +
 | 
| +  test_with_window((w) => {
 | 
| +    let is_constructed = false;
 | 
| +    class A extends w.HTMLElement {
 | 
| +      constructor() { super(); is_constructed = true; }
 | 
| +    }
 | 
| +    define_and_create_element(w, A);
 | 
| +    assert_true(is_constructed, 'custom constructor ran');
 | 
| +  }, `${description}6. Create an autonomous custom element`);
 | 
| +
 | 
| +  test_with_window((w) => {
 | 
|      const err = new Error('check this is reported');
 | 
|      err.name = 'reported';
 | 
|      assert_reports(w, err, () => {
 | 
| 
 |