This patch changes math in the ECMAScript specification to be based on
a concrete division into mathematical values and Numbers. All
numeric values and operations are explicitly either one or the other
with this patch. Previously, math took place in mathematical values,
based on a system of implicit conversions between these values and
Numbers.
Closes tc39/proposal-bigint#10
Additional commits:
- Markup: fix 2 well-formedness errors
- "numeric" -> "mathematical"
You set up the dichotomy between Numbers and mathematicals, surely the f/v distinction is the same dichotomy.
- in "the number value that is", change "number" -> "Number"
- delete "the Number value of"
Elsewhere, you changed "the Number value of the Element Size" to just "the Element Size". Here's a couple you missed.
- remove space between operator and subscript
- insert "the mathematical value of" in a few places
- insert "<sub>v</sub>" in a few places
- Re-work a step.
One problem is that
the Number value of X × Y
is ambiguous -- it could mean:
(the Number value of X) × Y
or:
the Number value of (X × Y)
Another problem is that _n_ is mathematical, so in 10<sup>_n_</sup>, 10 should be mathematical too.
And then, depending on how the above ambiguity resolves, you'd have to either convert that to a Number or change × to a mathematical operator.
It's simpler (I think) to do all the arithmetic in the math realm, and then convert just the result to a Number.
(I'm assuming that 'plus' and 'times' as *words* are mathematical operators.)
- fix some typos in the definition of "integer"
- Editorial: Switch from f and v to F and R
- Editorial: Specify that general phrases mean Number
- Editorial: "Number value of" -> "Number value for"
- Conversion of mathematical values to Number values is already described in "The Number Type", and is denoted by the phrase "the Number value for X".
- Editorial: insert "the Number value for" in a few spots (no implicit conversions!)
- Editorial: reword "the number whose value is MV of |NumericLiteral|"
The phrase:
"the number whose value is MV of |NumericLiteral|"
could be interpreted as:
"the Number value for MV of |NumericLiteral|"
but this would be incorrect, because "the Number value for" (6.1.6) doesn't completely describe the rounding that is applied to the MV when obtaining the Number represented by |NumericLiteral|.
Instead, change to:
"the Number value represented by |NumericLiteral|"
which leaves MV out of it, and so refers to 11.8.3's whole process for arriving at a Number value.
- Fixing some NITs on equations
- Fixing some issues on text and removing redundant subscripts from operations of some equations