shared-array-buffer.js (1068B)
1 // |jit-test| skip-if: !this.SharedArrayBuffer 2 3 var gb = 1 * 1024 * 1024 * 1024; 4 var sab = new SharedArrayBuffer(4 * gb + 10); 5 var ta = new Uint8Array(sab); 6 7 function testSlice() { 8 // Large |start| and |end|. 9 ta[4 * gb + 0] = 11; 10 ta[4 * gb + 1] = 22; 11 ta[4 * gb + 2] = 33; 12 ta[4 * gb + 3] = 44; 13 var ta2 = new Uint8Array(sab.slice(4 * gb, 4 * gb + 4)); 14 assertEq(ta2.toString(), "11,22,33,44"); 15 16 // Large |start|. 17 ta[ta.length - 3] = 99; 18 ta[ta.length - 2] = 88; 19 ta[ta.length - 1] = 77; 20 ta2 = new Uint8Array(sab.slice(4 * gb + 8)); 21 assertEq(ta2.toString(), "88,77"); 22 23 // Relative values. 24 ta2 = new Uint8Array(sab.slice(-3, -1)); 25 assertEq(ta2.toString(), "99,88"); 26 27 // Large relative values. 28 ta[0] = 100; 29 ta[1] = 101; 30 ta[2] = 102; 31 ta2 = new Uint8Array(sab.slice(-ta.length, -ta.length + 3)); 32 assertEq(ta2.toString(), "100,101,102"); 33 } 34 testSlice(); 35 36 function testSharedMailbox() { 37 setSharedObject(sab); 38 assertEq(getSharedObject().byteLength, 4 * gb + 10); 39 } 40 testSharedMailbox();