<!DOCTYPE html>
<html>
<head>
<title>If prototype has a non-configurable property named constructor, Document.registerElement() throws NotSupportedError</title>
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="assert" content="If  PROTOTYPE has a non-configurable property named constructor, throw a NotSupportedError and stop">
<link rel="help" href="http://www.w3.org/TR/custom-elements/#instantiating-custom-elements">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../testcommon.js"></script>
<link rel="stylesheet" href="/resources/testharness.css">
</head>
<body>
<div id="log"></div>
<script>
test(function() {
    var doc = newHTMLDocument();
    var proto = Object.create(HTMLElement.prototype);
    Object.defineProperty(proto, 'constructor', {configurable: false});
    assert_throws('NotSupportedError', function() {
        doc.registerElement('x-a', {prototype: proto});
    }, 'Exception should be thrown in case of attempt to register element ' +
        'with a non-configurable property named constructor');
}, 'Test Document.registerElement() throws NotSupportedError ' +
    'if prototype has a non-configurable property named constructor');


test(function() {
    var doc = newHTMLDocument();
    var proto = Object.create(HTMLElement.prototype);
    Object.defineProperty(proto, 'constructor', {configurable: true});
    try {
        doc.registerElement('x-b', {prototype: proto});
    } catch (e) {
        assert_unreached('Exception should not be thrown in case of attempt to register ' +
            'element with a configurable property named constructor');
    }
}, 'Test Document.registerElement() accepts prototype with a configurable ' +
    'property named constructor without throwing errors');
</script>
</body>
</html>
