| 940 | } |
| 941 | |
| 942 | static TypedArrayType getTypedArrayType(const hermes::vm::PinnedHermesValue& hermesValue) { |
| 943 | if (hermes::vm::vmisa<hermes::vm::Uint8Array>(hermesValue)) { |
| 944 | return Uint8Array; |
| 945 | } else if (hermes::vm::vmisa<hermes::vm::Float32Array>(hermesValue)) { |
| 946 | return Float32Array; |
| 947 | } else if (hermes::vm::vmisa<hermes::vm::Float64Array>(hermesValue)) { |
| 948 | return Float64Array; |
| 949 | } else if (hermes::vm::vmisa<hermes::vm::Uint8ClampedArray>(hermesValue)) { |
| 950 | return Uint8ClampedArray; |
| 951 | } else if (hermes::vm::vmisa<hermes::vm::Int8Array>(hermesValue)) { |
| 952 | return Int8Array; |
| 953 | } else if (hermes::vm::vmisa<hermes::vm::Int16Array>(hermesValue)) { |
| 954 | return Int16Array; |
| 955 | } else if (hermes::vm::vmisa<hermes::vm::Int32Array>(hermesValue)) { |
| 956 | return Int32Array; |
| 957 | } else if (hermes::vm::vmisa<hermes::vm::Uint16Array>(hermesValue)) { |
| 958 | return Uint16Array; |
| 959 | } else if (hermes::vm::vmisa<hermes::vm::Uint32Array>(hermesValue)) { |
| 960 | return Uint32Array; |
| 961 | } else { |
| 962 | SC_ABORT("Unrecognized TypedArray type"); |
| 963 | return Uint8Array; |
| 964 | } |
| 965 | } |
| 966 | |
| 967 | JSTypedArray HermesJavaScriptContext::valueToTypedArray(const JSValue& value, JSExceptionTracker& exceptionTracker) { |
| 968 | hermes::vm::GCScope gcScope(*_runtime); |