Skip to content

Instantly share code, notes, and snippets.

@qkreltms
Created April 20, 2021 12:06
Show Gist options
  • Select an option

  • Save qkreltms/9865f3b14b65392331bd9fc78674cf74 to your computer and use it in GitHub Desktop.

Select an option

Save qkreltms/9865f3b14b65392331bd9fc78674cf74 to your computer and use it in GitHub Desktop.

Revisions

  1. JungHoonPark created this gist Apr 20, 2021.
    28 changes: 28 additions & 0 deletions fesf22.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    ```js
    1. Let x be ? thisNumberValue(this value).
    2. Let f be ? ToIntegerOrInfinity(fractionDigits).
    3. Assert: If fractionDigits is undefined, then f is 0.
    4. If f is not finite, throw a RangeError exception.
    5. If f < 0 or f > 100, throw a RangeError exception.
    6. If x is not finite, return ! Number::toString(x).
    7. Set x to ℝ(x).
    8. Let s be the empty String.
    9. If x < 0, then
    a. Set s to "-".
    b. Set x to -x.
    10. If x ≥ 1021, then
    a. Let m be ! ToString(𝔽(x)).
    11. Else,
    a. Let n be an integer for which n / 10^f - x is as close to zero as possible. If there are two such n, pick the larger n.
    b. If n = 0, let m be the String "0". Otherwise, let m be the String value consisting of the digits of the decimal representation of n (in order, with no leading zeroes).
    c. If f ≠ 0, then
    i. Let k be the length of m.
    ii. If k ≤ f, then
    1. Let z be the String value consisting of f + 1 - k occurrences of the code unit 0x0030 (DIGIT ZERO).
    2. Set m to the string-concatenation of z and m.
    3. Set k to f + 1.
    iii. Let a be the first k - f code units of m.
    iv. Let b be the other f code units of m.
    v. Set m to the string-concatenation of a, ".", and b.
    12. Return the string-concatenation of s and m
    ```