JS_GetSharedFloat64ArrayData(JSObject* obj, const JS::AutoCheckCannotGC&) { obj = CheckedUnwrap(obj); if (!obj) return nullptr; SharedTypedArrayObject* tarr = &obj->as<SharedTypedArrayObject>(); MOZ_ASSERT((int32_t) tarr->type() == Scalar::Float64); return static_cast<double*>(tarr->viewData()); }
void SharedTypedArrayObject::setElement(SharedTypedArrayObject &obj, uint32_t index, double d) { MOZ_ASSERT(index < obj.length()); switch (obj.type()) { case Scalar::Int8: SharedTypedArrayObjectTemplate<int8_t>::setIndexValue(obj, index, d); break; case Scalar::Uint8: SharedTypedArrayObjectTemplate<uint8_t>::setIndexValue(obj, index, d); break; case Scalar::Uint8Clamped: SharedTypedArrayObjectTemplate<uint8_clamped>::setIndexValue(obj, index, d); break; case Scalar::Int16: SharedTypedArrayObjectTemplate<int16_t>::setIndexValue(obj, index, d); break; case Scalar::Uint16: SharedTypedArrayObjectTemplate<uint16_t>::setIndexValue(obj, index, d); break; case Scalar::Int32: SharedTypedArrayObjectTemplate<int32_t>::setIndexValue(obj, index, d); break; case Scalar::Uint32: SharedTypedArrayObjectTemplate<uint32_t>::setIndexValue(obj, index, d); break; case Scalar::Float32: SharedTypedArrayObjectTemplate<float>::setIndexValue(obj, index, d); break; case Scalar::Float64: SharedTypedArrayObjectTemplate<double>::setIndexValue(obj, index, d); break; default: MOZ_CRASH("Unknown SharedTypedArray type"); } }