Summary: To fully realize the benefits of our AudioContext Work[0] we
want to enable the fdlibm Math Functions[1] in FPP mode
(privacy.fingerprintingProtection). Because this change is very
subtle, I am concerned that we will not be able to tease out any
issues or compatibility concerns prior to shipping using our normal
mechanism, which would be to enable in Nightly in PBM and perform a
release experiment (also in PBM). Therefore, I would like to enable it
by default, in normal and PBM, in Early Beta and Nightly for at least
a cycle before shipping it. I'd like to then leave it on for another
couple cycles for more bake time. Then we would revert it, following
the policy of not leaving things on in Nightly we don't intend to ship
to Release.
Bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1852788
Specification: None. This changes the underlying implementations of
math functions from system functions to code we ship in Firefox. It
only makes a difference way out at the upteenth decimal place.
Platform coverage: This will apply to all platforms.
Preference: javascript.options.use_fdlibm_for_sin_cos_tan exists for
this purpose
Other browsers: While I'm not 100% certain of this, my testing and
code review indicates that v8 ships with a built-in implementation of
the math functions and they use them all the time. This previous
intent to implement
https://groups.google.com/a/mozilla.org/g/dev-platform/c/0dxAO-JsoXI/m/eEhjM9VsAgAJ
discusses the performance concerns that have prevented us from
shipping this by default already.
-tom
[0]
https://bugzilla.mozilla.org/show_bug.cgi?id=1358149 many thanks to karlt!
[1] Technically, we already use fdlibm for everything except
sin/cos/tan, but this is enabling it for those three as well.