Created
April 20, 2021 12:06
-
-
Save qkreltms/9865f3b14b65392331bd9fc78674cf74 to your computer and use it in GitHub Desktop.
Revisions
-
JungHoonPark created this gist
Apr 20, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 ```