efront 4.29.1 → 4.30.1
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/#/345/233/275/351/231/205/345/214/226.yml +9 -0
- package/apps/pivot/main.js +2 -1
- package/coms/basic/decodeLEB128.js +16 -2
- package/coms/basic/decodePackW.asm +143 -2
- package/coms/basic/encodeLEB128.js +6 -1
- package/coms/compile/Javascript.js +4 -0
- package/coms/compile/Javascript_test.js +3 -2
- package/coms/compile/Program.js +15 -2
- package/coms/compile/common.js +8 -20
- package/coms/compile/common_test.js +1 -0
- package/coms/docs/helps.js +1 -0
- package/coms/kugou/krc.js +3 -2
- package/coms/kugou/musicList.js +9 -0
- package/coms/reptile/window.js +5 -1
- package/coms/third-party/lzma.js +286 -0
- package/coms/third-party/lzma.wasm +0 -0
- package/coms/third-party//344/273/243/347/240/201/346/235/245/346/272/220.txt +2 -0
- package/coms/zimoli/hookmedia.js +29 -0
- package/coms/zimoli/vbox.js +7 -2
- package/data/packexe-setup.sfx +0 -0
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/public//346/226/207/344/273/266/347/263/273/347/273/237//344/270/273/351/241/265.jsp +2 -2
- package/coms/basic/concatByte.js +0 -15
- package/coms/basic/decodePack.js +0 -203
- package/coms/basic/decodeRange.js +0 -68
- package/coms/basic/encodePack.h +0 -9
- package/coms/basic/encodePack.js +0 -301
- package/coms/basic/encodeRange.h +0 -17
- package/coms/basic/encodeRange.js +0 -107
- package/coms/basic/encodeRange_test.js +0 -40
- package/coms/basic/readBinary.asm +0 -77
- package/coms/basic/readBinary.js +0 -31
- package/coms/basic/writeBinary.js +0 -37
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
// 部分算法参考 https://www.cnblogs.com/jackyzzy/archive/2012/04/26/2471165.html
|
|
2
|
-
"include ./encodeRange.h";
|
|
3
|
-
var __dist, // buff
|
|
4
|
-
L = R_max, // low Cardinal
|
|
5
|
-
R = R_max, // range Cardinal
|
|
6
|
-
d = 0, // digits Cardinal
|
|
7
|
-
n = 0; // follow
|
|
8
|
-
|
|
9
|
-
function OutputCode(t) {
|
|
10
|
-
t = t & 0xff;
|
|
11
|
-
__dist.push(t);
|
|
12
|
-
}
|
|
13
|
-
function init() {
|
|
14
|
-
L = R_max;
|
|
15
|
-
R = R_max;
|
|
16
|
-
n = 0;
|
|
17
|
-
d = 0;
|
|
18
|
-
}
|
|
19
|
-
function encode(cf, f, T) {
|
|
20
|
-
var i, H;
|
|
21
|
-
// 区间计算
|
|
22
|
-
R = R / T | 0;
|
|
23
|
-
L += cf * R;
|
|
24
|
-
R = f * R;
|
|
25
|
-
// 调整区间
|
|
26
|
-
while (R <= R_min) {
|
|
27
|
-
H = L + R - 1;
|
|
28
|
-
// 判断是否有延迟数字
|
|
29
|
-
if (n !== 0) {
|
|
30
|
-
if (H <= R_max) {
|
|
31
|
-
// 区间下沿
|
|
32
|
-
OutputCode(d);
|
|
33
|
-
for (i = 1; i < n; i++)OutputCode(0xff);
|
|
34
|
-
n = 0;
|
|
35
|
-
L += R_max;
|
|
36
|
-
}
|
|
37
|
-
else if (L >= R_max) {
|
|
38
|
-
// 区间上沿
|
|
39
|
-
OutputCode(d + 1);
|
|
40
|
-
for (i = 1; i < n; i++)OutputCode(0x00);
|
|
41
|
-
n = 0;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
// 趋向未定
|
|
45
|
-
n++;
|
|
46
|
-
// 扩展区间
|
|
47
|
-
L = shl(L, 8) & R_max - 1;
|
|
48
|
-
R = shl(R, 8);
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// 判断最高位数字
|
|
53
|
-
if (((L ^ H) & shl(0xff, shift_bits)) === 0) {
|
|
54
|
-
// 出现不变数字
|
|
55
|
-
OutputCode(shr(L, shift_bits));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
// 出现延迟数字
|
|
59
|
-
L -= R_max;
|
|
60
|
-
d = shr(L, shift_bits);
|
|
61
|
-
n = 1;
|
|
62
|
-
}
|
|
63
|
-
// 扩展区间
|
|
64
|
-
L = shl(L, 8) & R_max - 1 | L & R_max;
|
|
65
|
-
L = shl(L, 0);
|
|
66
|
-
R = shl(R, 8);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
function finish() {
|
|
70
|
-
var i;
|
|
71
|
-
if (n !== 0) {
|
|
72
|
-
if (L < R_max) {
|
|
73
|
-
// 趋向下沿
|
|
74
|
-
OutputCode(d);
|
|
75
|
-
for (i = 1; i < n; i++)OutputCode(0xff);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// 走向上沿
|
|
79
|
-
OutputCode(d + 1);
|
|
80
|
-
for (i = 1; i < n; i++)OutputCode(0x00);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
// 输出剩余编码
|
|
84
|
-
L = shl(L, 1);
|
|
85
|
-
i = code_bits + 1;
|
|
86
|
-
do {
|
|
87
|
-
i -= 8;
|
|
88
|
-
OutputCode(shr(L, i) & 0xff);
|
|
89
|
-
} while (i > 0);
|
|
90
|
-
}
|
|
91
|
-
function main(buff) {
|
|
92
|
-
init();
|
|
93
|
-
var tree = new BitTree(symbol_no);
|
|
94
|
-
var dist = __dist = [];
|
|
95
|
-
writeLEB128(dist, 0, buff.length);
|
|
96
|
-
for (var cx = 0, dx = buff.length; cx < dx; cx++) {
|
|
97
|
-
var b = buff[cx];
|
|
98
|
-
var f = tree.counts[b];
|
|
99
|
-
var cf = tree.sumTo(b);
|
|
100
|
-
encode(cf, f, tree.total);
|
|
101
|
-
tree.count(b);
|
|
102
|
-
}
|
|
103
|
-
finish();
|
|
104
|
-
__dist = null;
|
|
105
|
-
return dist;
|
|
106
|
-
}
|
|
107
|
-
module.exports = main;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
function test(size) {
|
|
2
|
-
var source = Array(size);
|
|
3
|
-
for (var cx = 0, dx = source.length; cx < dx; cx++)source[cx] = 32 + Math.random() * 80 | 0;
|
|
4
|
-
var time = new Date;
|
|
5
|
-
var encoded = encodeRange(source);
|
|
6
|
-
var d1 = new Date - time;
|
|
7
|
-
time = new Date;
|
|
8
|
-
var decoded = decodeRange(encoded);
|
|
9
|
-
var d2 = new Date - time;
|
|
10
|
-
for (var cx = 0, dx = size + 1; cx < dx; cx++) {
|
|
11
|
-
if (decoded[cx] !== source[cx]) {
|
|
12
|
-
console.log({
|
|
13
|
-
size,
|
|
14
|
-
source,
|
|
15
|
-
encoded,
|
|
16
|
-
decoded,
|
|
17
|
-
cx,
|
|
18
|
-
scx: source[cx],
|
|
19
|
-
ecx: encoded[cx],
|
|
20
|
-
dcx: decoded[cx],
|
|
21
|
-
})
|
|
22
|
-
throw new Error(i18n`解码异常!`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
console.log({
|
|
26
|
-
数据大小: source.length,
|
|
27
|
-
压缩后大小: encoded.length,
|
|
28
|
-
编码用时: d1,
|
|
29
|
-
解码用时: d2,
|
|
30
|
-
})
|
|
31
|
-
}
|
|
32
|
-
test(20);
|
|
33
|
-
test(200);
|
|
34
|
-
test(1024);
|
|
35
|
-
test(2048);
|
|
36
|
-
test(20480);
|
|
37
|
-
test(204800);
|
|
38
|
-
test(2048000);
|
|
39
|
-
// test(20480000);
|
|
40
|
-
// test(80000000);
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
readBinary proc buff,bitoffset,bitlength
|
|
2
|
-
local num,index,bitdelta,delta
|
|
3
|
-
mov eax,90007h
|
|
4
|
-
mov num,0
|
|
5
|
-
mov eax,bitoffset
|
|
6
|
-
shr eax,3
|
|
7
|
-
mov index,eax
|
|
8
|
-
mov ebx,bitoffset
|
|
9
|
-
shl eax,3
|
|
10
|
-
sub ebx,eax
|
|
11
|
-
mov bitdelta,ebx
|
|
12
|
-
.if bitdelta
|
|
13
|
-
mov eax,8
|
|
14
|
-
sub eax,ebx
|
|
15
|
-
mov bitdelta,eax
|
|
16
|
-
mov ebx,buff
|
|
17
|
-
add ebx,index
|
|
18
|
-
mov eax,0
|
|
19
|
-
mov al,BYTE ptr[ebx]
|
|
20
|
-
mov delta,eax
|
|
21
|
-
mov eax,index
|
|
22
|
-
inc eax
|
|
23
|
-
mov index,eax
|
|
24
|
-
mov eax,bitlength
|
|
25
|
-
sub eax,bitdelta
|
|
26
|
-
mov bitlength,eax
|
|
27
|
-
mov eax,1
|
|
28
|
-
mov ecx,bitdelta
|
|
29
|
-
shl eax,cl
|
|
30
|
-
sub eax,1
|
|
31
|
-
and eax,delta
|
|
32
|
-
mov num,eax
|
|
33
|
-
mov eax,bitlength
|
|
34
|
-
and eax,07fffffffh
|
|
35
|
-
.if bitlength !=eax
|
|
36
|
-
mov eax,0
|
|
37
|
-
sub eax,bitlength
|
|
38
|
-
mov ecx,eax
|
|
39
|
-
mov eax,num
|
|
40
|
-
shr eax,cl
|
|
41
|
-
mov num,eax
|
|
42
|
-
mov bitlength,0
|
|
43
|
-
.endif
|
|
44
|
-
.endif
|
|
45
|
-
.while bitlength>=8
|
|
46
|
-
mov eax,bitlength
|
|
47
|
-
sub eax,8
|
|
48
|
-
mov bitlength,eax
|
|
49
|
-
mov eax,num
|
|
50
|
-
shl eax,8
|
|
51
|
-
mov ebx,buff
|
|
52
|
-
add ebx,index
|
|
53
|
-
mov al,BYTE ptr[ebx]
|
|
54
|
-
mov num,eax
|
|
55
|
-
mov eax,index
|
|
56
|
-
inc eax
|
|
57
|
-
mov index,eax
|
|
58
|
-
.endw
|
|
59
|
-
.if bitlength
|
|
60
|
-
mov ebx,buff
|
|
61
|
-
add ebx,index
|
|
62
|
-
mov al,BYTE ptr[ebx]
|
|
63
|
-
and eax,0ffh
|
|
64
|
-
mov delta,eax
|
|
65
|
-
mov eax,num
|
|
66
|
-
mov ecx,bitlength
|
|
67
|
-
shl eax,cl
|
|
68
|
-
mov ecx,8
|
|
69
|
-
sub ecx,bitlength
|
|
70
|
-
mov ebx,delta
|
|
71
|
-
shr ebx,cl
|
|
72
|
-
or eax,ebx
|
|
73
|
-
mov num,eax
|
|
74
|
-
.endif
|
|
75
|
-
mov eax,num
|
|
76
|
-
ret
|
|
77
|
-
readBinary endp
|
package/coms/basic/readBinary.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 从二进制读取指定长度的数据
|
|
3
|
-
* @param {Buffer} buff
|
|
4
|
-
* @param {number} bitoffset
|
|
5
|
-
* @param {number} bitlength 不大于31
|
|
6
|
-
* @returns 0x7fffffff以内的正整数
|
|
7
|
-
*/
|
|
8
|
-
function readBinary(buff, bitoffset, bitlength) {
|
|
9
|
-
var num = 0, index = bitoffset >> 3;
|
|
10
|
-
var bitdelta = bitoffset - (index << 3);
|
|
11
|
-
if (bitdelta > 0) {
|
|
12
|
-
bitdelta = 8 - bitdelta;
|
|
13
|
-
var delta = buff[index++];
|
|
14
|
-
bitlength -= bitdelta;
|
|
15
|
-
num = delta & (1 << bitdelta) - 1;
|
|
16
|
-
if (bitlength < 0) {
|
|
17
|
-
num = num >> -bitlength;
|
|
18
|
-
bitlength = 0;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
while (bitlength >= 8) {
|
|
22
|
-
bitlength -= 8;
|
|
23
|
-
num = num << 8 | buff[index++];
|
|
24
|
-
}
|
|
25
|
-
if (bitlength > 0) {
|
|
26
|
-
var delta = buff[index];
|
|
27
|
-
num = num << bitlength | delta >> 8 - bitlength;
|
|
28
|
-
}
|
|
29
|
-
return num;
|
|
30
|
-
}
|
|
31
|
-
module.exports = readBinary;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 写入指定长度的二进制数据
|
|
3
|
-
* @param {Buffer} buff
|
|
4
|
-
* @param {number} bitoffset
|
|
5
|
-
* @param {number} bitlength 不大于31
|
|
6
|
-
* @param {number} binary 不大于0x7fffffff
|
|
7
|
-
*/
|
|
8
|
-
function writeBinary(buff, bitoffset, bitlength, binary) {
|
|
9
|
-
var index = bitoffset >> 3;
|
|
10
|
-
var bitdelta = bitoffset - (index << 3);
|
|
11
|
-
if (bitdelta > 0) {
|
|
12
|
-
bitdelta = 8 - bitdelta;
|
|
13
|
-
var delta = buff[index];
|
|
14
|
-
bitlength -= bitdelta;
|
|
15
|
-
var rest = 0;
|
|
16
|
-
if (bitlength < 0) {
|
|
17
|
-
rest = -bitlength;
|
|
18
|
-
bitlength = 0;
|
|
19
|
-
}
|
|
20
|
-
delta = delta & (1 << 8) - (1 << bitdelta) | binary >> bitlength << rest | delta & (1 << rest) - 1;
|
|
21
|
-
buff[index] = delta;
|
|
22
|
-
binary = binary & (1 << bitlength) - 1;
|
|
23
|
-
index++;
|
|
24
|
-
}
|
|
25
|
-
while (bitlength >= 8) {
|
|
26
|
-
bitlength -= 8;
|
|
27
|
-
buff[index++] = binary >> bitlength;
|
|
28
|
-
binary = binary & (1 << bitlength) - 1;
|
|
29
|
-
}
|
|
30
|
-
if (bitlength > 0) {
|
|
31
|
-
var delta = buff[index];
|
|
32
|
-
bitdelta = 8 - bitlength;
|
|
33
|
-
delta = delta & (1 << bitdelta) - 1 | binary << bitdelta
|
|
34
|
-
buff[index] = delta;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
module.exports = writeBinary;
|