diff options
Diffstat (limited to 'components/script/dom/xrrigidtransform.rs')
-rw-r--r-- | components/script/dom/xrrigidtransform.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/xrrigidtransform.rs index 5e1f720411e..ca73121d931 100644 --- a/components/script/dom/xrrigidtransform.rs +++ b/components/script/dom/xrrigidtransform.rs @@ -77,6 +77,12 @@ impl XRRigidTransform { orientation.z as f32, orientation.w as f32, ); + + if !rotate.i.is_finite() { + // if quaternion has zero norm, we'll get an infinite or NaN + // value for each element. This is preferable to checking for zero. + return Err(Error::InvalidState); + } let transform = TypedRigidTransform3D::new(rotate, translate); Ok(XRRigidTransform::new(&window.global(), transform)) } |