| <!DOCTYPE html> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| test(function () { |
| "use strict"; |
| |
| class Foo extends HTMLDivElement { |
| static staticFunction () { return "static function called"; } |
| } |
| |
| var customFoo = document.registerElement("custom-foo", { |
| prototype: Foo.prototype, |
| }); |
| |
| assert_equals(Object.getPrototypeOf(customFoo), Foo, |
| 'generated constructor prototype should be base element constructor'); |
| |
| assert_equals(customFoo.staticFunction(), "static function called", |
| 'static function should be called using inherited element'); |
| |
| assert_equals(Object.getPrototypeOf(customFoo).__proto__, HTMLDivElement, |
| 'prototype chain should have base constructor\'s prototype'); |
| }, 'should inherit from passed constructor'); |
| </script> |