efront 4.15.2 → 4.16.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.
- package/coms/basic/#loader.js +0 -7
- package/coms/basic/Matrix.js +181 -307
- package/coms/basic/cross_.js +2 -2
- package/coms/basic/parseYML.js +1 -1
- package/coms/basic/parseYML_test.js +26 -1
- package/coms/basic_/asyncAster_.js +5 -1
- package/coms/compile/Javascript.js +16 -4
- package/coms/compile/Program.js +4 -0
- package/coms/compile/common.js +94 -38
- package/coms/compile/downLevel.js +30 -7
- package/coms/compile/downLevel_test.js +62 -10
- package/coms/compile/run-test262.js +19 -9
- package/coms/compile/unstruct.js +12 -3
- package/coms/compile/unstruct_test.js +3 -1
- package/coms/compile//347/264/240/351/246/250.js +1 -0
- package/coms/compile//347/264/240/351/246/250_test.js +1 -0
- package/coms/third-party/qrcode.js +4 -1
- package/coms/zimoli/menuList.less +1 -0
- package/coms/zimoli/picture.js +3 -0
- package/coms/zimoli/popup.js +1 -1
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/basic/#loader.js
CHANGED
|
@@ -836,13 +836,6 @@ var hook = function (requires_count) {
|
|
|
836
836
|
modules.hook_time = +new Date;
|
|
837
837
|
if (document) {
|
|
838
838
|
initPixelDecoder();
|
|
839
|
-
if (modules.hook_time - efront_time < (isProduction ? 30 : 5) && document.querySelector && devicePixelRatio > 1 && /Linux/.test(navigator.platform) && navigator.maxTouchPoints > 0) {
|
|
840
|
-
let ratio = +(1000000 / devicePixelRatio + .5 | 0) / 1000000;
|
|
841
|
-
document.querySelector("meta[name=viewport]").setAttribute("content", `width=device-width,target-densitydpi=device-dpi,user-scalable=no,initial-scale=1,maximum-scale=${ratio}`);
|
|
842
|
-
renderPixelRatio *= devicePixelRatio;
|
|
843
|
-
modules.renderPixelRatio = renderPixelRatio;
|
|
844
|
-
devicePixelRatio = modules.devicePixelRatio = 1;
|
|
845
|
-
}
|
|
846
839
|
if (!efrontPath) efrontPath = document.body.getAttribute("main-path") || document.body.getAttribute("path") || document.body.getAttribute("main") || "zimoli";
|
|
847
840
|
}
|
|
848
841
|
init(efrontPath, function (zimoli) {
|
package/coms/basic/Matrix.js
CHANGED
|
@@ -1,10 +1,175 @@
|
|
|
1
1
|
var notMatchLength = new Error("矩阵长度不一致");
|
|
2
|
+
|
|
3
|
+
function matrix2d(theta) {
|
|
4
|
+
var cosa = Math.cos(theta);
|
|
5
|
+
var sina = Math.sin(theta);
|
|
6
|
+
return new Matrix(
|
|
7
|
+
cosa, sina, 0,
|
|
8
|
+
-sina, cosa, 0,
|
|
9
|
+
0, 0, 1
|
|
10
|
+
);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function matrix3d(factor) {
|
|
14
|
+
var n = norm(factor.slice(0, 3));
|
|
15
|
+
var theta = factor.length === 4 ? factor[3] : n;
|
|
16
|
+
var vec = times(factor, 1 / n);
|
|
17
|
+
var cosa = Math.cos(theta);
|
|
18
|
+
var sina = Math.sin(theta);
|
|
19
|
+
var vera = 1 - cosa;
|
|
20
|
+
var [x_u, y_u, z_u] = !n ? [0, 0, 1] : vec;
|
|
21
|
+
return new Matrix(
|
|
22
|
+
cosa + x_u * x_u * vera, x_u * y_u * vera - z_u * sina, x_u * z_u * vera + y_u * sina, 0,
|
|
23
|
+
x_u * y_u * vera + z_u * sina, cosa + y_u * y_u * vera, y_u * z_u * vera - x_u * sina, 0,
|
|
24
|
+
x_u * z_u * vera - y_u * sina, y_u * z_u * vera + x_u * sina, cosa + z_u * z_u * vera, 0,
|
|
25
|
+
0, 0, 0, 1
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function transform(B, dots) {
|
|
30
|
+
var dimention = Math.sqrt(B.length - 1) | 0;
|
|
31
|
+
if (dots.length % dimention !== 0) throw notMatchLength;
|
|
32
|
+
if (dots === B) B = B.slice(0);
|
|
33
|
+
var ds = dots.slice(0);
|
|
34
|
+
var dim2 = B.length % dimention !== 0 ? dimention + 1 : dimention;
|
|
35
|
+
for (var cx = 0, dx = dots.length; cx < dx; cx += dimention) {
|
|
36
|
+
for (var cy = 0, dy = dimention; cy < dy; cy++) {
|
|
37
|
+
var sum = 0;
|
|
38
|
+
for (var ct = 0, dt = dimention; ct < dt; ct++) {
|
|
39
|
+
sum += ds[cx + ct] * B[ct * dim2 + cy];
|
|
40
|
+
}
|
|
41
|
+
sum += B[dimention * dim2 + cy];
|
|
42
|
+
dots[cx + cy] = sum;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return dots;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function translate(A, delta) {
|
|
49
|
+
var [dim2, dim] = size(A);
|
|
50
|
+
var inc = 0;
|
|
51
|
+
for (var cx = dim * dim2, dx = cx + dim; cx < dx; cx++) {
|
|
52
|
+
A[cx] = (A[cx] || 0) + delta[inc++];
|
|
53
|
+
}
|
|
54
|
+
return A;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function 逆(A) {
|
|
58
|
+
var dim = Math.sqrt(A.length) | 0;
|
|
59
|
+
if (dim * dim !== A.length) throw notMatchLength;
|
|
60
|
+
var E = new Array(A.length).fill(0);
|
|
61
|
+
for (var cx = 0, dx = dim; cx < dx; cx++)E[cx * dim + cx] = 1;
|
|
62
|
+
var X = A.splice(0, A.length);
|
|
63
|
+
A.push.apply(A, E);
|
|
64
|
+
for (var cx = 0, dx = dim; cx < dx; cx++) {
|
|
65
|
+
var start = cx * dim + cx;
|
|
66
|
+
var max_ct, v = 0;
|
|
67
|
+
for (var ct = start, dt = X.length; ct < dt; ct += dim) {
|
|
68
|
+
var v0 = Math.abs(X[ct]);
|
|
69
|
+
if (v0 > v) {
|
|
70
|
+
max_ct = ct;
|
|
71
|
+
v = v0;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
ct = max_ct;
|
|
75
|
+
if (ct !== start) {
|
|
76
|
+
var delta = ct - start;
|
|
77
|
+
var ratio = (1 - X[start]) / X[ct];
|
|
78
|
+
for (var cy = cx * dim, dy = cy + dim; cy < dy; cy++) {
|
|
79
|
+
X[cy] += X[cy + delta] * ratio;
|
|
80
|
+
A[cy] += A[cy + delta] * ratio;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (X[start] !== 1) {
|
|
84
|
+
var ratio = 1 / X[start];
|
|
85
|
+
for (var cy = cx * dim, dy = cy + dim; cy < dy; cy++) {
|
|
86
|
+
X[cy] *= ratio;
|
|
87
|
+
A[cy] *= ratio;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
for (var ct = start + dim, dt = X.length; ct < dt; ct += dim) {
|
|
91
|
+
if (X[ct] === 0) continue;
|
|
92
|
+
var ratio = -X[ct];
|
|
93
|
+
var delta = start - ct;
|
|
94
|
+
for (var cy = ct - cx, dy = cy + dim; cy < dy; cy++) {
|
|
95
|
+
X[cy] += X[cy + delta] * ratio;
|
|
96
|
+
A[cy] += A[cy + delta] * ratio;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
for (var cx = dim - 1; cx > 0; cx--) {
|
|
101
|
+
var start = cx * dim + cx;
|
|
102
|
+
for (var ct = start - dim; ct >= 0; ct -= dim) {
|
|
103
|
+
if (X[ct] === 0) continue;
|
|
104
|
+
var ratio = -X[ct];
|
|
105
|
+
var delta = start - ct;
|
|
106
|
+
for (var cy = ct - cx, dy = cy + dim; cy < dy; cy++) {
|
|
107
|
+
X[cy] += X[cy + delta] * ratio;
|
|
108
|
+
A[cy] += A[cy + delta] * ratio;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return A;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
function multiply(A, B) {
|
|
116
|
+
if (A.length !== B.length) throw notMatchLength;
|
|
117
|
+
var dim = Math.sqrt(A.length) | 0;
|
|
118
|
+
if (dim * dim !== A.length) throw notMatchLength;
|
|
119
|
+
var X = A.slice(0);
|
|
120
|
+
for (var cx = 0, dx = A.length; cx < dx; cx += dim) {
|
|
121
|
+
for (var cy = 0, dy = dim; cy < dy; cy++) {
|
|
122
|
+
var sum = 0;
|
|
123
|
+
for (var ct = 0, dt = dim; ct < dt; ct++) {
|
|
124
|
+
sum += X[cx + ct] * B[ct * dim + cy];
|
|
125
|
+
}
|
|
126
|
+
A[cx + cy] = sum;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return A;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function resolve(A, s) {
|
|
133
|
+
var dim = s.length;
|
|
134
|
+
if (dim * dim !== A.length) throw notMatchLength;
|
|
135
|
+
var r = [];
|
|
136
|
+
for (var cx = 0, cy = 0, dx = dim; cx < dx; cx++) {
|
|
137
|
+
var sum = 0;
|
|
138
|
+
for (var dy = cy + dim; cy < dy; cy++) {
|
|
139
|
+
sum += A[dy] * s[cx];
|
|
140
|
+
}
|
|
141
|
+
r[cx] = sum;
|
|
142
|
+
}
|
|
143
|
+
return r;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function transpose(A) {
|
|
147
|
+
var [size] = size(A);
|
|
148
|
+
for (var cx = 0, dx = size; cx < dx; cx++) {
|
|
149
|
+
for (var cy = cx + 1, dy = dx; cy < dy; cy++) {
|
|
150
|
+
var i = cx * size + cy;
|
|
151
|
+
var j = cy * size + cx;
|
|
152
|
+
var tmp = A[i];
|
|
153
|
+
A[i] = A[j];
|
|
154
|
+
A[j] = tmp;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return A;
|
|
158
|
+
}
|
|
159
|
+
|
|
2
160
|
class Matrix extends Array {
|
|
161
|
+
static multiply = multiply;
|
|
162
|
+
static transform = transform;
|
|
163
|
+
static translate = translate;
|
|
164
|
+
static matrix2d = matrix2d;
|
|
165
|
+
static matrix3d = matrix3d;
|
|
166
|
+
static resolve = resolve;
|
|
167
|
+
static 逆 = 逆;
|
|
3
168
|
static create2d(theta = 0) {
|
|
4
|
-
return
|
|
169
|
+
return matrix2d(theta);
|
|
5
170
|
}
|
|
6
171
|
static create3d(factor = [0, 0, 0]) {
|
|
7
|
-
return
|
|
172
|
+
return matrix3d(factor);
|
|
8
173
|
}
|
|
9
174
|
size() {
|
|
10
175
|
return size(this);
|
|
@@ -18,41 +183,21 @@ class Matrix extends Array {
|
|
|
18
183
|
return this._invert = this.slice().inverse();
|
|
19
184
|
}
|
|
20
185
|
transpose() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
var m = new MathMatrix;
|
|
26
|
-
}
|
|
27
|
-
m.push.apply(m, this);
|
|
28
|
-
m.transpose_();
|
|
29
|
-
return m;
|
|
30
|
-
}
|
|
31
|
-
transpose_() {
|
|
32
|
-
var [size] = this.size();
|
|
33
|
-
for (var cx = 0, dx = size; cx < dx; cx++) {
|
|
34
|
-
for (var cy = cx + 1, dy = dx; cy < dy; cy++) {
|
|
35
|
-
var i = cx * size + cy;
|
|
36
|
-
var j = cy * size + cx;
|
|
37
|
-
var tmp = this[i];
|
|
38
|
-
this[i] = this[j];
|
|
39
|
-
this[j] = tmp;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return this;
|
|
186
|
+
this.dirty();
|
|
187
|
+
return transpose(this);
|
|
43
188
|
}
|
|
44
189
|
inverse() {
|
|
45
190
|
this.dirty();
|
|
46
|
-
return
|
|
191
|
+
return 逆(this);
|
|
47
192
|
}
|
|
48
193
|
rotate(factor, center) {
|
|
49
194
|
this.dirty();
|
|
50
195
|
if (center) this.translate(center.map(负));
|
|
51
196
|
if (factor.length) {
|
|
52
|
-
this.multiply(
|
|
197
|
+
this.multiply(matrix3d(factor));
|
|
53
198
|
}
|
|
54
199
|
else {
|
|
55
|
-
this.multiply(
|
|
200
|
+
this.multiply(matrix2d(factor));
|
|
56
201
|
}
|
|
57
202
|
if (center) this.translate(center);
|
|
58
203
|
return this;
|
|
@@ -61,7 +206,7 @@ class Matrix extends Array {
|
|
|
61
206
|
var v = vector;
|
|
62
207
|
if (!isFinite(v.length)) v = arguments;
|
|
63
208
|
this.dirty();
|
|
64
|
-
return
|
|
209
|
+
return translate(this, v);
|
|
65
210
|
}
|
|
66
211
|
scale(ratio, center) {
|
|
67
212
|
this.dirty();
|
|
@@ -73,298 +218,27 @@ class Matrix extends Array {
|
|
|
73
218
|
}
|
|
74
219
|
multiply(a) {
|
|
75
220
|
this.dirty();
|
|
76
|
-
return
|
|
221
|
+
return multiply(this, a);
|
|
77
222
|
}
|
|
78
223
|
transform(dots) {
|
|
79
|
-
if (dots instanceof Array) return
|
|
224
|
+
if (dots instanceof Array) return transform(this, dots);
|
|
80
225
|
if (arguments.length > 1) {
|
|
81
226
|
var a = Array.prototype.slice.apply(arguments, 0);
|
|
82
|
-
return
|
|
227
|
+
return transform(this, a);
|
|
83
228
|
}
|
|
84
229
|
return dots;
|
|
85
230
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return [this[0], this[1], this[3], this[4], this[6], this[7]];
|
|
231
|
+
resolve(s) {
|
|
232
|
+
var A = this.slice().inverse();
|
|
233
|
+
return resolve(A, s);
|
|
90
234
|
}
|
|
91
235
|
toDOMString() {
|
|
92
|
-
if (this.size()[1] === 2) return `matrix(${this
|
|
236
|
+
if (this.size()[1] === 2) return `matrix(${[this[0], this[1], this[3], this[4], this[6], this[7]]})`;
|
|
93
237
|
return `matrix(${this})`;
|
|
94
238
|
}
|
|
95
|
-
|
|
96
|
-
static transform(B, dots) {
|
|
97
|
-
var dimention = Math.sqrt(B.length - 1) | 0;
|
|
98
|
-
if (dots.length % dimention !== 0) throw notMatchLength;
|
|
99
|
-
if (dots === B) B = B.slice(0);
|
|
100
|
-
var ds = dots.slice(0);
|
|
101
|
-
var dim2 = B.length % dimention !== 0 ? dimention + 1 : dimention;
|
|
102
|
-
for (var cx = 0, dx = dots.length; cx < dx; cx += dimention) {
|
|
103
|
-
for (var cy = 0, dy = dimention; cy < dy; cy++) {
|
|
104
|
-
var sum = 0;
|
|
105
|
-
for (var ct = 0, dt = dimention; ct < dt; ct++) {
|
|
106
|
-
sum += ds[cx + ct] * B[ct * dim2 + cy];
|
|
107
|
-
}
|
|
108
|
-
sum += B[dimention * dim2 + cy];
|
|
109
|
-
dots[cx + cy] = sum;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return dots;
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
static translate(A, delta) {
|
|
117
|
-
var [dim2, dim] = size(A);
|
|
118
|
-
var inc = 0;
|
|
119
|
-
for (var cx = dim * dim2, dx = cx + dim; cx < dx; cx++) {
|
|
120
|
-
A[cx] = (A[cx] || 0) + delta[inc++];
|
|
121
|
-
}
|
|
122
|
-
return A;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
static multiply(A, B) {
|
|
126
|
-
if (A.length !== B.length) throw notMatchLength;
|
|
127
|
-
var dim = Math.sqrt(A.length) | 0;
|
|
128
|
-
if (dim * dim !== A.length) throw notMatchLength;
|
|
129
|
-
var X = A.slice(0);
|
|
130
|
-
for (var cx = 0, dx = A.length; cx < dx; cx += dim) {
|
|
131
|
-
for (var cy = 0, dy = dim; cy < dy; cy++) {
|
|
132
|
-
var sum = 0;
|
|
133
|
-
for (var ct = 0, dt = dim; ct < dt; ct++) {
|
|
134
|
-
sum += X[cx + ct] * B[ct * dim + cy];
|
|
135
|
-
}
|
|
136
|
-
A[cx + cy] = sum;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return A;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
static matrix2d(theta) {
|
|
144
|
-
var cosa = Math.cos(theta);
|
|
145
|
-
var sina = Math.sin(theta);
|
|
146
|
-
return new MathMatrix(
|
|
147
|
-
cosa, sina, 0,
|
|
148
|
-
-sina, cosa, 0,
|
|
149
|
-
0, 0, 1
|
|
150
|
-
);
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
static matrix3d(factor) {
|
|
154
|
-
var n = norm(factor.slice(0, 3));
|
|
155
|
-
var theta = factor.length === 4 ? factor[3] : n;
|
|
156
|
-
var vec = times(factor, 1 / n);
|
|
157
|
-
var cosa = Math.cos(theta);
|
|
158
|
-
var sina = Math.sin(theta);
|
|
159
|
-
var vera = 1 - cosa;
|
|
160
|
-
var [x_u, y_u, z_u] = !n ? [0, 0, 1] : vec;
|
|
161
|
-
return new MathMatrix(
|
|
162
|
-
cosa + x_u * x_u * vera, x_u * y_u * vera - z_u * sina, x_u * z_u * vera + y_u * sina, 0,
|
|
163
|
-
x_u * y_u * vera + z_u * sina, cosa + y_u * y_u * vera, y_u * z_u * vera - x_u * sina, 0,
|
|
164
|
-
x_u * z_u * vera - y_u * sina, y_u * z_u * vera + x_u * sina, cosa + z_u * z_u * vera, 0,
|
|
165
|
-
0, 0, 0, 1
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
static 逆 = function (A) {
|
|
170
|
-
var dim = Math.sqrt(A.length) | 0;
|
|
171
|
-
if (dim * dim !== A.length) throw notMatchLength;
|
|
172
|
-
var E = new Array(A.length).fill(0);
|
|
173
|
-
for (var cx = 0, dx = dim; cx < dx; cx++)E[cx * dim + cx] = 1;
|
|
174
|
-
var X = A.splice(0, A.length);
|
|
175
|
-
A.push.apply(A, E);
|
|
176
|
-
for (var cx = 0, dx = dim; cx < dx; cx++) {
|
|
177
|
-
var start = cx * dim + cx;
|
|
178
|
-
var max_ct, v = 0;
|
|
179
|
-
for (var ct = start, dt = X.length; ct < dt; ct += dim) {
|
|
180
|
-
var v0 = Math.abs(X[ct]);
|
|
181
|
-
if (v0 > v) {
|
|
182
|
-
max_ct = ct;
|
|
183
|
-
v = v0;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
ct = max_ct;
|
|
187
|
-
if (ct !== start) {
|
|
188
|
-
var delta = ct - start;
|
|
189
|
-
var ratio = (1 - X[start]) / X[ct];
|
|
190
|
-
for (var cy = cx * dim, dy = cy + dim; cy < dy; cy++) {
|
|
191
|
-
X[cy] += X[cy + delta] * ratio;
|
|
192
|
-
A[cy] += A[cy + delta] * ratio;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
if (X[start] !== 1) {
|
|
196
|
-
var ratio = 1 / X[start];
|
|
197
|
-
for (var cy = cx * dim, dy = cy + dim; cy < dy; cy++) {
|
|
198
|
-
X[cy] *= ratio;
|
|
199
|
-
A[cy] *= ratio;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
for (var ct = start + dim, dt = X.length; ct < dt; ct += dim) {
|
|
203
|
-
if (X[ct] === 0) continue;
|
|
204
|
-
var ratio = -X[ct];
|
|
205
|
-
var delta = start - ct;
|
|
206
|
-
for (var cy = ct - cx, dy = cy + dim; cy < dy; cy++) {
|
|
207
|
-
X[cy] += X[cy + delta] * ratio;
|
|
208
|
-
A[cy] += A[cy + delta] * ratio;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
for (var cx = dim - 1; cx > 0; cx--) {
|
|
213
|
-
var start = cx * dim + cx;
|
|
214
|
-
for (var ct = start - dim; ct >= 0; ct -= dim) {
|
|
215
|
-
if (X[ct] === 0) continue;
|
|
216
|
-
var ratio = -X[ct];
|
|
217
|
-
var delta = start - ct;
|
|
218
|
-
for (var cy = ct - cx, dy = cy + dim; cy < dy; cy++) {
|
|
219
|
-
X[cy] += X[cy + delta] * ratio;
|
|
220
|
-
A[cy] += A[cy + delta] * ratio;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return A;
|
|
225
|
-
};
|
|
226
|
-
|
|
227
239
|
}
|
|
228
|
-
class MatrixTransposed extends Matrix {
|
|
229
|
-
getTransform() {
|
|
230
|
-
return [this[0], this[3], this[1], this[4], this[2], this[5]];
|
|
231
|
-
}
|
|
232
|
-
toDOMString() {
|
|
233
|
-
if (this.size()[1] === 2) return `matrix(${this.getTransform()})`;
|
|
234
|
-
return `matrix(${this.transpose()})`;
|
|
235
|
-
}
|
|
236
|
-
static transform(B, dots) {
|
|
237
|
-
var dimention = Math.sqrt(B.length - 1) | 0;
|
|
238
|
-
if (dots.length % dimention !== 0) throw notMatchLength;
|
|
239
|
-
if (dots === B) B = B.slice(0);
|
|
240
|
-
var ds = dots.slice(0);
|
|
241
|
-
var dim2 = B.length % dimention !== 0 ? dimention + 1 : dimention;
|
|
242
|
-
for (var cx = 0, dx = dots.length; cx < dx; cx += dimention) {
|
|
243
|
-
for (var cy = 0, dy = dimention; cy < dy; cy++) {
|
|
244
|
-
var sum = 0;
|
|
245
|
-
var start = dim2 * cy;
|
|
246
|
-
for (var ct = 0, dt = dimention; ct < dt; ct++) {
|
|
247
|
-
sum += ds[cx + ct] * B[start + ct];
|
|
248
|
-
}
|
|
249
|
-
sum += B[start + dimention];
|
|
250
|
-
dots[cx + cy] = sum;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return dots;
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
static translate(A, delta) {
|
|
257
|
-
var [dim2, dim] = size(A);
|
|
258
|
-
var inc = 0;
|
|
259
|
-
for (var cx = dim, dx = dim * dim2; cx < dx; cx += dim2) {
|
|
260
|
-
A[cx] = (A[cx] || 0) + delta[inc++];
|
|
261
|
-
}
|
|
262
|
-
return A;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
static multiply(A, B) {
|
|
266
|
-
if (A.length !== B.length) throw notMatchLength;
|
|
267
|
-
var dim = Math.sqrt(A.length) | 0;
|
|
268
|
-
if (dim * dim !== A.length) throw notMatchLength;
|
|
269
|
-
var X = A.slice(0);
|
|
270
|
-
for (var cx = 0, dx = A.length; cx < dx; cx += dim) {
|
|
271
|
-
for (var cy = 0, dy = dim; cy < dy; cy++) {
|
|
272
|
-
var sum = 0;
|
|
273
|
-
for (var ct = 0, dt = dim; ct < dt; ct++) {
|
|
274
|
-
sum += B[cx + ct] * X[ct * dim + cy];
|
|
275
|
-
}
|
|
276
|
-
A[cx + cy] = sum;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
return A;
|
|
280
|
-
}
|
|
281
240
|
|
|
282
|
-
|
|
283
|
-
var cosa = Math.cos(theta);
|
|
284
|
-
var sina = Math.sin(theta);
|
|
285
|
-
return new MatrixTransposed(
|
|
286
|
-
cosa, -sina, 0,
|
|
287
|
-
sina, cosa, 0,
|
|
288
|
-
0, 0, 1
|
|
289
|
-
);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
static matrix3d(factor) {
|
|
293
|
-
var n = norm(factor.slice(0, 3));
|
|
294
|
-
var theta = factor.length === 4 ? factor[3] : n;
|
|
295
|
-
var vec = times(factor, 1 / n);
|
|
296
|
-
var cosa = Math.cos(theta);
|
|
297
|
-
var sina = Math.sin(theta);
|
|
298
|
-
var vera = 1 - cosa;
|
|
299
|
-
var [x_u, y_u, z_u] = !n ? [0, 0, 1] : vec;
|
|
300
|
-
return new MatrixTransposed(
|
|
301
|
-
cosa + x_u * x_u * vera, x_u * y_u * vera + z_u * sina, x_u * z_u * vera - y_u * sina, 0,
|
|
302
|
-
x_u * y_u * vera - z_u * sina, cosa + y_u * y_u * vera, y_u * z_u * vera + x_u * sina, 0,
|
|
303
|
-
x_u * z_u * vera + y_u * sina, y_u * z_u * vera - x_u * sina, cosa + z_u * z_u * vera, 0,
|
|
304
|
-
0, 0, 0, 1
|
|
305
|
-
);
|
|
306
|
-
}
|
|
307
|
-
static 逆 = function (A) {
|
|
308
|
-
var dim = Math.sqrt(A.length) | 0;
|
|
309
|
-
if (dim * dim !== A.length) throw notMatchLength;
|
|
310
|
-
var E = new Array(A.length).fill(0);
|
|
311
|
-
for (var cx = 0, dx = dim; cx < dx; cx++)E[cx * dim + cx] = 1;
|
|
312
|
-
var X = A.splice(0, A.length);
|
|
313
|
-
A.push.apply(A, E);
|
|
314
|
-
for (var cx = 0, dx = dim; cx < dx; cx++) {
|
|
315
|
-
var start = cx * dim + cx;
|
|
316
|
-
var max_ct, v = 0;
|
|
317
|
-
for (var ct = start, dt = cx * dim + dim; ct < dt; ct++) {
|
|
318
|
-
var v0 = Math.abs(X[ct]);
|
|
319
|
-
if (v0 > v) {
|
|
320
|
-
max_ct = ct;
|
|
321
|
-
v = v0;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
ct = max_ct;
|
|
325
|
-
if (ct !== start) {
|
|
326
|
-
var delta = ct - start;
|
|
327
|
-
var ratio = (1 - X[start]) / X[ct];
|
|
328
|
-
for (var cy = cx, dy = X.length; cy < dy; cy += dim) {
|
|
329
|
-
X[cy] += X[cy + delta] * ratio;
|
|
330
|
-
A[cy] += A[cy + delta] * ratio;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
if (X[start] !== 1) {
|
|
334
|
-
var ratio = 1 / X[start];
|
|
335
|
-
for (var cy = cx, dy = X.length; cy < dy; cy += dim) {
|
|
336
|
-
X[cy] *= ratio;
|
|
337
|
-
A[cy] *= ratio;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
for (var ct = start + 1, dt = start + dim - cx; ct < dt; ct++) {
|
|
341
|
-
if (X[ct] === 0) continue;
|
|
342
|
-
var ratio = -X[ct];
|
|
343
|
-
var delta = start - ct;
|
|
344
|
-
for (var cy = cx + ct - start, dy = X.length; cy < dy; cy += dim) {
|
|
345
|
-
X[cy] += X[cy + delta] * ratio;
|
|
346
|
-
A[cy] += A[cy + delta] * ratio;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
for (var cx = dim - 1; cx >= 0; cx--) {
|
|
351
|
-
var start = cx * dim + cx;
|
|
352
|
-
for (var ct = start - 1, dt = start - cx; ct >= dt; ct--) {
|
|
353
|
-
if (X[ct] === 0) continue;
|
|
354
|
-
var ratio = -X[ct];
|
|
355
|
-
var delta = start - ct;
|
|
356
|
-
for (var cy = cx + ct - start, dy = X.length; cy < dy; cy += dim) {
|
|
357
|
-
X[cy] += X[cy + delta] * ratio;
|
|
358
|
-
A[cy] += A[cy + delta] * ratio;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
return A;
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
}
|
|
366
|
-
Matrix.MathMatrix = MathMatrix;
|
|
367
|
-
Matrix.MatrixTransposed = MatrixTransposed;
|
|
241
|
+
Matrix.MathMatrix = Matrix;
|
|
368
242
|
|
|
369
243
|
|
|
370
244
|
function inner(vec1, vec2) {
|
package/coms/basic/cross_.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var { File, location } = this;
|
|
1
|
+
var { File, location, FormData, navigator } = this;
|
|
2
2
|
function hasFile(o) {
|
|
3
3
|
if (!File) return false;
|
|
4
4
|
for (var k in o) {
|
|
@@ -152,7 +152,7 @@ function cross_(jsonp, digest = noop, method, url, headers) {
|
|
|
152
152
|
};
|
|
153
153
|
var getErrorSystem = function () {
|
|
154
154
|
if (location && !/^(\w+\:|\/\/)/.test(url) && /^file\:/i.test(location.href) || /^file\:/i.test(url)) return i18n`文件系统`;
|
|
155
|
-
if (navigator
|
|
155
|
+
if (navigator?.onLine) return i18n`网络`;
|
|
156
156
|
return i18n`服务器`;
|
|
157
157
|
};
|
|
158
158
|
|
package/coms/basic/parseYML.js
CHANGED
|
@@ -77,4 +77,29 @@ c: d
|
|
|
77
77
|
test(`"@"`, "@")
|
|
78
78
|
test(`"\\"@\\""`, "\"@\"")
|
|
79
79
|
test(`@""@""`, "@\"@\"")
|
|
80
|
-
test(`""@""`, "\"@\"")
|
|
80
|
+
test(`""@""`, "\"@\"")
|
|
81
|
+
test(` qd:
|
|
82
|
+
- name: 京东超市
|
|
83
|
+
price: 1399.00
|
|
84
|
+
link: https://item.jd.com/100098881049.html
|
|
85
|
+
- name: 拼多多
|
|
86
|
+
price: 1298.99
|
|
87
|
+
link: "#小程序://拼多多/L2JQT2d8vpO0HWC"
|
|
88
|
+
- name: 阿里1688
|
|
89
|
+
price: 1203.25
|
|
90
|
+
link: https://detail.1688.com/offer/819427383878.html
|
|
91
|
+
`, {
|
|
92
|
+
qd: [
|
|
93
|
+
{
|
|
94
|
+
name: '京东超市',
|
|
95
|
+
price: 1399,
|
|
96
|
+
link: 'https://item.jd.com/100098881049.html'
|
|
97
|
+
},
|
|
98
|
+
{ name: '拼多多', price: 1298.99, link: '#小程序://拼多多/L2JQT2d8vpO0HWC' },
|
|
99
|
+
{
|
|
100
|
+
name: '阿里1688',
|
|
101
|
+
price: 1203.25,
|
|
102
|
+
link: 'https://detail.1688.com/offer/819427383878.html'
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
})
|
|
@@ -9,11 +9,13 @@ class AsyncGenerator {
|
|
|
9
9
|
};
|
|
10
10
|
throw(e) {
|
|
11
11
|
delete this.exec;
|
|
12
|
+
delete this.promise;
|
|
12
13
|
this.state = "closed";
|
|
13
14
|
this.reject(e);
|
|
14
15
|
}
|
|
15
16
|
return(v) {
|
|
16
17
|
delete this.exec;
|
|
18
|
+
delete this.promise;
|
|
17
19
|
this.state = "closed";
|
|
18
20
|
this.value = v;
|
|
19
21
|
this.resolve(v);
|
|
@@ -36,8 +38,10 @@ class AsyncGenerator {
|
|
|
36
38
|
return this.promise;
|
|
37
39
|
}
|
|
38
40
|
else if (this.promise) {
|
|
41
|
+
var promise = this.promise;
|
|
42
|
+
delete this.promise;
|
|
39
43
|
var next = () => this.next(a);
|
|
40
|
-
return
|
|
44
|
+
return promise.then(next, next);
|
|
41
45
|
}
|
|
42
46
|
return Promise.resolve({ value: this.value, done: true });
|
|
43
47
|
}
|
|
@@ -137,7 +137,6 @@ var setStrapExpress = function (mark_type, mark_text, prop, o, default_type) {
|
|
|
137
137
|
if (pp && pp.type === STAMP && pp.text === "*") pp = pp.prev;
|
|
138
138
|
isfunc = pp && pp.type === STRAP && pp.text === 'function';
|
|
139
139
|
if (isfunc) break;
|
|
140
|
-
|
|
141
140
|
q = q.queue;
|
|
142
141
|
}
|
|
143
142
|
if (isfunc) {
|
|
@@ -211,6 +210,16 @@ var fixType = function (o) {
|
|
|
211
210
|
type = EXPRESS;
|
|
212
211
|
}
|
|
213
212
|
}
|
|
213
|
+
else if (m === 'of') {
|
|
214
|
+
if (!last) {
|
|
215
|
+
type = EXPRESS;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
var qp = queue.prev;
|
|
219
|
+
if (qp?.type === STRAP && qp.text === 'await') qp = qp.prev;
|
|
220
|
+
if (qp?.type === STRAP && qp.text === 'for') type = STRAP;
|
|
221
|
+
else type = EXPRESS;
|
|
222
|
+
}
|
|
214
223
|
break;
|
|
215
224
|
}
|
|
216
225
|
if (type === PROPERTY) o.isprop = true;
|
|
@@ -259,11 +268,10 @@ var setObject = function (o) {
|
|
|
259
268
|
continue;
|
|
260
269
|
}
|
|
261
270
|
m.isprop = true;
|
|
262
|
-
if (m.type === EXPRESS || m.type ===
|
|
271
|
+
if (m.type === EXPRESS || m.type === STRAP) {
|
|
263
272
|
if (!/\./.test(m.text)) m.type = PROPERTY;
|
|
264
273
|
}
|
|
265
274
|
if (m.prev && m.prev.type === PROPERTY) {
|
|
266
|
-
|
|
267
275
|
m.prev.type = STRAP;
|
|
268
276
|
}
|
|
269
277
|
}
|
|
@@ -378,7 +386,11 @@ Javascript.prototype.setType = function (o) {
|
|
|
378
386
|
}
|
|
379
387
|
if (o.type === STRAP) switch (o.text) {
|
|
380
388
|
case "yield": setYieldExpress(o, this.defaultType); break;
|
|
381
|
-
case "await":
|
|
389
|
+
case "await":
|
|
390
|
+
var p = o.prev;
|
|
391
|
+
if (p?.type === STRAP && p.text === 'for') break;
|
|
392
|
+
setAwaitExpress(o, this.defaultType);
|
|
393
|
+
break;
|
|
382
394
|
}
|
|
383
395
|
if (o.type === EXPRESS && last?.type === EXPRESS && !last.isend && /^(async|await|yield)$/.test(last.text)) {
|
|
384
396
|
last.type = STRAP;
|
package/coms/compile/Program.js
CHANGED
|
@@ -852,6 +852,10 @@ class Program {
|
|
|
852
852
|
else queue.inExpress = scope.isObject = !/^(;|\+\+|\-\-|=>)$/.test(last.text);
|
|
853
853
|
}
|
|
854
854
|
else if (last.type === EXPRESS) a: {
|
|
855
|
+
if (last.text === '...') {
|
|
856
|
+
scope.isObject = true;
|
|
857
|
+
break a;
|
|
858
|
+
}
|
|
855
859
|
var li = queue.length - 1;
|
|
856
860
|
var lp = queue[li];
|
|
857
861
|
while (lp !== last) {
|