| <script src="../resources/js-test-pre.js"></script> |
| <script> |
| description("Tests that interfaces objects have the right type"); |
| // http://heycam.github.io/webidl/#interface-object |
| |
| object = {}; |
| |
| debug("* Interface with constructor"); |
| shouldBeTrue("window.Event instanceof Function"); |
| shouldBeEqualToString("typeof Event", "function"); |
| shouldBe("Object.getPrototypeOf(Event)", "Function.prototype"); |
| shouldThrow("Event('click')"); |
| shouldThrow("Event.call('click')"); |
| shouldNotThrow("new Event('click')"); |
| shouldBeEqualToString("Event.toString()", "function Event() {\n [native code]\n}"); |
| shouldBeEqualToString("object.toString.call(Event)", "[object Function]"); |
| |
| debug(""); |
| debug("* Interface with named constructor"); |
| shouldBeTrue("window.Audio instanceof Function"); |
| shouldBeEqualToString("typeof Audio", "function"); |
| shouldBe("Object.getPrototypeOf(Audio)", "Function.prototype"); |
| shouldThrow("Audio()"); |
| shouldThrow("Audio.call()"); |
| shouldNotThrow("new Audio()"); |
| shouldBeEqualToString("Audio.toString()", "function Audio() {\n [native code]\n}"); |
| shouldBeEqualToString("object.toString.call(Audio)", "[object Function]"); |
| |
| debug(""); |
| debug("* Interface without constructor"); |
| shouldBeTrue("window.Element instanceof Function"); |
| shouldBeEqualToString("typeof Element", "function"); |
| shouldBe("Object.getPrototypeOf(Element)", "Node"); |
| shouldThrow("Element()"); |
| shouldThrow("Element.call()"); |
| shouldThrow("new Element()"); |
| shouldBeEqualToString("Element.toString()", "function Element() {\n [native code]\n}"); |
| shouldBeEqualToString("object.toString.call(Element)", "[object Function]"); |
| |
| </script> |
| <script src="../resources/js-test-post.js"></script> |