efront 4.0.22 → 4.0.23

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.
@@ -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
- var hasnext = next && next.type === STAMP && next.text === ',';
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 [o0] = splice(queue, i, n - i);
246
- unslice(o0);
247
- var [[d]] = getDeclared(o0);
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 [o0] = splice(queue, i, n - i);
286
- unslice(o0);
287
- delete o0.next;
288
- if (o0.length && getDeclared(o0).length > 0) objs.push(o0);
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, index++;
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 if (i < list.length) i++;
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(`var a;{let a,b,c}`), 'var a; { var a0, b, c }');
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');
@@ -7,7 +7,3 @@
7
7
  <song ng-click="play(i)" ng-class="{activate:musicList.isActived(p)}" ng-src=p></song>
8
8
  </padding>
9
9
  </list>
10
- <div foot -if="wakeEnabled">
11
- <span>播放时屏幕常亮</span>&nbsp;&nbsp;
12
- <swap -model="playMode.wake" @change="keepWake"></swap>
13
- </div>
@@ -10,7 +10,6 @@ var $scope = {
10
10
  song: kugou$song,
11
11
  padding,
12
12
  swap,
13
- wakeEnabled: !!document.addEventListener,
14
13
  mode: playModes[playModeIndex],
15
14
  switchMode() {
16
15
  playModeIndex++;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "4.0.22",
3
+ "version": "4.0.23",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {