Thanks for the idea to use `reinterpret_cast`. Was able to do it w/o using a tmp variable:

```cpp
  T val;
  char* data = static_cast<char*>(args.This()
                            ->GetIndexedPropertiesExternalArrayData());
  char* ptr = data + offset;

  memcpy(&val, ptr, sizeof(T));
  if (non_native_endian) {
    swizzle(reinterpret_cast<char*>(&val), sizeof(T));
  }
```