@Test public void testAccessSignedValueFromUnsignedByte_Greater128() { V8TypedArray array = (V8TypedArray) v8.executeScript("var buf = new ArrayBuffer(8); var bytes = new Uint8ClampedArray(buf); bytes[0] = 240; bytes[1] = 7; bytes"); V8ArrayBuffer arrayBuffer = array.getBuffer(); short result = (short) (arrayBuffer.get() & 0xFF); assertEquals(240, result); array.close(); arrayBuffer.close(); }
@Test public void testAccessSignedValueFromUnsignedByte_Less128() { V8TypedArray array = (V8TypedArray) v8.executeScript("var buf = new ArrayBuffer(8); var bytes = new Uint8Array(buf); bytes[0] = 20; bytes[1] = 7; bytes"); V8ArrayBuffer arrayBuffer = array.getBuffer(); short result = (short) (arrayBuffer.get() & 0xFF); assertEquals(20, result); array.close(); arrayBuffer.close(); }
@Test public void testGetArrayBuffer_Int8Array() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 2); V8ArrayBuffer result = v8Int8Array.getBuffer(); assertEquals(result, buffer); result.close(); buffer.close(); v8Int8Array.close(); }
@Test public void testGetArrayBuffer_Int32Array() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int32Array = new V8TypedArray(v8, buffer, V8Value.INTEGER, 0, 2); V8ArrayBuffer result = v8Int32Array.getBuffer(); assertEquals(result, buffer); result.close(); buffer.close(); v8Int32Array.close(); }
@Test public void testGetByteBuffer_Int8Array() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 2); V8ArrayBuffer arrayBuffer = v8Int8Array.getBuffer(); assertEquals(arrayBuffer, buffer); buffer.close(); v8Int8Array.close(); arrayBuffer.close(); }
@Test public void testTypedArrayInMap() { TypedArray int8Array = new TypedArray(v8, new ArrayBuffer(v8, ByteBuffer.allocateDirect(8)), V8Value.INT_8_ARRAY, 0, 8); V8TypedArray v8TypedArray = int8Array.getV8TypedArray(); V8ArrayBuffer v8ArrayBuffer = v8TypedArray.getBuffer(); v8ArrayBuffer.put(0, (byte) 7); v8TypedArray.close(); v8ArrayBuffer.close(); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("array", int8Array); V8Object object = V8ObjectUtils.toV8Object(v8, map); V8TypedArray v8Array = (V8TypedArray) object.get("array"); assertEquals((byte) 7, v8Array.get(0)); assertEquals(V8Value.INT_8_ARRAY, v8Array.getType()); v8Array.close(); object.close(); }
@Test public void testUseAccessedArrayBuffer_Int32Array() { V8TypedArray array = (V8TypedArray) v8.executeScript("\n" + "var buffer = new ArrayBuffer(8);" + "var array = new Int32Array(buffer);" + "array[0] = 1; array[1] = 7;" + "array;"); V8ArrayBuffer buffer = array.getBuffer(); assertEquals(1, buffer.getInt(0)); assertEquals(7, buffer.getInt(4)); buffer.close(); array.close(); }
@Test public void testUseAccessedArrayBuffer_Int8Array() { V8TypedArray array = (V8TypedArray) v8.executeScript("\n" + "var buffer = new ArrayBuffer(8);" + "var array = new Int8Array(buffer);" + "array[0] = 1; array[1] = 7;" + "array;"); V8ArrayBuffer buffer = array.getBuffer(); assertEquals(1, buffer.get(0)); assertEquals(7, buffer.get(1)); buffer.close(); array.close(); }
@Test public void testTypedArrayInList() { TypedArray int8Array = new TypedArray(v8, new ArrayBuffer(v8, ByteBuffer.allocateDirect(8)), V8Value.INT_8_ARRAY, 0, 8); V8TypedArray v8TypedArray = int8Array.getV8TypedArray(); V8ArrayBuffer v8ArrayBuffer = v8TypedArray.getBuffer(); v8ArrayBuffer.put(0, (byte) 7); v8TypedArray.close(); v8ArrayBuffer.close(); List<Object> list = new ArrayList<Object>(); list.add(int8Array); V8Array array = V8ObjectUtils.toV8Array(v8, list); V8Array v8Array = (V8Array) array.get(0); assertEquals((byte) 7, v8Array.get(0)); assertEquals(V8Value.INT_8_ARRAY, v8Array.getType()); v8Array.close(); array.close(); }
@Test public void testGetTypedArray() { TypedArray int8Array = new TypedArray(v8, new ArrayBuffer(v8, ByteBuffer.allocateDirect(8)), V8Value.INT_8_ARRAY, 0, 8); V8TypedArray v8TypedArray = int8Array.getV8TypedArray(); V8ArrayBuffer v8ArrayBuffer = v8TypedArray.getBuffer(); v8ArrayBuffer.put(0, (byte) 7); v8TypedArray.close(); v8ArrayBuffer.close(); V8TypedArray v8Array = (V8TypedArray) V8ObjectUtils.getV8Result(v8, int8Array); assertEquals((byte) 7, v8Array.get(0)); assertEquals(V8Value.INT_8_ARRAY, v8Array.getType()); v8Array.close(); }
/** * Returns the underlying ByteBuffer used to back this TypedArray. * * @return The ByteBuffer used as the backing store for this TypedArray */ public ByteBuffer getByteBuffer() { V8ArrayBuffer buffer = getBuffer(); try { return buffer.getBackingStore(); } finally { buffer.release(); } }
/** * Returns the underlying ByteBuffer used to back this TypedArray. * * @return The ByteBuffer used as the backing store for this TypedArray */ public ByteBuffer getByteBuffer() { V8ArrayBuffer buffer = getBuffer(); try { return buffer.getBackingStore(); } finally { buffer.release(); } }