gofront 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/README.md +3 -3
  2. package/package.json +5 -4
  3. package/src/backend/js/expressions.js +849 -371
  4. package/src/backend/js/index.js +241 -147
  5. package/src/backend/js/natives.js +383 -0
  6. package/src/backend/js/runtime.js +512 -2547
  7. package/src/backend/js/statements.js +506 -103
  8. package/src/backend/js/stdlib/index.js +45 -93
  9. package/src/backend/js/templ.js +32 -45
  10. package/src/backend/js/type-info.js +177 -13
  11. package/src/backend/shared/fixed-float.js +20 -0
  12. package/src/backend/shared/fmt-types.js +63 -171
  13. package/src/backend/shared/host-unicode.js +36 -0
  14. package/src/backend/wasm/boundary.js +490 -965
  15. package/src/backend/wasm/emit-builtins.js +643 -256
  16. package/src/backend/wasm/emit-exprs.js +124 -57
  17. package/src/backend/wasm/emit-maps.js +17 -367
  18. package/src/backend/wasm/emit-stmts.js +325 -75
  19. package/src/backend/wasm/emit.js +104 -13
  20. package/src/backend/wasm/globals.js +47 -8
  21. package/src/backend/wasm/glue.js +2 -4
  22. package/src/backend/wasm/index.js +36 -530
  23. package/src/backend/wasm/method-expr.js +12 -1
  24. package/src/backend/wasm/module-emitter.js +92 -717
  25. package/src/backend/wasm/monomorph.js +103 -6
  26. package/src/backend/wasm/natives.js +596 -0
  27. package/src/backend/wasm/prescan.js +5 -153
  28. package/src/backend/wasm/prune-funcs.js +89 -0
  29. package/src/backend/wasm/stdlib/index.js +2 -32
  30. package/src/backend/wasm/types.js +68 -20
  31. package/src/backend/wasm/variadic.js +3 -3
  32. package/src/cli/cli-core.js +5 -1
  33. package/src/cli/test-runner.js +115 -342
  34. package/src/compiler.js +108 -130
  35. package/src/lexer/lexer.js +105 -11
  36. package/src/lexer/templ-lexer.js +61 -18
  37. package/src/lexer/tokens.js +1 -0
  38. package/src/link/stdlib.js +354 -132
  39. package/src/link/type-names.js +148 -0
  40. package/src/link/wasm.js +30 -6
  41. package/src/lower/bounds.js +153 -0
  42. package/src/lower/captures.js +92 -33
  43. package/src/lower/embedding.js +32 -3
  44. package/src/lower/errors-as.js +196 -0
  45. package/src/lower/fmt-formatters.js +905 -0
  46. package/src/lower/functions.js +2 -0
  47. package/src/lower/gen-types.js +274 -0
  48. package/src/lower/index.js +7 -1
  49. package/src/lower/json-codecs.js +228 -247
  50. package/src/lower/ownership.js +25 -7
  51. package/src/lower/reachability.js +69 -51
  52. package/src/lower/walk.js +12 -0
  53. package/src/parser/declarations.js +28 -5
  54. package/src/parser/expressions.js +86 -16
  55. package/src/parser/statements.js +1 -0
  56. package/src/parser/templ.js +44 -5
  57. package/src/parser/types.js +1 -0
  58. package/src/resolver.js +1 -2
  59. package/src/typechecker/assignability.js +124 -11
  60. package/src/typechecker/const-fold.js +70 -27
  61. package/src/typechecker/constants.js +32 -6
  62. package/src/typechecker/expressions.js +326 -98
  63. package/src/typechecker/index.js +208 -33
  64. package/src/typechecker/init-order.js +136 -40
  65. package/src/typechecker/operand-text.js +40 -0
  66. package/src/typechecker/resolve.js +192 -36
  67. package/src/typechecker/statements.js +122 -11
  68. package/src/typechecker/stdlib/excluded.js +9 -5
  69. package/src/typechecker/stdlib/index.js +25 -9
  70. package/src/typechecker/termination.js +10 -1
  71. package/src/typechecker/types.js +203 -573
  72. package/stdlib/bytes/buffer.go +479 -0
  73. package/stdlib/bytes/bytes.go +1010 -0
  74. package/stdlib/bytes/reader.go +161 -0
  75. package/stdlib/context/context.go +115 -0
  76. package/stdlib/crypto/rand/rand.go +34 -0
  77. package/stdlib/crypto/sha256/sha256.go +249 -0
  78. package/stdlib/encoding/base64/base64.go +331 -0
  79. package/stdlib/encoding/binary/binary.go +332 -0
  80. package/stdlib/encoding/hex/hex.go +140 -0
  81. package/stdlib/encoding/json/json.go +62 -0
  82. package/stdlib/errors/errors.go +174 -0
  83. package/stdlib/fmt/errors.go +110 -0
  84. package/stdlib/fmt/format.go +732 -0
  85. package/stdlib/fmt/print.go +1232 -0
  86. package/stdlib/gom/gom.go +293 -0
  87. package/stdlib/html/html.go +251 -0
  88. package/stdlib/internal/fmtrt/fmtrt.go +163 -0
  89. package/stdlib/internal/jsonrt/dec.go +171 -38
  90. package/stdlib/internal/jsonrt/enc.go +186 -36
  91. package/stdlib/internal/jsonrt/scanner.go +17 -8
  92. package/stdlib/io/io.go +157 -1
  93. package/stdlib/maps/maps.go +131 -0
  94. package/stdlib/math/bits/bits.go +507 -0
  95. package/stdlib/math/extra.go +16 -14
  96. package/stdlib/math/math.go +439 -0
  97. package/stdlib/math/rand/rand.go +297 -0
  98. package/stdlib/os/os.go +93 -0
  99. package/stdlib/path/filepath/filepath.go +47 -0
  100. package/stdlib/path/path.go +394 -0
  101. package/stdlib/regexp/regexp.go +231 -0
  102. package/stdlib/slices/slices.go +526 -0
  103. package/stdlib/slices/sort.go +209 -0
  104. package/stdlib/slices/zsort_cmp.go +480 -0
  105. package/stdlib/slices/zsort_ordered.go +482 -0
  106. package/stdlib/sort/sort.go +391 -452
  107. package/stdlib/sort/zsort_func.go +480 -0
  108. package/stdlib/sort/zsort_iface.go +480 -0
  109. package/stdlib/strconv/float.go +1699 -0
  110. package/stdlib/strconv/isprint.go +752 -0
  111. package/stdlib/strconv/quote.go +235 -50
  112. package/stdlib/strconv/strconv.go +616 -0
  113. package/stdlib/strings/builder.go +95 -0
  114. package/stdlib/strings/reader.go +163 -0
  115. package/stdlib/strings/replacer.go +102 -0
  116. package/stdlib/strings/strings.go +807 -0
  117. package/stdlib/sync/sync.go +268 -0
  118. package/stdlib/testing/async_js.go +61 -0
  119. package/stdlib/testing/benchmark.go +297 -0
  120. package/stdlib/testing/testing.go +523 -0
  121. package/stdlib/time/duration.go +233 -0
  122. package/stdlib/time/format.go +745 -0
  123. package/stdlib/time/parse.go +790 -0
  124. package/stdlib/time/sleep_js.go +63 -0
  125. package/stdlib/time/time.go +834 -0
  126. package/stdlib/unicode/unicode.go +141 -3
  127. package/stdlib/unicode/utf8/utf8.go +464 -0
  128. package/src/backend/js/fmt-runtime.js +0 -573
  129. package/src/backend/js/stdlib/base64.js +0 -12
  130. package/src/backend/js/stdlib/binary.js +0 -102
  131. package/src/backend/js/stdlib/bits.js +0 -119
  132. package/src/backend/js/stdlib/builder.js +0 -98
  133. package/src/backend/js/stdlib/bytes.js +0 -368
  134. package/src/backend/js/stdlib/errors.js +0 -45
  135. package/src/backend/js/stdlib/fmt.js +0 -517
  136. package/src/backend/js/stdlib/gom.js +0 -155
  137. package/src/backend/js/stdlib/hex.js +0 -17
  138. package/src/backend/js/stdlib/html.js +0 -20
  139. package/src/backend/js/stdlib/io.js +0 -137
  140. package/src/backend/js/stdlib/json.js +0 -1167
  141. package/src/backend/js/stdlib/maps.js +0 -37
  142. package/src/backend/js/stdlib/math.js +0 -85
  143. package/src/backend/js/stdlib/os.js +0 -13
  144. package/src/backend/js/stdlib/path.js +0 -48
  145. package/src/backend/js/stdlib/rand.js +0 -32
  146. package/src/backend/js/stdlib/regexp.js +0 -54
  147. package/src/backend/js/stdlib/sha256.js +0 -12
  148. package/src/backend/js/stdlib/shared.js +0 -17
  149. package/src/backend/js/stdlib/simd.js +0 -34
  150. package/src/backend/js/stdlib/slices.js +0 -107
  151. package/src/backend/js/stdlib/sort.js +0 -30
  152. package/src/backend/js/stdlib/strconv.js +0 -79
  153. package/src/backend/js/stdlib/strings.js +0 -301
  154. package/src/backend/js/stdlib/sync.js +0 -13
  155. package/src/backend/js/stdlib/testing.js +0 -41
  156. package/src/backend/js/stdlib/time.js +0 -152
  157. package/src/backend/js/stdlib/unicode.js +0 -25
  158. package/src/backend/js/stdlib/utf8.js +0 -26
  159. package/src/backend/wasm/stdlib/bytes.js +0 -6716
  160. package/src/backend/wasm/stdlib/core.js +0 -10278
  161. package/src/backend/wasm/stdlib/io.js +0 -3578
  162. package/src/backend/wasm/stdlib/packages.js +0 -2402
  163. package/src/backend/wasm/stdlib/pure.js +0 -720
  164. package/src/backend/wasm/stdlib/time.js +0 -2229
  165. package/src/typechecker/stdlib/core.js +0 -1079
  166. package/src/typechecker/stdlib/extended.js +0 -1210
  167. package/stdlib/bytes/iter.go +0 -192
  168. package/stdlib/bytes/search.go +0 -240
  169. package/stdlib/bytes/split.go +0 -218
  170. package/stdlib/errors/overlay.go +0 -12
  171. package/stdlib/maps/iter.go +0 -65
  172. package/stdlib/slices/extra.go +0 -73
  173. package/stdlib/slices/iter.go +0 -113
  174. package/stdlib/strings/extra.go +0 -35
  175. package/stdlib/strings/iter.go +0 -122
  176. package/stdlib/sync/extra.go +0 -105
  177. package/stdlib/unicode/utf8/bytes.go +0 -239
