Iain Ireland
00ae116a04
Bug 1548908: Add InfinityBits to FloatingPoint.h r=jwalden
...
We can't generate a constexpr uint64_t containing the bits for positive/negative infinity, because of a (very sensible) static_assert in SpecificNaNBits. This patch adds support to FloatingPoint.h for infinity. The next patch will use it to make JS::InfinityValue constexpr (to match JS::NaNValue).
Differential Revision: https://phabricator.services.mozilla.com/D29869
--HG--
extra : moz-landing-system : lando
2019-06-03 15:59:21 +00:00
Sylvestre Ledru
265e672179
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
...
# ignore-this-changeset
--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jeff Walden
5499a179ff
Bug 1508725 - Adjust mozilla::FloatingPoint<T>'s definition so only the barest details are specified for floating-point encodings, with every other number, bit mask, &c. mathematically derived. Also add a bunch of documentation comments. r=froydnj
...
--HG--
extra : rebase_source : fe3e97b77945bcffd5f4415351541fcd5875bdbb
2018-06-07 13:25:12 -07:00
Jeff Walden
701bad47cd
Bug 1438212 - Implement mozilla::IsFloat32Representable using an algorithm that handles NaN correctly and doesn't sometimes invoke undefined behavior. r=froydnj
...
--HG--
extra : rebase_source : b4246ea818046b1e4100b90a3a371a866ea2b098
2018-06-06 16:03:47 -07:00
Jeff Walden
1b16de9738
Bug 744965 - Implement mozilla::NumberEqualsInt32 in a way that doesn't depend on undefined behavior casting an out-of-range floating point number to int32_t. r=froydnj
...
--HG--
extra : rebase_source : dc4781e2a31ee0e75fc62951cbdc71eaa9fd7b1c
2018-02-15 17:22:14 -08:00
Cosmin Sabou
48de1e7807
Backed out changeset 1fcc972d445b (bug 744965) for assertion failures on TestFloatingPoint.cpp on a CLOSED TREE
2018-02-21 10:12:45 +02:00
Jeff Walden
e77ef331a3
Bug 744965 - Implement mozilla::NumberEqualsInt32 in a way that doesn't depend on undefined behavior casting an out-of-range floating point number to int32_t. r=froydnj
...
--HG--
extra : rebase_source : d6d890b7b20d93297f575abe838e8619418ea545
2018-02-15 17:22:14 -08:00
Tooru Fujisawa
57db30aa76
Bug 1311088 - Part 1: Add mozilla::SpecificNaNBits and JS::detail::CanonicalizedNaNBits. r=jwalden
2016-10-29 01:47:30 +09:00
Tooru Fujisawa
0e8929a00e
Bug 1301864 - Remove constexpr from mozilla::IsNaN. r=jwalden
2016-10-29 01:47:30 +09:00
Johannes Schulte
b7ccc22970
Bug 1312620
- Add IsPositiveZero function to mfbt and use it to replace MPhi by MNaNToZero iff c is +0.0. r=nbp, r=waldo
...
--HG--
extra : rebase_source : 7adefc3370c081e17b5e0b090a008e0de0507bb9
2016-10-26 17:47:42 +02:00
Benjamin Bouvier
23575fdec5
Bug 1248555: Introduce variants of SpecificNaN / BitwiseCast that preserve the signaling NaN bit; r=froydnj
...
MozReview-Commit-ID: 5A8p06nBqyI
--HG--
extra : rebase_source : 87ebcc9792d42c6b2e6164a639340da37b4b602c
extra : histedit_source : b4ab7c6b9f4bb7fe2cc88a3208d6fa8e6fefce08
2016-08-01 20:02:05 +02:00
Chris Peterson
43c2748f66
Bug 1277775 - Replace MOZ_CONSTEXPR{_VAR,_TMPL} with constexpr. r=froydnj
2016-07-08 14:39:53 -07:00
Nicholas Nethercote
2511b2c327
Bug 1267550 (part 2) - Rename MOZ_WARN_UNUSED_RESULT as MOZ_MUST_USE. r=froydnj.
...
It's an annotation that is used a lot, and should be used even more, so a
shorter name is better.
MozReview-Commit-ID: 1VS4Dney4WX
--HG--
extra : rebase_source : b26919c1b0fcb32e5339adeef5be5becae6032cf
2016-04-27 14:16:50 +10:00
Markus Stange
04177e1aa2
Bug 1209100 - Back out bug 1165185 on inbound.
...
MozReview-Commit-ID: JqohyXNvjiU
--HG--
extra : rebase_source : c2165d279a6ca57a3439ebbfc081961369a42124
2016-03-21 16:16:52 -04:00
Markus Stange
8f3e1c59d9
Bug 1165185 - Try to avoid invalidations when scrolling transformed elements. r=roc
...
--HG--
extra : rebase_source : e044d64a50c6afff9e518cf53c51aa9658f3b41e
2015-06-15 19:20:59 -04:00
Ehsan Akhgari
d803a0513e
Bug 1114351 - Use mozilla::IsNaN() in DOUBLE_TO_JSVAL(); r=Waldo
...
Note that this requires making sure that IsNaN is constexpr because it
needs to be passed to the constexpr IMPL_TO_JSVALUE() function in
DOUBLE_TO_JSVAL().
--HG--
extra : amend_source : dbd8bb0659b53e7d36d2600ac97f0a753ef772c7
2014-12-21 19:16:49 -05:00
Dan Gohman
13dc791112
Bug 1094052 - IonMonkey: Fix range analysis for Math.sign(-0) r=nbp,h4writer
2014-11-05 08:38:40 -08:00
Kearwood (Kip) Gilbert
ecf1650979
Bug 1062406 - Part 1 - Change x and y parameters of window.scroll* CSSOM-View DOM calls from double to unrestricted double. r=bz
...
- WebIDL updated so that x and y parameters of window.scroll, window.scrollTo,
and window.ScrollBy are changed from "double" to "unrestricted double".
- Implemented mozilla::ToZeroIfNonfinite
- Updated nsGlobalWindow::Scroll, ScrollTo, and ScrollBy methods so that they
replace non-finite numbers with 0.
2014-09-09 12:02:00 +02:00
Nicholas Nethercote
9439ff268e
Bug 1026319 - Convert the second quarter of MFBT to Gecko style. r=froydnj.
...
--HG--
extra : rebase_source : 98d2557c7fe4648d79143c654e7e31767fca2e65
2014-06-12 23:34:08 -07:00
Dan Gohman
73faa4dc74
Bug 1012971 - Fix compiler warnings in mfbt r=nbp
2014-05-22 11:15:06 -07:00
Benjamin Bouvier
1ce0aa6d4a
Bug 939843: Unify FloatingPoint's code for Double and Float; r=waldo
...
--HG--
extra : rebase_source : 2f7956d497d534af8931939a38a29ad27695a3fc
2014-01-30 15:54:46 +01:00
Kartikaya Gupta
a6ffc9d1a7
Bug 948984 - Add functions to fuzzily compare float numbers. r=bjacob, r=Waldo
2014-02-05 17:04:42 -05:00
Dan Gohman
0333b1cb4a
Bug 930708 - IonMonkey: Factor out a DoubleEqualsInt32 from DoubleIsInt32 and use it when negative zero is to be treated as zero. r=nbp
2013-11-02 14:29:44 -07:00
Benjamin Bouvier
c695034824
Bug 913282: IsFloat32Representable function in mfbt; r=Waldo
...
--HG--
extra : rebase_source : 0d4d6f02b880c37d29e3e41e9d105365d9f941b0
2013-10-22 14:55:35 +02:00
Benjamin Bouvier
7f3147dfed
Bug 913282: More Float32 operators: Abs; p=dougc,bbouvier; r=jonco,sstangl
...
dougc for the ARM parts, bbouvier for the rest.
2013-10-22 14:53:12 +02:00
Dan Gohman
d359733f1c
Bug 924637 - Document a somewhat counterintuitive case in ExponentComponent, and add test coverage for it. r=waldo
2013-10-09 06:41:42 -07:00
Benjamin Bouvier
adb7f75b72
Bug 913282: Add mfbt Float32 asserts and constants; r=Waldo
2013-09-20 12:08:49 -07:00
Dan Gohman
6c632eebc4
Bug 918350 - Change UnspecifiedNaN's bit pattern to be the all-ones NaN. r=waldo
2013-09-19 18:47:55 -07:00
Ehsan Akhgari
2824b29025
Bug 895322 - Part 1: Replace the usages of MOZ_STATIC_ASSERT with C++11 static_assert; r=Waldo
...
This patch was mostly generated by running the following scripts on the codebase, with some
manual changes made afterwards:
# static_assert.sh
#!/bin/bash
# Command to convert an NSPR integer type to the equivalent standard integer type
function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
! -wholename "*security/nss*" \
! -wholename "*/.hg*" \
! -wholename "obj-ff-dbg*" \
! -name nsXPCOMCID.h \
! -name prtypes.h \
-type f \
\( -iname "*.cpp" \
-o -iname "*.h" \
-o -iname "*.cc" \
-o -iname "*.mm" \) | \
xargs -n 1 `dirname $0`/assert_replacer.py #sed -i -e "s/\b$1\b/$2/g"
}
convert MOZ_STATIC_ASSERT static_assert
hg rev --no-backup mfbt/Assertions.h \
media/webrtc/signaling/src/sipcc/core/includes/ccapi.h \
modules/libmar/src/mar_private.h \
modules/libmar/src/mar.h
# assert_replacer.py
#!/usr/bin/python
import sys
import re
pattern = re.compile(r"\bMOZ_STATIC_ASSERT\b")
def replaceInPlace(fname):
print fname
f = open(fname, "rw+")
lines = f.readlines()
for i in range(0, len(lines)):
while True:
index = re.search(pattern, lines[i])
if index != None:
index = index.start()
lines[i] = lines[i][0:index] + "static_assert" + lines[i][index+len("MOZ_STATIC_ASSERT"):]
for j in range(i + 1, len(lines)):
if lines[j].find(" ", index) == index:
lines[j] = lines[j][0:index] + lines[j][index+4:]
else:
break
else:
break
f.seek(0, 0)
f.truncate()
f.write("".join(lines))
f.close()
argc = len(sys.argv)
for i in range(1, argc):
replaceInPlace(sys.argv[i])
--HG--
extra : rebase_source : 4b4a4047d82f2c205b9fad8d56dfc3f1afc0b045
2013-07-18 13:59:53 -04:00
Ehsan Akhgari
ef4b479714
Bug 872127 - Part 2: Replace mozilla/StandardInteger.h with stdint.h; r=Waldo,ted
2013-07-30 10:25:31 -04:00
Ms2ger
51f391870b
Bug 896341 - Update include guards and modelines in MFBT; r=Waldo
2013-07-24 09:41:39 +02:00
Jeff Walden
25c4d5d841
Bug 896842 - Implement mozilla::DoublesAreIdentical. r=luke
2013-06-18 15:35:03 -07:00
Jeff Walden
3e42b95bec
Bug 798179 - Rewrite ToIntWidth to more simply act upon the actual bits of the IEEE-754 representation. r=froydnj
...
--HG--
extra : rebase_source : fb2da4e55b258b6b62c1c9449447fccff8c2012d
2013-06-07 13:22:45 -07:00
Nathan Froyd
7ceff1cbc9
Bug 858131 - rewrite FloatingPoint.h to be C++-only instead of C-compatible C++; r+original-author=Waldo
2013-05-01 16:55:13 -04:00
Jeff Walden
40a94b7921
Remove some extraneous includes and a function, all added in bug 714260. They were initially necessary when that patch was written, but they became vestigial during rebasing prior to landing, and this disuse wasn't noticed til now. r=lumpy
2012-04-19 16:36:31 -07:00
Jeff Walden
e868abd4e1
Bug 714260 - Implement FloatingPoint.h to consolidate all IEEE-754 floating point operations in a single location. r=dmandelin for the js bits, r=Ms2ger for mfbt and the core bits
2012-01-23 03:43:16 -08:00