efront 4.0.22 → 4.0.24
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_/Promise.js +31 -34
- package/coms/basic_/Promise_test.js +1 -0
- package/coms/compile/downLevel.js +35 -12
- package/coms/compile/downLevel_test.js +8 -1
- package/coms/kugou/playList.html +0 -4
- package/coms/kugou/playList.js +0 -1
- package/coms/zimoli/cross.js +3 -1
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/basic_/Promise.js
CHANGED
|
@@ -18,14 +18,11 @@ if (!Promise) {
|
|
|
18
18
|
var queue = [];
|
|
19
19
|
var running = false;
|
|
20
20
|
var run = function (q) {
|
|
21
|
-
running = true;
|
|
22
21
|
while (queue.length) {
|
|
23
22
|
var threads = queue.splice(0, queue.length);
|
|
24
23
|
for (var t of threads) {
|
|
25
|
-
if (!t.oked && !t.ohed) continue;
|
|
26
24
|
var PromiseRejectReactions = t.PromiseRejectReactions.splice(0, t.PromiseRejectReactions.length);
|
|
27
25
|
var PromiseFulfillReactions = t.PromiseFulfillReactions.splice(0, t.PromiseFulfillReactions.length);
|
|
28
|
-
|
|
29
26
|
if (t.oked) {
|
|
30
27
|
for (var r of PromiseFulfillReactions) {
|
|
31
28
|
r.call(null, t.oked[0]);
|
|
@@ -49,8 +46,9 @@ if (!Promise) {
|
|
|
49
46
|
running = false;
|
|
50
47
|
};
|
|
51
48
|
var fire = function (p) {
|
|
52
|
-
if (running) return queue.push(p);
|
|
53
49
|
queue.push(p);
|
|
50
|
+
if (running) return;
|
|
51
|
+
running = true;
|
|
54
52
|
requestAnimationFrame(run);
|
|
55
53
|
};
|
|
56
54
|
var Promise = function (executor) {
|
|
@@ -72,39 +70,38 @@ if (!Promise) {
|
|
|
72
70
|
p.ohed = arguments;
|
|
73
71
|
fire(p);
|
|
74
72
|
};
|
|
75
|
-
fire(p);
|
|
76
73
|
executor(ResolvingFunctions_resolve, ResolvingFunctions_reject);
|
|
77
74
|
};
|
|
78
|
-
Promise.prototype = {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"catch"(f) {
|
|
105
|
-
return this.then(null, f);
|
|
106
|
-
},
|
|
75
|
+
Promise.prototype.then = function (onok, onoh) {
|
|
76
|
+
var resolve, reject;
|
|
77
|
+
var promise = new Promise(function (ok, oh) {
|
|
78
|
+
if (onok) resolve = function (a) {
|
|
79
|
+
try {
|
|
80
|
+
a = onok(a);
|
|
81
|
+
ok(a);
|
|
82
|
+
} catch (e) {
|
|
83
|
+
oh(e, onok, onoh);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
else resolve = ok;
|
|
87
|
+
if (onoh) reject = function (a) {
|
|
88
|
+
try {
|
|
89
|
+
a = onoh.apply(null, arguments);
|
|
90
|
+
ok(a);
|
|
91
|
+
} catch (e) {
|
|
92
|
+
oh(e, onok, onoh);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
else reject = oh;
|
|
96
|
+
})
|
|
97
|
+
if (resolve) this.PromiseFulfillReactions.push(resolve);
|
|
98
|
+
if (reject) this.PromiseRejectReactions.push(reject);
|
|
99
|
+
if (this.oked || this.ohed) fire(this);
|
|
100
|
+
return promise;
|
|
107
101
|
}
|
|
102
|
+
Promise.prototype.catch = function (f) {
|
|
103
|
+
return this.then(null, f);
|
|
104
|
+
};
|
|
108
105
|
Promise.all = function (penddings) {
|
|
109
106
|
return new Promise(function (ok, oh) {
|
|
110
107
|
if (!(penddings && penddings.length)) {
|
|
@@ -43,7 +43,7 @@ var unslice = function (arr) {
|
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
45
|
// 解构赋值
|
|
46
|
-
var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
46
|
+
var killdec = function (queue, i, getobjname, _var = 'var', killobj, islet) {
|
|
47
47
|
var tmpname = '';
|
|
48
48
|
var index = 0;
|
|
49
49
|
var deep = 0;
|
|
@@ -127,6 +127,9 @@ var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
|
127
127
|
}
|
|
128
128
|
splice(queue, i, 0, ...sname);
|
|
129
129
|
i += sname.length;
|
|
130
|
+
if (!value && islet) {
|
|
131
|
+
value = "undefined";
|
|
132
|
+
}
|
|
130
133
|
if (value) {
|
|
131
134
|
var q = scanner2("=" + value);
|
|
132
135
|
splice(queue, i, 0, ...q);
|
|
@@ -236,17 +239,27 @@ var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
|
236
239
|
var o = queue[i];
|
|
237
240
|
var next = snapExpressFoot(o).next;
|
|
238
241
|
tmpname = '';
|
|
242
|
+
var index0 = index;
|
|
243
|
+
var hasnext = false;
|
|
239
244
|
if (!next || next.type !== STAMP || next.text !== '=') {
|
|
240
245
|
// 只声明不赋值的语句
|
|
241
|
-
|
|
246
|
+
hasnext = next && next.type === STAMP && next.text === ',';
|
|
242
247
|
if (hasnext) next = next.next;
|
|
243
248
|
var n = indexof(queue, next, i);
|
|
249
|
+
if (islet && o.type === EXPRESS) {
|
|
250
|
+
if (!next || next.type !== STRAP || !/^(in|of)$/.test(next.text)) splice(queue, i + 1, 0, ...scanner2('=undefined'));
|
|
251
|
+
n += 2;
|
|
252
|
+
}
|
|
244
253
|
if (o.type === SCOPED) {
|
|
245
|
-
var
|
|
246
|
-
|
|
247
|
-
|
|
254
|
+
var prev = o.prev;
|
|
255
|
+
if (prev && prev.type === STAMP && prev.text === ',') i = queue.lastIndexOf(prev, i), index = 1;
|
|
256
|
+
else index = 0;
|
|
257
|
+
splice(queue, i, n - i);
|
|
258
|
+
unslice(o);
|
|
259
|
+
var [[d]] = getDeclared(o);
|
|
248
260
|
dog(d);
|
|
249
261
|
n = i = indexof(queue, next, i);
|
|
262
|
+
if (hasnext && index0 < index) splice(queue, i, 0, { type: STAMP, text: ',' }), i++, n++;
|
|
250
263
|
if (hasnext) continue loop;
|
|
251
264
|
}
|
|
252
265
|
else if (hasnext) {
|
|
@@ -260,6 +273,7 @@ var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
|
260
273
|
var objs = [];
|
|
261
274
|
do {
|
|
262
275
|
var next = snapExpressFoot(o).next;
|
|
276
|
+
hasnext = next && next.type === STAMP && next.text === ',';
|
|
263
277
|
if (!next || next.type !== STAMP || next.text !== "=") {
|
|
264
278
|
// 赋值结束
|
|
265
279
|
if (tmpname) {
|
|
@@ -274,6 +288,7 @@ var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
|
274
288
|
if (!next || next.type === STAMP && /^[,;]$/.test(next.text)) {
|
|
275
289
|
if (o.type === EXPRESS && !/[\.\[]/.test(o.text) && snapExpressFoot(o) === o) {
|
|
276
290
|
tmpname = o.text;
|
|
291
|
+
if (hasnext) next = next.next;
|
|
277
292
|
splice(queue, i, indexof(queue, o = next, i) - i);
|
|
278
293
|
i = indexof(queue, o, i);
|
|
279
294
|
}
|
|
@@ -282,13 +297,16 @@ var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
|
282
297
|
}
|
|
283
298
|
if (o.type === SCOPED) {
|
|
284
299
|
var n = indexof(queue, next.next, i);
|
|
285
|
-
var
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
300
|
+
var prev = o.prev;
|
|
301
|
+
if (prev && prev.type === STAMP && prev.text === ',') i = queue.lastIndexOf(prev, i), index = 1;
|
|
302
|
+
else index = 0;
|
|
303
|
+
splice(queue, i, n - i);
|
|
304
|
+
unslice(o);
|
|
305
|
+
delete o.next;
|
|
306
|
+
if (o.length && getDeclared(o).length > 0) objs.push(o);
|
|
289
307
|
}
|
|
290
308
|
else if (o.type === EXPRESS && !/[\.\[]/.test(o.text) && snapExpressFoot(o) === o) {
|
|
291
|
-
if (!tmpname) tmpname = o.text
|
|
309
|
+
if (!tmpname) tmpname = o.text;
|
|
292
310
|
}
|
|
293
311
|
o = next.next;
|
|
294
312
|
i = indexof(queue, o, i);
|
|
@@ -298,6 +316,7 @@ var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
|
298
316
|
var [[d]] = getDeclared(objs[0]);
|
|
299
317
|
var a = single(d, '');
|
|
300
318
|
if (a) {
|
|
319
|
+
if (index > 0) splice(queue, i++, 0, { type: STAMP, text: ',' });
|
|
301
320
|
splice(queue, i, 0, ...a[1], { type: STAMP, text: "=" });
|
|
302
321
|
i += 2;
|
|
303
322
|
var i2 = skipAssignment(queue, i);
|
|
@@ -328,6 +347,10 @@ var killdec = function (queue, i, getobjname, _var = 'var', killobj) {
|
|
|
328
347
|
var [[d]] = getDeclared(o0);
|
|
329
348
|
dog(d);
|
|
330
349
|
}
|
|
350
|
+
if (hasnext && index > index0) {
|
|
351
|
+
splice(queue, i++, 0, { type: STAMP, text: ',' });
|
|
352
|
+
}
|
|
353
|
+
index = 0;
|
|
331
354
|
}
|
|
332
355
|
// relink(queue);
|
|
333
356
|
return i;
|
|
@@ -692,7 +715,7 @@ var indexof = function (list, o, i) {
|
|
|
692
715
|
i = list.indexOf(o, i);
|
|
693
716
|
if (i < 0) i = list.length;
|
|
694
717
|
}
|
|
695
|
-
else
|
|
718
|
+
else i = list.length;
|
|
696
719
|
return i;
|
|
697
720
|
};
|
|
698
721
|
// 数组或参数展开
|
|
@@ -870,8 +893,8 @@ var killobj = function (body, getobjname, getletname, getname_, letname_, deep =
|
|
|
870
893
|
i++;
|
|
871
894
|
break;
|
|
872
895
|
case "let":
|
|
873
|
-
case "const":
|
|
874
896
|
islet = body.keeplet !== false;
|
|
897
|
+
case "const":
|
|
875
898
|
case "var":
|
|
876
899
|
splice(body, i, 1);
|
|
877
900
|
i = killdec(body, i, _getdeepname, 'var', deepkill, islet);
|
|
@@ -10,6 +10,8 @@ var innerJs = new Javascript;
|
|
|
10
10
|
innerJs.defaultType = common.STRAP;
|
|
11
11
|
// 声明及解构
|
|
12
12
|
assert(downLevel(`var [name, type, options] = piece, key, repeat;`), 'var name = piece[0], type = piece[1], options = piece[2], key, repeat;');
|
|
13
|
+
assert(downLevel(`var [] = piece, key,[]= repeat;`), 'var key;');
|
|
14
|
+
assert(downLevel(`var [] = piece, key,[]`), 'var key');
|
|
13
15
|
assert(downLevel(`const`), 'const');
|
|
14
16
|
assert(downLevel(`let`), 'let');
|
|
15
17
|
assert(downLevel(`var`), '');
|
|
@@ -17,7 +19,12 @@ assert(downLevel(`{let a; function b(){a};return;}`), `if (tmp = 0, tmp0 =functi
|
|
|
17
19
|
var tmp, a, tmp0`);
|
|
18
20
|
assert(downLevel(`const a,b,c`), 'var a, b, c');
|
|
19
21
|
assert(downLevel(`let a,b,c`), 'var a, b, c');
|
|
20
|
-
assert(downLevel(`
|
|
22
|
+
assert(downLevel(`for(let a in b)`), 'for (var a in b)');
|
|
23
|
+
assert(downLevel(`a;for(let a in b)`), 'a; for (var a0 in b)');
|
|
24
|
+
assert(downLevel(`for(let a in b)setTimeout(function(){console.log(a)})`), 'for (var a in b)(function (a) { setTimeout(function () { console.log(a) }) }(a))\r\nvar tmp, a');
|
|
25
|
+
assert(downLevel(`var a;{let a,b,c}`), 'var a; { var a0 = undefined, b = undefined, c = undefined }');
|
|
26
|
+
assert(downLevel(`var a;{let {a,b},c=1}`), 'var a; { var a0 = undefined, b = undefined, c = 1 }');
|
|
27
|
+
assert(downLevel(`var a;{let {a,b},c}`), 'var a; { var a0 = undefined, b = undefined, c = undefined }');
|
|
21
28
|
assert(downLevel(`var {a,b,c}`), 'var a, b, c');
|
|
22
29
|
assert(downLevel(`let {a,b,c}`), 'var a, b, c');
|
|
23
30
|
assert(downLevel(`const {a,b,c}`), 'var a, b, c');
|
package/coms/kugou/playList.html
CHANGED
package/coms/kugou/playList.js
CHANGED
package/coms/zimoli/cross.js
CHANGED
|
@@ -18,7 +18,9 @@ if (cookiesData) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
var digest = function () {
|
|
21
|
-
|
|
21
|
+
Promise.resolve().then(function(){
|
|
22
|
+
dispatch('render', window);
|
|
23
|
+
});
|
|
22
24
|
};
|
|
23
25
|
if (/Trident/i.test(navigator.userAgent)) digest = lazy(digest, 60);
|
|
24
26
|
var cross = cross_.bind(function (callback, onerror) {
|