<!--
Copyright (c) 2019 The Khronos Group Inc.
Use of this source code is governed by an MIT-style license that can be
found in the LICENSE.txt file.
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="../../resources/js-test-style.css"/>
<script src="../../js/js-test-pre.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>

<script>
"use strict";

description('Verify that constructing a typed array view with no arguments and fetching its length does not crash');


// The following used to cause a crash in both Safari and Chrome.

// Note that because the argument to ArrayBuffer's constructor is not
// optional, an implementation might throw an exception on the expression
// below rather than implicitly passing undefined. Either way is acceptable
// from the point of view of this test, but implementations must not crash.
try {
  new Uint32Array().length;
} catch (e) {
}

testPassed("new Uint32Array().length did not crash");
var successfullyParsed = true;

</script>
<script src="../../js/js-test-post.js"></script>

</body>
</html>
