mol_dump_lib 0.0.869 → 0.0.871
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.
- package/node.d.ts +2 -1
- package/node.d.ts.map +1 -1
- package/node.deps.json +1 -1
- package/node.js +33 -4
- package/node.js.map +1 -1
- package/node.mjs +33 -4
- package/node.test.js +50 -8
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/web.d.ts +2 -1
- package/web.d.ts.map +1 -1
- package/web.deps.json +1 -1
- package/web.js +33 -4
- package/web.js.map +1 -1
- package/web.mjs +33 -4
- package/web.test.js +17 -4
- package/web.test.js.map +1 -1
package/node.mjs
CHANGED
|
@@ -3088,12 +3088,41 @@ var $;
|
|
|
3088
3088
|
"use strict";
|
|
3089
3089
|
var $;
|
|
3090
3090
|
(function ($) {
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3091
|
+
let buf = new Uint8Array(2 ** 12);
|
|
3092
|
+
function $mol_charset_encode(str) {
|
|
3093
|
+
const capacity = str.length * 3;
|
|
3094
|
+
if (buf.byteLength < capacity)
|
|
3095
|
+
buf = new Uint8Array(capacity);
|
|
3096
|
+
return buf.slice(0, $mol_charset_encode_to(str, buf));
|
|
3095
3097
|
}
|
|
3096
3098
|
$.$mol_charset_encode = $mol_charset_encode;
|
|
3099
|
+
function $mol_charset_encode_to(str, buf, from = 0) {
|
|
3100
|
+
let pos = from;
|
|
3101
|
+
for (let i = 0; i < str.length; i++) {
|
|
3102
|
+
let code = str.charCodeAt(i);
|
|
3103
|
+
if (code < 0x80) {
|
|
3104
|
+
buf[pos++] = code;
|
|
3105
|
+
}
|
|
3106
|
+
else if (code < 0x800) {
|
|
3107
|
+
buf[pos++] = 0xc0 | (code >> 6);
|
|
3108
|
+
buf[pos++] = 0x80 | (code & 0x3f);
|
|
3109
|
+
}
|
|
3110
|
+
else if (code < 0xd800 || code >= 0xe000) {
|
|
3111
|
+
buf[pos++] = 0xe0 | (code >> 12);
|
|
3112
|
+
buf[pos++] = 0x80 | ((code >> 6) & 0x3f);
|
|
3113
|
+
buf[pos++] = 0x80 | (code & 0x3f);
|
|
3114
|
+
}
|
|
3115
|
+
else {
|
|
3116
|
+
const point = ((code - 0xd800) << 10) + str.charCodeAt(++i) + 0x2400;
|
|
3117
|
+
buf[pos++] = 0xf0 | (point >> 18);
|
|
3118
|
+
buf[pos++] = 0x80 | ((point >> 12) & 0x3f);
|
|
3119
|
+
buf[pos++] = 0x80 | ((point >> 6) & 0x3f);
|
|
3120
|
+
buf[pos++] = 0x80 | (point & 0x3f);
|
|
3121
|
+
}
|
|
3122
|
+
}
|
|
3123
|
+
return pos - from;
|
|
3124
|
+
}
|
|
3125
|
+
$.$mol_charset_encode_to = $mol_charset_encode_to;
|
|
3097
3126
|
})($ || ($ = {}));
|
|
3098
3127
|
|
|
3099
3128
|
;
|
package/node.test.js
CHANGED
|
@@ -3079,12 +3079,41 @@ var $;
|
|
|
3079
3079
|
"use strict";
|
|
3080
3080
|
var $;
|
|
3081
3081
|
(function ($) {
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3082
|
+
let buf = new Uint8Array(2 ** 12);
|
|
3083
|
+
function $mol_charset_encode(str) {
|
|
3084
|
+
const capacity = str.length * 3;
|
|
3085
|
+
if (buf.byteLength < capacity)
|
|
3086
|
+
buf = new Uint8Array(capacity);
|
|
3087
|
+
return buf.slice(0, $mol_charset_encode_to(str, buf));
|
|
3086
3088
|
}
|
|
3087
3089
|
$.$mol_charset_encode = $mol_charset_encode;
|
|
3090
|
+
function $mol_charset_encode_to(str, buf, from = 0) {
|
|
3091
|
+
let pos = from;
|
|
3092
|
+
for (let i = 0; i < str.length; i++) {
|
|
3093
|
+
let code = str.charCodeAt(i);
|
|
3094
|
+
if (code < 0x80) {
|
|
3095
|
+
buf[pos++] = code;
|
|
3096
|
+
}
|
|
3097
|
+
else if (code < 0x800) {
|
|
3098
|
+
buf[pos++] = 0xc0 | (code >> 6);
|
|
3099
|
+
buf[pos++] = 0x80 | (code & 0x3f);
|
|
3100
|
+
}
|
|
3101
|
+
else if (code < 0xd800 || code >= 0xe000) {
|
|
3102
|
+
buf[pos++] = 0xe0 | (code >> 12);
|
|
3103
|
+
buf[pos++] = 0x80 | ((code >> 6) & 0x3f);
|
|
3104
|
+
buf[pos++] = 0x80 | (code & 0x3f);
|
|
3105
|
+
}
|
|
3106
|
+
else {
|
|
3107
|
+
const point = ((code - 0xd800) << 10) + str.charCodeAt(++i) + 0x2400;
|
|
3108
|
+
buf[pos++] = 0xf0 | (point >> 18);
|
|
3109
|
+
buf[pos++] = 0x80 | ((point >> 12) & 0x3f);
|
|
3110
|
+
buf[pos++] = 0x80 | ((point >> 6) & 0x3f);
|
|
3111
|
+
buf[pos++] = 0x80 | (point & 0x3f);
|
|
3112
|
+
}
|
|
3113
|
+
}
|
|
3114
|
+
return pos - from;
|
|
3115
|
+
}
|
|
3116
|
+
$.$mol_charset_encode_to = $mol_charset_encode_to;
|
|
3088
3117
|
})($ || ($ = {}));
|
|
3089
3118
|
|
|
3090
3119
|
;
|
|
@@ -10004,10 +10033,23 @@ var $;
|
|
|
10004
10033
|
var $;
|
|
10005
10034
|
(function ($) {
|
|
10006
10035
|
$mol_test({
|
|
10007
|
-
'encode
|
|
10008
|
-
|
|
10009
|
-
|
|
10010
|
-
|
|
10036
|
+
'encode empty'() {
|
|
10037
|
+
$mol_assert_equal($mol_charset_encode(''), new Uint8Array([]));
|
|
10038
|
+
},
|
|
10039
|
+
'encode 1 octet'() {
|
|
10040
|
+
$mol_assert_equal($mol_charset_encode('F'), new Uint8Array([0x46]));
|
|
10041
|
+
},
|
|
10042
|
+
'encode 2 octet'() {
|
|
10043
|
+
$mol_assert_equal($mol_charset_encode('Б'), new Uint8Array([0xd0, 0x91]));
|
|
10044
|
+
},
|
|
10045
|
+
'encode 3 octet'() {
|
|
10046
|
+
$mol_assert_equal($mol_charset_encode('ह'), new Uint8Array([0xe0, 0xa4, 0xb9]));
|
|
10047
|
+
},
|
|
10048
|
+
'encode 4 octet'() {
|
|
10049
|
+
$mol_assert_equal($mol_charset_encode('𐍈'), new Uint8Array([0xf0, 0x90, 0x8d, 0x88]));
|
|
10050
|
+
},
|
|
10051
|
+
'encode surrogate pair'() {
|
|
10052
|
+
$mol_assert_equal($mol_charset_encode('😀'), new Uint8Array([0xf0, 0x9f, 0x98, 0x80]));
|
|
10011
10053
|
},
|
|
10012
10054
|
});
|
|
10013
10055
|
})($ || ($ = {}));
|