forked from highlightjs/highlight.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnumbers.expect.txt
More file actions
98 lines (79 loc) · 6.9 KB
/
numbers.expect.txt
File metadata and controls
98 lines (79 loc) · 6.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<span class="hljs-number">1000000000</span> <span class="hljs-comment">// Is this a billion? a hundred millions? Ten millions?</span>
<span class="hljs-number">101475938.38</span> <span class="hljs-comment">// what scale is this? what power of 10?</span>
<span class="hljs-keyword">const</span> <span class="hljs-variable constant_">FEE</span> = <span class="hljs-number">12300</span>;
<span class="hljs-comment">// is this 12,300? Or 123, because it's in cents?</span>
<span class="hljs-keyword">const</span> <span class="hljs-variable constant_">AMOUNT</span> = <span class="hljs-number">1234500</span>;
<span class="hljs-comment">// is this 1,234,500? Or cents, hence 12,345? Or financial, 4-fixed 123.45?</span>
<span class="hljs-number">1_000_000_000</span> <span class="hljs-comment">// Ah, so a billion</span>
<span class="hljs-number">101_475_938.38</span> <span class="hljs-comment">// And this is hundreds of millions</span>
<span class="hljs-keyword">let</span> fee = <span class="hljs-number">123_00</span>; <span class="hljs-comment">// $123 (12300 cents, apparently)</span>
<span class="hljs-keyword">let</span> fee = <span class="hljs-number">12_300</span>; <span class="hljs-comment">// $12,300 (woah, that fee!)</span>
<span class="hljs-keyword">let</span> amount = <span class="hljs-number">12345_00</span>; <span class="hljs-comment">// 12,345 (1234500 cents, apparently)</span>
<span class="hljs-keyword">let</span> amount = <span class="hljs-number">123_4500</span>; <span class="hljs-comment">// 123.45 (4-fixed financial)</span>
<span class="hljs-keyword">let</span> amount = <span class="hljs-number">1_234_500</span>; <span class="hljs-comment">// 1,234,500</span>
<span class="hljs-number">0.000001</span> <span class="hljs-comment">// 1 millionth</span>
<span class="hljs-number">0.000_001</span> <span class="hljs-comment">// 1 millionth</span>
<span class="hljs-number">.000_001</span> <span class="hljs-comment">// 1 millionth</span>
-<span class="hljs-number">.000_001</span> <span class="hljs-comment">// 1 millionth</span>
<span class="hljs-number">1e10_000</span> <span class="hljs-comment">// 10^10000 -- granted, far less useful / in-range...</span>
<span class="hljs-number">.0</span>, <span class="hljs-number">.00</span>, <span class="hljs-number">.9</span>, <span class="hljs-number">4.2</span>, <span class="hljs-number">40.0</span>, <span class="hljs-number">0.</span>, <span class="hljs-number">10.</span>
<span class="hljs-number">.0</span>, <span class="hljs-number">.0_0</span>, <span class="hljs-number">.9</span>, <span class="hljs-number">4.2</span>, <span class="hljs-number">4_0.0</span>, <span class="hljs-number">0.</span>, <span class="hljs-number">1_0.</span>
<span class="hljs-number">.0e10</span>, <span class="hljs-number">.00e+10</span>, <span class="hljs-number">.9e-10</span>, <span class="hljs-number">4.2E10</span>, <span class="hljs-number">40.0E+08</span>, <span class="hljs-number">0.E-10</span>, <span class="hljs-number">0.e100</span>, <span class="hljs-number">1010e+10</span>
<span class="hljs-number">.0e1_0</span>, <span class="hljs-number">.0_0e+10</span>, <span class="hljs-number">.9e-1_0</span>, <span class="hljs-number">4.2E1_0</span>, <span class="hljs-number">4_0.0E+0_8</span>, <span class="hljs-number">0.E-1_0</span>, <span class="hljs-number">0.e1_0_0</span>, <span class="hljs-number">10_10e+10</span>
<span class="hljs-keyword">let</span> nibbles = <span class="hljs-number">0b1010_0001_1000_0101</span>;
<span class="hljs-keyword">let</span> message = <span class="hljs-number">0xA0_B0_C0</span>;
<span class="hljs-keyword">let</span> x1 = _52; <span class="hljs-comment">// This is an identifier, not a numeric literal</span>
<span class="hljs-keyword">let</span> x2 = <span class="hljs-number">5_2</span>; <span class="hljs-comment">// OK (decimal literal)</span>
<span class="hljs-keyword">let</span> x7 = <span class="hljs-number">0x5_2</span>; <span class="hljs-comment">// OK (hexadecimal literal)</span>
<span class="hljs-number">0xff</span>
<span class="hljs-number">0xdead_beef</span>
<span class="hljs-number">0o52</span>
<span class="hljs-number">0O52</span>
<span class="hljs-number">0xa</span>
<span class="hljs-number">0Xa</span>
<span class="hljs-number">0XA</span>
<span class="hljs-number">0xA</span>
<span class="hljs-number">0n</span>
<span class="hljs-number">2n</span>
<span class="hljs-number">20n</span>
<span class="hljs-number">2_0n</span>
<span class="hljs-number">2_00n</span>
<span class="hljs-number">2_0_0n</span>
<span class="hljs-number">20_0n</span>
-<span class="hljs-number">20_0n</span>
<span class="hljs-number">0B1n</span>
<span class="hljs-number">0O1n</span>
<span class="hljs-number">0X1n</span>
<span class="hljs-comment">// Annex B numeric literals</span>
<span class="hljs-comment">// https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals</span>
<span class="hljs-number">00</span>, <span class="hljs-number">04</span>, <span class="hljs-number">0777</span>, <span class="hljs-number">08</span>, <span class="hljs-number">008</span>
<span class="hljs-comment">// expressions containing numeric literals</span>
<span class="hljs-number">0.</span>.<span class="hljs-property">toString</span>, <span class="hljs-number">1e1</span>.<span class="hljs-property">toString</span>, <span class="hljs-title function_">fn</span>(<span class="hljs-number">.5</span>)
<span class="hljs-comment">// expressions not containing numeric literals</span>
x0.<span class="hljs-property">e1</span>
<span class="hljs-comment">// invalid pseudo-numeric expressions</span>
1__0
0b1__0
1e_1
0b1e1
0N
<span class="hljs-number">00</span>.
<span class="hljs-comment">// numbers in identifiers</span>
<span class="hljs-keyword">const</span> num = $1
<span class="hljs-keyword">const</span> num = $0n9
<span class="hljs-keyword">const</span> num = $abc012
<span class="hljs-keyword">const</span> num = $0x9
<span class="hljs-keyword">const</span> num = $0o0
<span class="hljs-keyword">const</span> num = $09
<span class="hljs-keyword">const</span> num = $9<span class="hljs-number">.09</span>
<span class="hljs-keyword">const</span> num = $a9
<span class="hljs-keyword">const</span> num = <span class="hljs-number">1</span>
<span class="hljs-keyword">const</span> num = 0n9
<span class="hljs-keyword">const</span> num = <span class="hljs-number">0x9</span>
<span class="hljs-keyword">const</span> num = <span class="hljs-number">0o0</span>
<span class="hljs-keyword">const</span> num = <span class="hljs-number">09</span>
<span class="hljs-keyword">const</span> num = <span class="hljs-number">9.09</span>
<span class="hljs-keyword">const</span> num = a9
<span class="hljs-comment">// numbers in identifiers in template strings</span>
cosnt string = <span class="hljs-string">`<span class="hljs-subst">${$0}</span>`</span>
cosnt string = <span class="hljs-string">`<span class="hljs-subst">${<span class="hljs-number">0</span>}</span>`</span>