// |reftest| skip-if(!xulRuntime.shell) // Any copyright is dedicated to the Public Domain. // http://creativecommons.org/licenses/publicdomain/ function viewToString(view) { return String.fromCharCode.apply(null, view); } function assertThrows(f, wantException) { try { f(); assertEq(true, false, "expected " + wantException + " exception"); } catch (e) { assertEq(e.name, wantException.name, e.toString()); } } function test() { var filename = "file-mapped-arraybuffers.txt"; var buffer = createMappedArrayBuffer(filename); var view = new Uint8Array(buffer); assertEq(viewToString(view), "01234567abcdefghijkl"); var buffer2 = createMappedArrayBuffer(filename, 8); view = new Uint8Array(buffer2); assertEq(viewToString(view), "abcdefghijkl"); var buffer3 = createMappedArrayBuffer(filename, 0, 8); view = new Uint8Array(buffer3); assertEq(viewToString(view), "01234567"); // Check that invalid sizes and offsets are caught assertThrows(() => createMappedArrayBuffer("empty.txt", 8), RangeError); assertThrows(() => createMappedArrayBuffer("empty.txt", 0, 8), Error); } if (getBuildConfiguration()["mapped-array-buffer"]) test(); reportCompare(0, 0, 'ok');