@Override public Object get(final int index) { v8.checkThread(); checkReleased(); int type = getType(); switch (type) { case FLOAT_32_ARRAY: return ((Number) super.get(index)).floatValue(); case FLOAT_64_ARRAY: return super.get(index); case INT_32_ARRAY: return super.get(index); case INT_16_ARRAY: return ((Number) super.get(index)).shortValue(); case INT_8_ARRAY: return ((Number) super.get(index)).byteValue(); case UNSIGNED_INT_16_ARRAY: return 0xFFFF & (Integer) super.get(index); case UNSIGNED_INT_32_ARRAY: return 0x00000000FFFFFFFF & ((Number) super.get(index)).longValue(); case UNSIGNED_INT_8_CLAMPED_ARRAY: return (short) (0x00FF & ((Number) super.get(index)).byteValue()); case UNSIGNED_INT_8_ARRAY: return (short) (0x00FF & ((Number) super.get(index)).shortValue()); } return null; }
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.FLOAT_64_ARRAY; } finally { result.close(); } } };
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.FLOAT_32_ARRAY; } finally { result.close(); } } };
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.INT_8_ARRAY; } finally { result.close(); } } };
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.INT_16_ARRAY; } finally { result.close(); } } };
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.UNSIGNED_INT_8_ARRAY; } finally { result.close(); } } };
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY; } finally { result.close(); } } };
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.INT_32_ARRAY; } finally { result.close(); } } };
@Override public Boolean invoke(final V8Object receiver, final V8Array parameters) { V8TypedArray result = ((TypedArray) V8ObjectUtils.getValue(parameters, 0)).getV8TypedArray(); try { return result.getType() == V8Value.UNSIGNED_INT_32_ARRAY; } finally { result.close(); } } };
@Test public void testCreateFloat64TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_64_ARRAY, 0, 1); assertEquals(V8Value.FLOAT_64_ARRAY, typedArray.getType()); buffer.close(); typedArray.close(); }
@Test public void testCreateFloat32TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_32_ARRAY, 0, 2); assertEquals(V8Value.FLOAT_32_ARRAY, typedArray.getType()); buffer.close(); typedArray.close(); }
@Test public void testAccess64BitFloatFromTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_64_ARRAY, 0, 1); typedArray.add("0", 3.14159265359); assertEquals(V8Value.FLOAT_64_ARRAY, typedArray.getType()); assertEquals(3.14159265359, buffer.getDouble(), 0.000000000001); buffer.close(); typedArray.close(); }
@Test public void testAccess32BitFloatFromTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_32_ARRAY, 0, 2); typedArray.add("0", 3.14); assertEquals(V8Value.FLOAT_32_ARRAY, typedArray.getType()); assertEquals(3.14, buffer.getFloat(), 0.0001); buffer.close(); typedArray.close(); }
@Test public void testCreateUInt32TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_32_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.UNSIGNED_INT_32_ARRAY, typedArray.getType()); assertEquals(7, buffer.getInt()); assertEquals(8, buffer.getInt()); buffer.close(); typedArray.close(); }
@Test public void testCreateUInt8ClampedTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 270); assertEquals(V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(255, buffer.get() & 0xFF); // Java does not have Unsigned Bytes buffer.close(); typedArray.close(); }
@Test public void testCreateUInt16TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_16_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.UNSIGNED_INT_16_ARRAY, typedArray.getType()); assertEquals(7, buffer.getShort()); assertEquals(8, buffer.getShort()); buffer.close(); typedArray.close(); }
@Test public void testCreateInt8TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_8_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.INT_8_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(8, buffer.get()); buffer.close(); typedArray.close(); }
@Test public void testCreateUInt8TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_8_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.UNSIGNED_INT_8_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(8, buffer.get()); buffer.close(); typedArray.close(); }
@Test public void testCreateInt16TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_16_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.INT_16_ARRAY, typedArray.getType()); assertEquals(7, buffer.getShort()); assertEquals(8, buffer.getShort()); buffer.close(); typedArray.close(); }
@Test public void testCreateInt32TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_32_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.INT_32_ARRAY, typedArray.getType()); assertEquals(7, buffer.getInt()); assertEquals(8, buffer.getInt()); buffer.close(); typedArray.close(); }