<!DOCTYPE html>
<title>Module scripts should ignore BOMs and always use UTF-8</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
setup({allow_uncaught_exception: true});
</script>
<script type="module" src="../serve-with-content-type.py?fn=resources/bom-utf-8.js&ct=text/javascript"></script>
<script type="module" src="../serve-with-content-type.py?fn=resources/bom-utf-16be.js&ct=text/javascript"></script>
<script type="module" src="../serve-with-content-type.py?fn=resources/bom-utf-16le.js&ct=text/javascript"></script>
<script type="module">
test(function() {
  assert_equals(window.executed_utf8_bom, '\u4e09\u6751\u304b\u306a\u5b50',
                'Should be decoded as UTF-8');
}, 'UTF-8 module script with UTF-8 BOM');

test(function() {
  assert_equals(window.executed_utf16be_bom, undefined,
                'Should result in compile error because of UTF-16BE BOM');
}, 'UTF-16 module script with UTF-16BE BOM');

test(function() {
  assert_equals(window.executed_utf16le_bom, undefined,
                'Should result in compile error because of UTF-16LE BOM');
}, 'UTF-16 module script with UTF-16LE BOM');
</script>
