efront 4.35.7 → 4.36.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/#/345/233/275/351/231/205/345/214/226.yml +3 -0
- package/coms/basic/ASN1.js +1 -1
- package/coms/basic/JSAM.js +2 -2
- package/coms/basic/Matrix.js +1 -1
- package/coms/basic/decodeLZW.js +35 -22
- package/coms/basic/math.js +110 -32
- package/coms/basic/math.md +118 -40
- package/coms/basic/math_test.xht +10 -0
- package/coms/basic/refilm_decode.js +20 -18
- package/coms/basic/refilm_parse.js +6 -7
- package/coms/basic/strings.js +43 -6
- package/coms/basic_/JSON.js +5 -1
- package/coms/compile/Html.js +21 -1
- package/coms/compile/Program.js +9 -3
- package/coms/compile/autoeval.js +8 -2
- package/coms/compile/autoeval_test.js +10 -8
- package/coms/compile/common.js +37 -2
- package/coms/compile/common_test.js +48 -0
- package/coms/compile/namekill.js +13 -0
- package/coms/compile/powermap.js +1 -1
- package/coms/compile/scanner2.js +8 -2
- package/coms/compile/wraphtml.js +1 -1
- package/coms/compile//347/256/227/345/274/217.js +82 -26
- package/coms/compile//347/256/227/345/274/217_test.js +6 -1
- package/coms/compile//347/264/240/351/246/250.js +1 -1
- package/coms/frame/chat.js +2 -1
- package/coms/zimoli/arriswise.js +7 -3
- package/coms/zimoli/bggrid-func.less +2 -2
- package/coms/zimoli/drag.js +11 -6
- package/coms/zimoli/list.js +1 -2
- package/coms/zimoli/moveupon.js +26 -1
- package/coms/zimoli/picture.less +1 -18
- 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/ASN1.js
CHANGED
|
@@ -4,7 +4,7 @@ var ASN1 = function (tag) { // tag=tagClass|type|composed_flag
|
|
|
4
4
|
for (var cx = 1, dx = arguments.length; cx < dx; cx++) {
|
|
5
5
|
var bytes = arguments[cx];
|
|
6
6
|
if (bytes.constructor !== Array) {
|
|
7
|
-
bytes = Array.apply(null, bytes);
|
|
7
|
+
bytes = bytes.length !== 1 ? Array.apply(null, bytes) : [bytes[0]];
|
|
8
8
|
}
|
|
9
9
|
bytesarr.push(bytes);
|
|
10
10
|
length += bytes.length;
|
package/coms/basic/JSAM.js
CHANGED
|
@@ -104,7 +104,7 @@ function stringify(memery, preload, hasDulp = true) {
|
|
|
104
104
|
noDulp = preload === false || hasDulp === false;
|
|
105
105
|
if (isArrayLike(hasDulp)) preload = hasDulp;
|
|
106
106
|
if (isArrayLike(preload)) {
|
|
107
|
-
preload = Array.apply(null, preload);
|
|
107
|
+
preload = preload.length !== 1 ? Array.apply(null, preload) : [preload[0]];
|
|
108
108
|
var i = preload.indexOf(memery) + 1;
|
|
109
109
|
if (i > 0) return i + ',';
|
|
110
110
|
preload.unshift(memery);
|
|
@@ -244,7 +244,7 @@ function scanblock(string, index, preload, obj) {
|
|
|
244
244
|
return reg.lastIndex;
|
|
245
245
|
}
|
|
246
246
|
function parse(string, preload) {
|
|
247
|
-
if (isArrayLike(preload)) preload = Array.apply(null, preload);
|
|
247
|
+
if (isArrayLike(preload)) preload = preload.length !== 1 ? Array.apply(null, preload) : [preload[0]];
|
|
248
248
|
else preload = [];
|
|
249
249
|
isjsam = false;
|
|
250
250
|
preload.unshift(void 0);
|
package/coms/basic/Matrix.js
CHANGED
package/coms/basic/decodeLZW.js
CHANGED
|
@@ -2,10 +2,12 @@ var _dict = [];
|
|
|
2
2
|
var _prefix = [];
|
|
3
3
|
var _buff = [];
|
|
4
4
|
var _bitDeep = 9;
|
|
5
|
+
var _bitInit = 9;
|
|
6
|
+
var _dictSize = 258;
|
|
5
7
|
var _half = 0;
|
|
6
8
|
var _addLength = 0;
|
|
7
9
|
function _clear() {
|
|
8
|
-
_bitDeep =
|
|
10
|
+
_bitDeep = _bitInit;
|
|
9
11
|
_dict = [];
|
|
10
12
|
}
|
|
11
13
|
|
|
@@ -57,9 +59,9 @@ function _readFrom1(buff, cx) {
|
|
|
57
59
|
function _addDict(d) {
|
|
58
60
|
if (d.length > 1) {
|
|
59
61
|
var dict = _dict;
|
|
60
|
-
d.index = dict.length +
|
|
62
|
+
d.index = dict.length + _dictSize;
|
|
61
63
|
dict.push(d);
|
|
62
|
-
if (1 << _bitDeep <= dict.length +
|
|
64
|
+
if (1 << _bitDeep <= dict.length + _dictSize + _addLength) {
|
|
63
65
|
if (!_addLength && _bitDeep >= 12) return;
|
|
64
66
|
_bitDeep++;
|
|
65
67
|
}
|
|
@@ -69,12 +71,12 @@ function _writeTo(dist, b) {
|
|
|
69
71
|
var prefix = _prefix;
|
|
70
72
|
var dict = _dict;
|
|
71
73
|
var end = false;
|
|
72
|
-
if (b <
|
|
74
|
+
if (b < _dictSize - 2) {
|
|
73
75
|
prefix.push(b);
|
|
74
76
|
_addDict(prefix);
|
|
75
77
|
prefix = [b];
|
|
76
|
-
} else if (b >=
|
|
77
|
-
var d = dict[b -
|
|
78
|
+
} else if (b >= _dictSize) {
|
|
79
|
+
var d = dict[b - _dictSize];
|
|
78
80
|
if (!d) {
|
|
79
81
|
prefix.push(prefix[0]);
|
|
80
82
|
_addDict(prefix);
|
|
@@ -84,10 +86,10 @@ function _writeTo(dist, b) {
|
|
|
84
86
|
_addDict(prefix);
|
|
85
87
|
prefix = d.slice(0);
|
|
86
88
|
}
|
|
87
|
-
} else if (b ===
|
|
89
|
+
} else if (b === _dictSize - 2) {
|
|
88
90
|
_clear();
|
|
89
91
|
prefix = [];
|
|
90
|
-
} else if (b ===
|
|
92
|
+
} else if (b === _dictSize - 1) {
|
|
91
93
|
end = true;
|
|
92
94
|
prefix = [];
|
|
93
95
|
}
|
|
@@ -100,16 +102,18 @@ function _pass(buff) {
|
|
|
100
102
|
var dict = _dict;
|
|
101
103
|
var half = _half;
|
|
102
104
|
var end = false;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
var dist = [];
|
|
106
|
+
var cx = 0;
|
|
107
|
+
if (_buff.length) {
|
|
108
|
+
var bl = _buff.length;
|
|
109
|
+
do {
|
|
110
|
+
var [b, cx] = _readFrom(_buff.concat(buff[0], buff[1]), cx);
|
|
111
|
+
if (_writeTo(dist, b)) {
|
|
112
|
+
end = true;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
} while (cx < bl);
|
|
116
|
+
cx = cx - bl;
|
|
113
117
|
}
|
|
114
118
|
if (!end) while (cx + 1 < buff.length) {
|
|
115
119
|
if (cx + 2 === buff.length) {
|
|
@@ -119,6 +123,8 @@ function _pass(buff) {
|
|
|
119
123
|
if (_writeTo(dist, b)) break;
|
|
120
124
|
}
|
|
121
125
|
_buff = buff.slice(cx);
|
|
126
|
+
if (_buff.length === 1) _buff = [_buff[0]];
|
|
127
|
+
else _buff = Array.apply(null, _buff);
|
|
122
128
|
return dist;
|
|
123
129
|
}
|
|
124
130
|
function _end() {
|
|
@@ -127,15 +133,22 @@ function _end() {
|
|
|
127
133
|
_buff = [];
|
|
128
134
|
_half = 0;
|
|
129
135
|
_bitDeep = 9;
|
|
136
|
+
_bitInit = 9;
|
|
130
137
|
return [];
|
|
131
138
|
}
|
|
132
139
|
|
|
133
|
-
function decodeLZW(buff, isBigEndStart) {
|
|
134
|
-
|
|
135
|
-
else _readFrom = _readFrom2, _addLength = 0;
|
|
140
|
+
function decodeLZW(buff, isBigEndStart, lzw_size) {
|
|
141
|
+
open(isBigEndStart, lzw_size);
|
|
136
142
|
var decoded = _pass(buff);
|
|
137
143
|
_end();
|
|
138
144
|
return decoded;
|
|
139
145
|
}
|
|
140
|
-
|
|
146
|
+
var open = decodeLZW.open = function (isBigEndStart, lzw_size = 8) {
|
|
147
|
+
if (isBigEndStart !== false) _readFrom = _readFrom1, _addLength = 1;
|
|
148
|
+
else _readFrom = _readFrom2, _addLength = 0;
|
|
149
|
+
_dictSize = (1 << lzw_size) + 2;
|
|
150
|
+
_bitDeep = _bitInit = lzw_size + 1;
|
|
151
|
+
};
|
|
152
|
+
decodeLZW.pass = _pass;
|
|
153
|
+
decodeLZW.close = _end;
|
|
141
154
|
module.exports = decodeLZW;
|
package/coms/basic/math.js
CHANGED
|
@@ -8,7 +8,7 @@ var mi = s => `<mi>${s}</mi>`;
|
|
|
8
8
|
var mn = s => `<mn>${s}</mn>`;
|
|
9
9
|
var mi2 = (s, a, n) => {
|
|
10
10
|
s = n ? `<msup><mi>${s}</mi>${n}</msup>` : `<mi>${s}</mi>`;
|
|
11
|
-
return s + `<ms> </ms>` + a
|
|
11
|
+
return s + `<ms> </ms>` + a + `<ms> </ms>`;
|
|
12
12
|
}
|
|
13
13
|
var mrow = (a, quote, deep) => {
|
|
14
14
|
if (deep === 2) var tag = 'mtd';
|
|
@@ -19,7 +19,9 @@ var mrow = (a, quote, deep) => {
|
|
|
19
19
|
return a;
|
|
20
20
|
}
|
|
21
21
|
var series =/*级数*/(通项, neq, to) =>
|
|
22
|
-
`<munderover><mo>∑</mo>${neq}${to}</munderover>${通项}`;
|
|
22
|
+
`<munderover><mo movablelimits=false>∑</mo>${neq}${to}</munderover>${通项}`;
|
|
23
|
+
var Series =/*级数*/(通项, neq, to) =>
|
|
24
|
+
`<math display="block"><munderover><mo>∑</mo>${neq}${to}</munderover>${通项}</math>`;
|
|
23
25
|
var msub = (a, n) => `<msub>${a}${n}</msub>`;
|
|
24
26
|
var qt = (t, a, args) => {
|
|
25
27
|
var b = args.shift();
|
|
@@ -34,6 +36,9 @@ var qt = (t, a, args) => {
|
|
|
34
36
|
|
|
35
37
|
var 三角函数 = {
|
|
36
38
|
"sin"(a, n) {
|
|
39
|
+
if (!a && n instanceof Array) {
|
|
40
|
+
[a, n] = n;
|
|
41
|
+
}
|
|
37
42
|
return mi2("sin", a, n);
|
|
38
43
|
},
|
|
39
44
|
"cos"(a, n) {
|
|
@@ -82,7 +87,7 @@ var toRoman = function (n) {
|
|
|
82
87
|
d = ["", "M", "MM", "MMM"][d];
|
|
83
88
|
return d + c + b + a;
|
|
84
89
|
};
|
|
85
|
-
var circles = "
|
|
90
|
+
var circles = "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿";
|
|
86
91
|
|
|
87
92
|
var tabs = {
|
|
88
93
|
roman(...args) {
|
|
@@ -94,12 +99,22 @@ var tabs = {
|
|
|
94
99
|
circle(...args) {
|
|
95
100
|
return args.map(n => circles.charAt(n - 1)).map(a => `<mn>${a}</mn>`).join('');
|
|
96
101
|
}
|
|
102
|
+
};
|
|
103
|
+
tabs["@"] = tabs.circle;
|
|
104
|
+
tabs["$"] = tabs.roman;
|
|
105
|
+
var mtable = function (args, prefix, postfix) {
|
|
106
|
+
if (prefix) prefix = `<mo>${prefix}</mo>`;
|
|
107
|
+
if (postfix) postfix = `<mo>${postfix}</mo>`;
|
|
108
|
+
if (args.length === 1) return [prefix, args[0], postfix].join('');
|
|
109
|
+
return `${prefix}<mtable><mtr>${args.join("</mtr><mtr>")}</mtr></mtable>${postfix}`;
|
|
97
110
|
}
|
|
98
|
-
|
|
99
111
|
var funcmap = {
|
|
100
112
|
"+"(...args) {
|
|
101
113
|
return mo3("+", args);
|
|
102
114
|
},
|
|
115
|
+
"+."(a, ...args) {
|
|
116
|
+
return a + args.join('<mo>+</mo>');
|
|
117
|
+
},
|
|
103
118
|
"-"(...args) {
|
|
104
119
|
return mo3("–", args);
|
|
105
120
|
},
|
|
@@ -134,8 +149,17 @@ var funcmap = {
|
|
|
134
149
|
Mul(...args) {
|
|
135
150
|
return mo3("·", args);
|
|
136
151
|
},
|
|
137
|
-
|
|
138
|
-
|
|
152
|
+
conj(A) {
|
|
153
|
+
var m = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'math');
|
|
154
|
+
m.innerHTML = A;
|
|
155
|
+
css(m, 'opacition:0;position:absolute:left-10px;top:-10px;pointer-events:none;z-index:-10');
|
|
156
|
+
document.documentElement.appendChild(m);
|
|
157
|
+
var sp = Array(2 + (m.clientWidth / 6 | 0)).join("\u23bc");
|
|
158
|
+
remove(m);
|
|
159
|
+
return `<mover>${A}<mo stretchy=true symmetric=true fence=true accent=true>${sp}</mo></mover>`
|
|
160
|
+
},
|
|
161
|
+
abs(...args) {
|
|
162
|
+
return mtable(args, "|", "|");
|
|
139
163
|
},
|
|
140
164
|
log(x, n) {
|
|
141
165
|
return `<msub><mo>log</mo>${n}</msub>${x}`
|
|
@@ -159,9 +183,16 @@ var funcmap = {
|
|
|
159
183
|
return `<munder><ms>limit</ms><mrow>${x}<mo>→</mo>${n}</mrow></munder>${a}`
|
|
160
184
|
},
|
|
161
185
|
sigma: series,
|
|
186
|
+
Sigma: Series,
|
|
187
|
+
Series,
|
|
162
188
|
series,
|
|
163
|
-
|
|
164
|
-
return
|
|
189
|
+
"{"(...args) {
|
|
190
|
+
return mtable(args, '{', '');
|
|
191
|
+
// return `<mo>{</mo><mtable columnalign="left"><mtr><mtd>${args.join("</mtd></mtr><mtr><mtd>")}</mtd></mtr></mtable>`
|
|
192
|
+
},
|
|
193
|
+
"["(...args) {
|
|
194
|
+
return mtable(args, '[', ']');
|
|
195
|
+
// return `<mo>[</mo><mtable><mtr>${args.join("</mtr><mtr>")}</mtr></mtable><mo>]</mo>`;
|
|
165
196
|
},
|
|
166
197
|
'!='(...args) {
|
|
167
198
|
return mo3("≉", args);
|
|
@@ -172,19 +203,23 @@ var funcmap = {
|
|
|
172
203
|
"~="(...args) {
|
|
173
204
|
return mo3("≈", args);
|
|
174
205
|
},
|
|
175
|
-
|
|
206
|
+
integral(a, b = '', c = '') {
|
|
176
207
|
return `<msubsup><mo>∫</mo>${b}${c}</msubsup>${a}`;
|
|
177
208
|
},
|
|
209
|
+
Integral(a, b = '', c = '') {
|
|
210
|
+
return `<math display="block"><msubsup><mo>∫</mo>${b}${c}</msubsup>${a}</math>`;
|
|
211
|
+
},
|
|
178
212
|
"'"(...args) {
|
|
179
213
|
var b = args.pop();
|
|
180
|
-
if (!args.length) return `<msup>${b}<mo>
|
|
214
|
+
if (!args.length) return `<msup>${b}<mo>T</mo></msup>`;
|
|
181
215
|
// 导数
|
|
182
|
-
return args.map((a) => `${a}<mo
|
|
216
|
+
return args.map((a) => `${a}<mo>'</mo>`).join('') + `<mi>(</mi>${b}<mi>)</mi>`;
|
|
183
217
|
},
|
|
184
218
|
"!"(...args) {
|
|
185
219
|
return args.map(a => a + `<mo>!</mo>`).join('');
|
|
186
220
|
}
|
|
187
221
|
};
|
|
222
|
+
funcmap["^|"] = funcmap.abs;
|
|
188
223
|
var unary = (u, a) => `<ms>${u}</ms>${a}`;
|
|
189
224
|
var unarymap = {
|
|
190
225
|
"+"(a) {
|
|
@@ -250,6 +285,7 @@ var puncmap = {
|
|
|
250
285
|
// ">=": "≥",
|
|
251
286
|
// "<=": '≤',
|
|
252
287
|
};
|
|
288
|
+
puncmap["^*"] = puncmap["**"];
|
|
253
289
|
var pmap = {};
|
|
254
290
|
|
|
255
291
|
[
|
|
@@ -298,23 +334,30 @@ var br = function () {
|
|
|
298
334
|
lineBroken = true;
|
|
299
335
|
return '</mtd></mtr><mtr><mtd>';
|
|
300
336
|
};
|
|
337
|
+
var Number_isFinite = Number.isFinite;
|
|
338
|
+
var isPostFinite = function (n) {
|
|
339
|
+
return /[^\d]$/.test(n[n.length - 1]);
|
|
340
|
+
}
|
|
341
|
+
var isFinite = function (n, post) {
|
|
342
|
+
if (Number_isFinite(n)) return true;
|
|
343
|
+
if (!n) return false;
|
|
344
|
+
if (n["/"]) return true;
|
|
345
|
+
if (n["+."]) return true;
|
|
346
|
+
if (n["."]) return !post || isPostFinite(n);
|
|
347
|
+
if (n[".."]) return !post || isPostFinite(n);
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
301
350
|
function toString(obj, p, deep) {
|
|
302
351
|
if (obj instanceof Array) {
|
|
303
|
-
if (deep == 1 && obj.length === 2 && obj[1].tab) {
|
|
304
|
-
return toString(obj[0], 0, deep) + "</mtd><mtd>" + obj.slice(1, obj.length).map(a => toString(a, 0, 0)).join("</mtd><mtd>");
|
|
305
|
-
}
|
|
306
352
|
deep++;
|
|
307
353
|
var args = obj.map(a => toString(a, deep > 1 ? 0 : p, deep));
|
|
308
354
|
deep--;
|
|
309
355
|
if (args instanceof Array) {
|
|
310
|
-
if (deep
|
|
356
|
+
if (deep >= 2) {
|
|
311
357
|
if (args.length > 1) args = `<mrow><mo>(</mo>${args.join('<mo>,</mo>')}<mo>)</mo></mrow>`;
|
|
312
358
|
}
|
|
313
|
-
else if (deep === 2) {
|
|
314
|
-
args = `<mtd>${args.join('</mtd><mtd>')}</mtd>`;
|
|
315
|
-
}
|
|
316
359
|
else if (deep === 1) {
|
|
317
|
-
args =
|
|
360
|
+
args = args.join('');
|
|
318
361
|
}
|
|
319
362
|
}
|
|
320
363
|
return args;
|
|
@@ -324,8 +367,12 @@ function toString(obj, p, deep) {
|
|
|
324
367
|
for (var k in obj) break;
|
|
325
368
|
if (!k) return '';
|
|
326
369
|
var origin = obj[k];
|
|
327
|
-
if (k === '..') {
|
|
328
|
-
|
|
370
|
+
if (k === '.' || k === '..') {
|
|
371
|
+
if (k === '.') {
|
|
372
|
+
var [prefix, e, s] = origin;
|
|
373
|
+
if (/[^\d]$/.test(e)) s = e, e = '';
|
|
374
|
+
}
|
|
375
|
+
else var [prefix, rep, dots, e, s] = origin;
|
|
329
376
|
prefix = String(prefix).replace(/^\-/, '–');
|
|
330
377
|
if (typeof rep === 'number') rep = String(rep);
|
|
331
378
|
if (rep && !/\./.test(prefix)) prefix += '.';
|
|
@@ -342,8 +389,25 @@ function toString(obj, p, deep) {
|
|
|
342
389
|
else dots = '';
|
|
343
390
|
if (e) e = `<mo>×</mo><msup><mn>10</mn><mn>${String(e).replace(/^\-/, '–')}</mn></msup>`;
|
|
344
391
|
else e = '';
|
|
392
|
+
if (s) s = `<mi>${s}</mi>`;
|
|
393
|
+
else s = '';
|
|
345
394
|
prefix = mn(prefix);
|
|
346
|
-
return mrow([prefix, rep, dots, e].join(''), e ? p >= pmap["*"] : false, deep);
|
|
395
|
+
return mrow([prefix, rep, dots, e, s].join(''), e ? p >= pmap["*"] : false, deep);
|
|
396
|
+
}
|
|
397
|
+
if (k === '**') {
|
|
398
|
+
if (origin instanceof Array) {
|
|
399
|
+
var [left, right] = origin;
|
|
400
|
+
if (left instanceof Object && !(left instanceof Array)) {
|
|
401
|
+
for (var k1 in left) break;
|
|
402
|
+
if (!(left[k1] instanceof Array)) {
|
|
403
|
+
var obj = mi2(k1, toString(left[k1], pmap["*"], 0), toString(right));
|
|
404
|
+
return mrow(obj, p >= pmap["**"], deep);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
if (k === '@' || k === '$') {
|
|
410
|
+
return mrow(tabs[k](origin), -1, deep);
|
|
347
411
|
}
|
|
348
412
|
if (k === 'tab') {
|
|
349
413
|
k = origin.shift();
|
|
@@ -354,13 +418,24 @@ function toString(obj, p, deep) {
|
|
|
354
418
|
return mrow(tabs[k](...origin), -1, deep);
|
|
355
419
|
}
|
|
356
420
|
if (k in 三角函数) {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
421
|
+
if (origin instanceof Array) {
|
|
422
|
+
var args = origin.map(a => toString(a, pmap["*"], 0));
|
|
423
|
+
obj = 三角函数[k](...args);
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
obj = 三角函数[k](toString(origin, pmap["*"], 0));
|
|
427
|
+
}
|
|
428
|
+
return mrow(obj, p >= pmap["**"], deep);
|
|
429
|
+
}
|
|
430
|
+
if (k === '+.') {
|
|
431
|
+
var args = toString(origin, pmap[k], -1);
|
|
360
432
|
}
|
|
361
|
-
var args = toString(origin, pmap[k], 0);
|
|
433
|
+
else var args = toString(origin, k === '/' ? 0 : pmap[k], 0);
|
|
362
434
|
var addqt = pmap[k] < p && p < pmap["**"];
|
|
363
435
|
if (args instanceof Array) {
|
|
436
|
+
if (k === "'" && args.length === 1 && !origin[0]["["]) {
|
|
437
|
+
return mrow(args[0] + `<mo>'</mo>`, p > pmap["**"], 0);
|
|
438
|
+
}
|
|
364
439
|
var f = funcmap[k];
|
|
365
440
|
if (!f) {
|
|
366
441
|
addqt = -1;
|
|
@@ -372,14 +447,16 @@ function toString(obj, p, deep) {
|
|
|
372
447
|
return mrow(`<mi>${希腊[k] || k}</mi>${mrow(args instanceof Array ? args.join('<mo>,</mo>') : args, true)}`, false, deep);
|
|
373
448
|
}
|
|
374
449
|
if (args instanceof Array) {
|
|
375
|
-
|
|
376
450
|
if (k === '*') {
|
|
377
|
-
var
|
|
378
|
-
var bx = 1;
|
|
451
|
+
var bx = 0;
|
|
379
452
|
var simple = true;
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
453
|
+
var pisnum = isFinite(origin[0], true);
|
|
454
|
+
var allnum = pisnum;
|
|
455
|
+
for (var cx = 1, dx = args.length; cx < dx; cx++) {
|
|
456
|
+
var o = origin[cx];
|
|
457
|
+
var isnum = isFinite(o);
|
|
458
|
+
if (!isnum) allnum = false;
|
|
459
|
+
if (!pisnum && isnum) {
|
|
383
460
|
if (cx > bx) {
|
|
384
461
|
while (bx < cx) {
|
|
385
462
|
args[bx] = args[bx] + "<mo>·</mo>";
|
|
@@ -388,6 +465,7 @@ function toString(obj, p, deep) {
|
|
|
388
465
|
}
|
|
389
466
|
bx = cx;
|
|
390
467
|
}
|
|
468
|
+
pisnum = isnum && isPostFinite(o);
|
|
391
469
|
}
|
|
392
470
|
if (allnum) {
|
|
393
471
|
return mrow(funcmap.mul(...args), false, deep);
|