<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="resources/webgl-test.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>

<script>

description("Verifies that attempting to set out-of-bounds elements of a WebGLArray from a JavaScript array throws an exception");

debug('Regression test for <a href="https://bugs.webkit.org/show_bug.cgi?id=33352">https://bugs.webkit.org/show_bug.cgi?id=33352</a> : <code>Passing array that is too large to set method of WebGLArrays does not throw an exception</code>');

// Global scope so shouldThrow can see it
var webGLArray;

function negativeTestSet(typeName) {
    var type = window[typeName];
    webGLArray = new type([2, 3]);
    debug('Testing ' + typeName);
    shouldThrow("webGLArray.set([4, 5], 1)");
    shouldThrow("webGLArray.set([4, 5, 6])");
}

negativeTestSet("Int8Array");
negativeTestSet("Uint8Array");
negativeTestSet("Int16Array");
negativeTestSet("Uint16Array");
negativeTestSet("Int32Array");
negativeTestSet("Uint32Array");
negativeTestSet("Float32Array");

</script>
</body>
</html>