@@ -0,0 +1,752 @@
1
+ //go:build gofront
2
+
3
+ //gofront:target both
4
+
5
+ // Code generated by go run makeisprint.go -output isprint.go; DO NOT EDIT.
6
+
7
+ package strconv
8
+
9
+ // (424+133+112)*2 + (508)*4 = 3370 bytes
10
+
11
+ var isPrint16 = []uint16{
12
+ 0x0020, 0x007e,
13
+ 0x00a1, 0x0377,
14
+ 0x037a, 0x037f,
15
+ 0x0384, 0x0556,
16
+ 0x0559, 0x058a,
17
+ 0x058d, 0x05c7,
18
+ 0x05d0, 0x05ea,
19
+ 0x05ef, 0x05f4,
20
+ 0x0606, 0x070d,
21
+ 0x0710, 0x074a,
22
+ 0x074d, 0x07b1,
23
+ 0x07c0, 0x07fa,
24
+ 0x07fd, 0x082d,
25
+ 0x0830, 0x085b,
26
+ 0x085e, 0x086a,
27
+ 0x0870, 0x088e,
28
+ 0x0898, 0x098c,
29
+ 0x098f, 0x0990,
30
+ 0x0993, 0x09b2,
31
+ 0x09b6, 0x09b9,
32
+ 0x09bc, 0x09c4,
33
+ 0x09c7, 0x09c8,
34
+ 0x09cb, 0x09ce,
35
+ 0x09d7, 0x09d7,
36
+ 0x09dc, 0x09e3,
37
+ 0x09e6, 0x09fe,
38
+ 0x0a01, 0x0a0a,
39
+ 0x0a0f, 0x0a10,
40
+ 0x0a13, 0x0a39,
41
+ 0x0a3c, 0x0a42,
42
+ 0x0a47, 0x0a48,
43
+ 0x0a4b, 0x0a4d,
44
+ 0x0a51, 0x0a51,
45
+ 0x0a59, 0x0a5e,
46
+ 0x0a66, 0x0a76,
47
+ 0x0a81, 0x0ab9,
48
+ 0x0abc, 0x0acd,
49
+ 0x0ad0, 0x0ad0,
50
+ 0x0ae0, 0x0ae3,
51
+ 0x0ae6, 0x0af1,
52
+ 0x0af9, 0x0b0c,
53
+ 0x0b0f, 0x0b10,
54
+ 0x0b13, 0x0b39,
55
+ 0x0b3c, 0x0b44,
56
+ 0x0b47, 0x0b48,
57
+ 0x0b4b, 0x0b4d,
58
+ 0x0b55, 0x0b57,
59
+ 0x0b5c, 0x0b63,
60
+ 0x0b66, 0x0b77,
61
+ 0x0b82, 0x0b8a,
62
+ 0x0b8e, 0x0b95,
63
+ 0x0b99, 0x0b9f,
64
+ 0x0ba3, 0x0ba4,
65
+ 0x0ba8, 0x0baa,
66
+ 0x0bae, 0x0bb9,
67
+ 0x0bbe, 0x0bc2,
68
+ 0x0bc6, 0x0bcd,
69
+ 0x0bd0, 0x0bd0,
70
+ 0x0bd7, 0x0bd7,
71
+ 0x0be6, 0x0bfa,
72
+ 0x0c00, 0x0c39,
73
+ 0x0c3c, 0x0c4d,
74
+ 0x0c55, 0x0c5a,
75
+ 0x0c5d, 0x0c5d,
76
+ 0x0c60, 0x0c63,
77
+ 0x0c66, 0x0c6f,
78
+ 0x0c77, 0x0cb9,
79
+ 0x0cbc, 0x0ccd,
80
+ 0x0cd5, 0x0cd6,
81
+ 0x0cdd, 0x0ce3,
82
+ 0x0ce6, 0x0cf3,
83
+ 0x0d00, 0x0d4f,
84
+ 0x0d54, 0x0d63,
85
+ 0x0d66, 0x0d96,
86
+ 0x0d9a, 0x0dbd,
87
+ 0x0dc0, 0x0dc6,
88
+ 0x0dca, 0x0dca,
89
+ 0x0dcf, 0x0ddf,
90
+ 0x0de6, 0x0def,
91
+ 0x0df2, 0x0df4,
92
+ 0x0e01, 0x0e3a,
93
+ 0x0e3f, 0x0e5b,
94
+ 0x0e81, 0x0ebd,
95
+ 0x0ec0, 0x0ed9,
96
+ 0x0edc, 0x0edf,
97
+ 0x0f00, 0x0f6c,
98
+ 0x0f71, 0x0fda,
99
+ 0x1000, 0x10c7,
100
+ 0x10cd, 0x10cd,
101
+ 0x10d0, 0x124d,
102
+ 0x1250, 0x125d,
103
+ 0x1260, 0x128d,
104
+ 0x1290, 0x12b5,
105
+ 0x12b8, 0x12c5,
106
+ 0x12c8, 0x1315,
107
+ 0x1318, 0x135a,
108
+ 0x135d, 0x137c,
109
+ 0x1380, 0x1399,
110
+ 0x13a0, 0x13f5,
111
+ 0x13f8, 0x13fd,
112
+ 0x1400, 0x169c,
113
+ 0x16a0, 0x16f8,
114
+ 0x1700, 0x1715,
115
+ 0x171f, 0x1736,
116
+ 0x1740, 0x1753,
117
+ 0x1760, 0x1773,
118
+ 0x1780, 0x17dd,
119
+ 0x17e0, 0x17e9,
120
+ 0x17f0, 0x17f9,
121
+ 0x1800, 0x1819,
122
+ 0x1820, 0x1878,
123
+ 0x1880, 0x18aa,
124
+ 0x18b0, 0x18f5,
125
+ 0x1900, 0x192b,
126
+ 0x1930, 0x193b,
127
+ 0x1940, 0x1940,
128
+ 0x1944, 0x196d,
129
+ 0x1970, 0x1974,
130
+ 0x1980, 0x19ab,
131
+ 0x19b0, 0x19c9,
132
+ 0x19d0, 0x19da,
133
+ 0x19de, 0x1a1b,
134
+ 0x1a1e, 0x1a7c,
135
+ 0x1a7f, 0x1a89,
136
+ 0x1a90, 0x1a99,
137
+ 0x1aa0, 0x1aad,
138
+ 0x1ab0, 0x1ace,
139
+ 0x1b00, 0x1b4c,
140
+ 0x1b50, 0x1bf3,
141
+ 0x1bfc, 0x1c37,
142
+ 0x1c3b, 0x1c49,
143
+ 0x1c4d, 0x1c88,
144
+ 0x1c90, 0x1cba,
145
+ 0x1cbd, 0x1cc7,
146
+ 0x1cd0, 0x1cfa,
147
+ 0x1d00, 0x1f15,
148
+ 0x1f18, 0x1f1d,
149
+ 0x1f20, 0x1f45,
150
+ 0x1f48, 0x1f4d,
151
+ 0x1f50, 0x1f7d,
152
+ 0x1f80, 0x1fd3,
153
+ 0x1fd6, 0x1fef,
154
+ 0x1ff2, 0x1ffe,
155
+ 0x2010, 0x2027,
156
+ 0x2030, 0x205e,
157
+ 0x2070, 0x2071,
158
+ 0x2074, 0x209c,
159
+ 0x20a0, 0x20c0,
160
+ 0x20d0, 0x20f0,
161
+ 0x2100, 0x218b,
162
+ 0x2190, 0x2426,
163
+ 0x2440, 0x244a,
164
+ 0x2460, 0x2b73,
165
+ 0x2b76, 0x2cf3,
166
+ 0x2cf9, 0x2d27,
167
+ 0x2d2d, 0x2d2d,
168
+ 0x2d30, 0x2d67,
169
+ 0x2d6f, 0x2d70,
170
+ 0x2d7f, 0x2d96,
171
+ 0x2da0, 0x2e5d,
172
+ 0x2e80, 0x2ef3,
173
+ 0x2f00, 0x2fd5,
174
+ 0x2ff0, 0x2ffb,
175
+ 0x3001, 0x3096,
176
+ 0x3099, 0x30ff,
177
+ 0x3105, 0x31e3,
178
+ 0x31f0, 0xa48c,
179
+ 0xa490, 0xa4c6,
180
+ 0xa4d0, 0xa62b,
181
+ 0xa640, 0xa6f7,
182
+ 0xa700, 0xa7ca,
183
+ 0xa7d0, 0xa7d9,
184
+ 0xa7f2, 0xa82c,
185
+ 0xa830, 0xa839,
186
+ 0xa840, 0xa877,
187
+ 0xa880, 0xa8c5,
188
+ 0xa8ce, 0xa8d9,
189
+ 0xa8e0, 0xa953,
190
+ 0xa95f, 0xa97c,
191
+ 0xa980, 0xa9d9,
192
+ 0xa9de, 0xaa36,
193
+ 0xaa40, 0xaa4d,
194
+ 0xaa50, 0xaa59,
195
+ 0xaa5c, 0xaac2,
196
+ 0xaadb, 0xaaf6,
197
+ 0xab01, 0xab06,
198
+ 0xab09, 0xab0e,
199
+ 0xab11, 0xab16,
200
+ 0xab20, 0xab6b,
201
+ 0xab70, 0xabed,
202
+ 0xabf0, 0xabf9,
203
+ 0xac00, 0xd7a3,
204
+ 0xd7b0, 0xd7c6,
205
+ 0xd7cb, 0xd7fb,
206
+ 0xf900, 0xfa6d,
207
+ 0xfa70, 0xfad9,
208
+ 0xfb00, 0xfb06,
209
+ 0xfb13, 0xfb17,
210
+ 0xfb1d, 0xfbc2,
211
+ 0xfbd3, 0xfd8f,
212
+ 0xfd92, 0xfdc7,
213
+ 0xfdcf, 0xfdcf,
214
+ 0xfdf0, 0xfe19,
215
+ 0xfe20, 0xfe6b,
216
+ 0xfe70, 0xfefc,
217
+ 0xff01, 0xffbe,
218
+ 0xffc2, 0xffc7,
219
+ 0xffca, 0xffcf,
220
+ 0xffd2, 0xffd7,
221
+ 0xffda, 0xffdc,
222
+ 0xffe0, 0xffee,
223
+ 0xfffc, 0xfffd,
224
+ }
225
+
226
+ var isNotPrint16 = []uint16{
227
+ 0x00ad,
228
+ 0x038b,
229
+ 0x038d,
230
+ 0x03a2,
231
+ 0x0530,
232
+ 0x0590,
233
+ 0x061c,
234
+ 0x06dd,
235
+ 0x083f,
236
+ 0x085f,
237
+ 0x08e2,
238
+ 0x0984,
239
+ 0x09a9,
240
+ 0x09b1,
241
+ 0x09de,
242
+ 0x0a04,
243
+ 0x0a29,
244
+ 0x0a31,
245
+ 0x0a34,
246
+ 0x0a37,
247
+ 0x0a3d,
248
+ 0x0a5d,
249
+ 0x0a84,
250
+ 0x0a8e,
251
+ 0x0a92,
252
+ 0x0aa9,
253
+ 0x0ab1,
254
+ 0x0ab4,
255
+ 0x0ac6,
256
+ 0x0aca,
257
+ 0x0b00,
258
+ 0x0b04,
259
+ 0x0b29,
260
+ 0x0b31,
261
+ 0x0b34,
262
+ 0x0b5e,
263
+ 0x0b84,
264
+ 0x0b91,
265
+ 0x0b9b,
266
+ 0x0b9d,
267
+ 0x0bc9,
268
+ 0x0c0d,
269
+ 0x0c11,
270
+ 0x0c29,
271
+ 0x0c45,
272
+ 0x0c49,
273
+ 0x0c57,
274
+ 0x0c8d,
275
+ 0x0c91,
276
+ 0x0ca9,
277
+ 0x0cb4,
278
+ 0x0cc5,
279
+ 0x0cc9,
280
+ 0x0cdf,
281
+ 0x0cf0,
282
+ 0x0d0d,
283
+ 0x0d11,
284
+ 0x0d45,
285
+ 0x0d49,
286
+ 0x0d80,
287
+ 0x0d84,
288
+ 0x0db2,
289
+ 0x0dbc,
290
+ 0x0dd5,
291
+ 0x0dd7,
292
+ 0x0e83,
293
+ 0x0e85,
294
+ 0x0e8b,
295
+ 0x0ea4,
296
+ 0x0ea6,
297
+ 0x0ec5,
298
+ 0x0ec7,
299
+ 0x0ecf,
300
+ 0x0f48,
301
+ 0x0f98,
302
+ 0x0fbd,
303
+ 0x0fcd,
304
+ 0x10c6,
305
+ 0x1249,
306
+ 0x1257,
307
+ 0x1259,
308
+ 0x1289,
309
+ 0x12b1,
310
+ 0x12bf,
311
+ 0x12c1,
312
+ 0x12d7,
313
+ 0x1311,
314
+ 0x1680,
315
+ 0x176d,
316
+ 0x1771,
317
+ 0x180e,
318
+ 0x191f,
319
+ 0x1a5f,
320
+ 0x1b7f,
321
+ 0x1f58,
322
+ 0x1f5a,
323
+ 0x1f5c,
324
+ 0x1f5e,
325
+ 0x1fb5,
326
+ 0x1fc5,
327
+ 0x1fdc,
328
+ 0x1ff5,
329
+ 0x208f,
330
+ 0x2b96,
331
+ 0x2d26,
332
+ 0x2da7,
333
+ 0x2daf,
334
+ 0x2db7,
335
+ 0x2dbf,
336
+ 0x2dc7,
337
+ 0x2dcf,
338
+ 0x2dd7,
339
+ 0x2ddf,
340
+ 0x2e9a,
341
+ 0x3040,
342
+ 0x3130,
343
+ 0x318f,
344
+ 0x321f,
345
+ 0xa7d2,
346
+ 0xa7d4,
347
+ 0xa9ce,
348
+ 0xa9ff,
349
+ 0xab27,
350
+ 0xab2f,
351
+ 0xfb37,
352
+ 0xfb3d,
353
+ 0xfb3f,
354
+ 0xfb42,
355
+ 0xfb45,
356
+ 0xfe53,
357
+ 0xfe67,
358
+ 0xfe75,
359
+ 0xffe7,
360
+ }
361
+
362
+ var isPrint32 = []uint32{
363
+ 0x010000, 0x01004d,
364
+ 0x010050, 0x01005d,
365
+ 0x010080, 0x0100fa,
366
+ 0x010100, 0x010102,
367
+ 0x010107, 0x010133,
368
+ 0x010137, 0x01019c,
369
+ 0x0101a0, 0x0101a0,
370
+ 0x0101d0, 0x0101fd,
371
+ 0x010280, 0x01029c,
372
+ 0x0102a0, 0x0102d0,
373
+ 0x0102e0, 0x0102fb,
374
+ 0x010300, 0x010323,
375
+ 0x01032d, 0x01034a,
376
+ 0x010350, 0x01037a,
377
+ 0x010380, 0x0103c3,
378
+ 0x0103c8, 0x0103d5,
379
+ 0x010400, 0x01049d,
380
+ 0x0104a0, 0x0104a9,
381
+ 0x0104b0, 0x0104d3,
382
+ 0x0104d8, 0x0104fb,
383
+ 0x010500, 0x010527,
384
+ 0x010530, 0x010563,
385
+ 0x01056f, 0x0105bc,
386
+ 0x010600, 0x010736,
387
+ 0x010740, 0x010755,
388
+ 0x010760, 0x010767,
389
+ 0x010780, 0x0107ba,
390
+ 0x010800, 0x010805,
391
+ 0x010808, 0x010838,
392
+ 0x01083c, 0x01083c,
393
+ 0x01083f, 0x01089e,
394
+ 0x0108a7, 0x0108af,
395
+ 0x0108e0, 0x0108f5,
396
+ 0x0108fb, 0x01091b,
397
+ 0x01091f, 0x010939,
398
+ 0x01093f, 0x01093f,
399
+ 0x010980, 0x0109b7,
400
+ 0x0109bc, 0x0109cf,
401
+ 0x0109d2, 0x010a06,
402
+ 0x010a0c, 0x010a35,
403
+ 0x010a38, 0x010a3a,
404
+ 0x010a3f, 0x010a48,
405
+ 0x010a50, 0x010a58,
406
+ 0x010a60, 0x010a9f,
407
+ 0x010ac0, 0x010ae6,
408
+ 0x010aeb, 0x010af6,
409
+ 0x010b00, 0x010b35,
410
+ 0x010b39, 0x010b55,
411
+ 0x010b58, 0x010b72,
412
+ 0x010b78, 0x010b91,
413
+ 0x010b99, 0x010b9c,
414
+ 0x010ba9, 0x010baf,
415
+ 0x010c00, 0x010c48,
416
+ 0x010c80, 0x010cb2,
417
+ 0x010cc0, 0x010cf2,
418
+ 0x010cfa, 0x010d27,
419
+ 0x010d30, 0x010d39,
420
+ 0x010e60, 0x010ead,
421
+ 0x010eb0, 0x010eb1,
422
+ 0x010efd, 0x010f27,
423
+ 0x010f30, 0x010f59,
424
+ 0x010f70, 0x010f89,
425
+ 0x010fb0, 0x010fcb,
426
+ 0x010fe0, 0x010ff6,
427
+ 0x011000, 0x01104d,
428
+ 0x011052, 0x011075,
429
+ 0x01107f, 0x0110c2,
430
+ 0x0110d0, 0x0110e8,
431
+ 0x0110f0, 0x0110f9,
432
+ 0x011100, 0x011147,
433
+ 0x011150, 0x011176,
434
+ 0x011180, 0x0111f4,
435
+ 0x011200, 0x011241,
436
+ 0x011280, 0x0112a9,
437
+ 0x0112b0, 0x0112ea,
438
+ 0x0112f0, 0x0112f9,
439
+ 0x011300, 0x01130c,
440
+ 0x01130f, 0x011310,
441
+ 0x011313, 0x011344,
442
+ 0x011347, 0x011348,
443
+ 0x01134b, 0x01134d,
444
+ 0x011350, 0x011350,
445
+ 0x011357, 0x011357,
446
+ 0x01135d, 0x011363,
447
+ 0x011366, 0x01136c,
448
+ 0x011370, 0x011374,
449
+ 0x011400, 0x011461,
450
+ 0x011480, 0x0114c7,
451
+ 0x0114d0, 0x0114d9,
452
+ 0x011580, 0x0115b5,
453
+ 0x0115b8, 0x0115dd,
454
+ 0x011600, 0x011644,
455
+ 0x011650, 0x011659,
456
+ 0x011660, 0x01166c,
457
+ 0x011680, 0x0116b9,
458
+ 0x0116c0, 0x0116c9,
459
+ 0x011700, 0x01171a,
460
+ 0x01171d, 0x01172b,
461
+ 0x011730, 0x011746,
462
+ 0x011800, 0x01183b,
463
+ 0x0118a0, 0x0118f2,
464
+ 0x0118ff, 0x011906,
465
+ 0x011909, 0x011909,
466
+ 0x01190c, 0x011938,
467
+ 0x01193b, 0x011946,
468
+ 0x011950, 0x011959,
469
+ 0x0119a0, 0x0119a7,
470
+ 0x0119aa, 0x0119d7,
471
+ 0x0119da, 0x0119e4,
472
+ 0x011a00, 0x011a47,
473
+ 0x011a50, 0x011aa2,
474
+ 0x011ab0, 0x011af8,
475
+ 0x011b00, 0x011b09,
476
+ 0x011c00, 0x011c45,
477
+ 0x011c50, 0x011c6c,
478
+ 0x011c70, 0x011c8f,
479
+ 0x011c92, 0x011cb6,
480
+ 0x011d00, 0x011d36,
481
+ 0x011d3a, 0x011d47,
482
+ 0x011d50, 0x011d59,
483
+ 0x011d60, 0x011d98,
484
+ 0x011da0, 0x011da9,
485
+ 0x011ee0, 0x011ef8,
486
+ 0x011f00, 0x011f3a,
487
+ 0x011f3e, 0x011f59,
488
+ 0x011fb0, 0x011fb0,
489
+ 0x011fc0, 0x011ff1,
490
+ 0x011fff, 0x012399,
491
+ 0x012400, 0x012474,
492
+ 0x012480, 0x012543,
493
+ 0x012f90, 0x012ff2,
494
+ 0x013000, 0x01342f,
495
+ 0x013440, 0x013455,
496
+ 0x014400, 0x014646,
497
+ 0x016800, 0x016a38,
498
+ 0x016a40, 0x016a69,
499
+ 0x016a6e, 0x016ac9,
500
+ 0x016ad0, 0x016aed,
501
+ 0x016af0, 0x016af5,
502
+ 0x016b00, 0x016b45,
503
+ 0x016b50, 0x016b77,
504
+ 0x016b7d, 0x016b8f,
505
+ 0x016e40, 0x016e9a,
506
+ 0x016f00, 0x016f4a,
507
+ 0x016f4f, 0x016f87,
508
+ 0x016f8f, 0x016f9f,
509
+ 0x016fe0, 0x016fe4,
510
+ 0x016ff0, 0x016ff1,
511
+ 0x017000, 0x0187f7,
512
+ 0x018800, 0x018cd5,
513
+ 0x018d00, 0x018d08,
514
+ 0x01aff0, 0x01b122,
515
+ 0x01b132, 0x01b132,
516
+ 0x01b150, 0x01b152,
517
+ 0x01b155, 0x01b155,
518
+ 0x01b164, 0x01b167,
519
+ 0x01b170, 0x01b2fb,
520
+ 0x01bc00, 0x01bc6a,
521
+ 0x01bc70, 0x01bc7c,
522
+ 0x01bc80, 0x01bc88,
523
+ 0x01bc90, 0x01bc99,
524
+ 0x01bc9c, 0x01bc9f,
525
+ 0x01cf00, 0x01cf2d,
526
+ 0x01cf30, 0x01cf46,
527
+ 0x01cf50, 0x01cfc3,
528
+ 0x01d000, 0x01d0f5,
529
+ 0x01d100, 0x01d126,
530
+ 0x01d129, 0x01d172,
531
+ 0x01d17b, 0x01d1ea,
532
+ 0x01d200, 0x01d245,
533
+ 0x01d2c0, 0x01d2d3,
534
+ 0x01d2e0, 0x01d2f3,
535
+ 0x01d300, 0x01d356,
536
+ 0x01d360, 0x01d378,
537
+ 0x01d400, 0x01d49f,
538
+ 0x01d4a2, 0x01d4a2,
539
+ 0x01d4a5, 0x01d4a6,
540
+ 0x01d4a9, 0x01d50a,
541
+ 0x01d50d, 0x01d546,
542
+ 0x01d54a, 0x01d6a5,
543
+ 0x01d6a8, 0x01d7cb,
544
+ 0x01d7ce, 0x01da8b,
545
+ 0x01da9b, 0x01daaf,
546
+ 0x01df00, 0x01df1e,
547
+ 0x01df25, 0x01df2a,
548
+ 0x01e000, 0x01e018,
549
+ 0x01e01b, 0x01e02a,
550
+ 0x01e030, 0x01e06d,
551
+ 0x01e08f, 0x01e08f,
552
+ 0x01e100, 0x01e12c,
553
+ 0x01e130, 0x01e13d,
554
+ 0x01e140, 0x01e149,
555
+ 0x01e14e, 0x01e14f,
556
+ 0x01e290, 0x01e2ae,
557
+ 0x01e2c0, 0x01e2f9,
558
+ 0x01e2ff, 0x01e2ff,
559
+ 0x01e4d0, 0x01e4f9,
560
+ 0x01e7e0, 0x01e8c4,
561
+ 0x01e8c7, 0x01e8d6,
562
+ 0x01e900, 0x01e94b,
563
+ 0x01e950, 0x01e959,
564
+ 0x01e95e, 0x01e95f,
565
+ 0x01ec71, 0x01ecb4,
566
+ 0x01ed01, 0x01ed3d,
567
+ 0x01ee00, 0x01ee24,
568
+ 0x01ee27, 0x01ee3b,
569
+ 0x01ee42, 0x01ee42,
570
+ 0x01ee47, 0x01ee54,
571
+ 0x01ee57, 0x01ee64,
572
+ 0x01ee67, 0x01ee9b,
573
+ 0x01eea1, 0x01eebb,
574
+ 0x01eef0, 0x01eef1,
575
+ 0x01f000, 0x01f02b,
576
+ 0x01f030, 0x01f093,
577
+ 0x01f0a0, 0x01f0ae,
578
+ 0x01f0b1, 0x01f0f5,
579
+ 0x01f100, 0x01f1ad,
580
+ 0x01f1e6, 0x01f202,
581
+ 0x01f210, 0x01f23b,
582
+ 0x01f240, 0x01f248,
583
+ 0x01f250, 0x01f251,
584
+ 0x01f260, 0x01f265,
585
+ 0x01f300, 0x01f6d7,
586
+ 0x01f6dc, 0x01f6ec,
587
+ 0x01f6f0, 0x01f6fc,
588
+ 0x01f700, 0x01f776,
589
+ 0x01f77b, 0x01f7d9,
590
+ 0x01f7e0, 0x01f7eb,
591
+ 0x01f7f0, 0x01f7f0,
592
+ 0x01f800, 0x01f80b,
593
+ 0x01f810, 0x01f847,
594
+ 0x01f850, 0x01f859,
595
+ 0x01f860, 0x01f887,
596
+ 0x01f890, 0x01f8ad,
597
+ 0x01f8b0, 0x01f8b1,
598
+ 0x01f900, 0x01fa53,
599
+ 0x01fa60, 0x01fa6d,
600
+ 0x01fa70, 0x01fa7c,
601
+ 0x01fa80, 0x01fa88,
602
+ 0x01fa90, 0x01fac5,
603
+ 0x01face, 0x01fadb,
604
+ 0x01fae0, 0x01fae8,
605
+ 0x01faf0, 0x01faf8,
606
+ 0x01fb00, 0x01fbca,
607
+ 0x01fbf0, 0x01fbf9,
608
+ 0x020000, 0x02a6df,
609
+ 0x02a700, 0x02b739,
610
+ 0x02b740, 0x02b81d,
611
+ 0x02b820, 0x02cea1,
612
+ 0x02ceb0, 0x02ebe0,
613
+ 0x02f800, 0x02fa1d,
614
+ 0x030000, 0x03134a,
615
+ 0x031350, 0x0323af,
616
+ 0x0e0100, 0x0e01ef,
617
+ }
618
+
619
+ var isNotPrint32 = []uint16{ // add 0x10000 to each entry
620
+ 0x000c,
621
+ 0x0027,
622
+ 0x003b,
623
+ 0x003e,
624
+ 0x018f,
625
+ 0x039e,
626
+ 0x057b,
627
+ 0x058b,
628
+ 0x0593,
629
+ 0x0596,
630
+ 0x05a2,
631
+ 0x05b2,
632
+ 0x05ba,
633
+ 0x0786,
634
+ 0x07b1,
635
+ 0x0809,
636
+ 0x0836,
637
+ 0x0856,
638
+ 0x08f3,
639
+ 0x0a04,
640
+ 0x0a14,
641
+ 0x0a18,
642
+ 0x0e7f,
643
+ 0x0eaa,
644
+ 0x10bd,
645
+ 0x1135,
646
+ 0x11e0,
647
+ 0x1212,
648
+ 0x1287,
649
+ 0x1289,
650
+ 0x128e,
651
+ 0x129e,
652
+ 0x1304,
653
+ 0x1329,
654
+ 0x1331,
655
+ 0x1334,
656
+ 0x133a,
657
+ 0x145c,
658
+ 0x1914,
659
+ 0x1917,
660
+ 0x1936,
661
+ 0x1c09,
662
+ 0x1c37,
663
+ 0x1ca8,
664
+ 0x1d07,
665
+ 0x1d0a,
666
+ 0x1d3b,
667
+ 0x1d3e,
668
+ 0x1d66,
669
+ 0x1d69,
670
+ 0x1d8f,
671
+ 0x1d92,
672
+ 0x1f11,
673
+ 0x246f,
674
+ 0x6a5f,
675
+ 0x6abf,
676
+ 0x6b5a,
677
+ 0x6b62,
678
+ 0xaff4,
679
+ 0xaffc,
680
+ 0xafff,
681
+ 0xd455,
682
+ 0xd49d,
683
+ 0xd4ad,
684
+ 0xd4ba,
685
+ 0xd4bc,
686
+ 0xd4c4,
687
+ 0xd506,
688
+ 0xd515,
689
+ 0xd51d,
690
+ 0xd53a,
691
+ 0xd53f,
692
+ 0xd545,
693
+ 0xd551,
694
+ 0xdaa0,
695
+ 0xe007,
696
+ 0xe022,
697
+ 0xe025,
698
+ 0xe7e7,
699
+ 0xe7ec,
700
+ 0xe7ef,
701
+ 0xe7ff,
702
+ 0xee04,
703
+ 0xee20,
704
+ 0xee23,
705
+ 0xee28,
706
+ 0xee33,
707
+ 0xee38,
708
+ 0xee3a,
709
+ 0xee48,
710
+ 0xee4a,
711
+ 0xee4c,
712
+ 0xee50,
713
+ 0xee53,
714
+ 0xee58,
715
+ 0xee5a,
716
+ 0xee5c,
717
+ 0xee5e,
718
+ 0xee60,
719
+ 0xee63,
720
+ 0xee6b,
721
+ 0xee73,
722
+ 0xee78,
723
+ 0xee7d,
724
+ 0xee7f,
725
+ 0xee8a,
726
+ 0xeea4,
727
+ 0xeeaa,
728
+ 0xf0c0,
729
+ 0xf0d0,
730
+ 0xfabe,
731
+ 0xfb93,
732
+ }
733
+
734
+ // isGraphic lists the graphic runes not matched by IsPrint.
735
+ var isGraphic = []uint16{
736
+ 0x00a0,
737
+ 0x1680,
738
+ 0x2000,
739
+ 0x2001,
740
+ 0x2002,
741
+ 0x2003,
742
+ 0x2004,
743
+ 0x2005,
744
+ 0x2006,
745
+ 0x2007,
746
+ 0x2008,
747
+ 0x2009,
748
+ 0x200a,
749
+ 0x202f,
750
+ 0x205f,
751
+ 0x3000,
752
+ }