efront 4.7.0 → 4.7.2

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.
@@ -1,3 +1,6 @@
1
+ - zh-CN: 以后不会再测试是否兼容vue了,也不准备增加对vue3及后续版本的支持,望知悉。
2
+ en: "We will no longer test whether it is compatible with Vue in the future, and we are not planning to add support for Vue3 and subsequent versions. Please be informed."
3
+
1
4
  - zh-CN: 检查完毕!
2
5
  en: Check completed!
3
6
 
@@ -227,7 +230,7 @@
227
230
  en: !
228
231
 
229
232
  - zh-CN: https://letsencrypt.org/zh-cn/
230
- en:
233
+ en: https://letsencrypt.org/
231
234
 
232
235
  - zh-CN: 没有发现上传函数
233
236
  en: No upload function found
@@ -109,7 +109,7 @@ tip {
109
109
  </div>
110
110
  </div>
111
111
  <div2 class="main" ref="content">
112
- <tip>内容区</tip>
112
+ <tip>这个项目是我以前在某些公司上班时为了兼容vue开的,以后不会再维护了,也不准备增加对vue3及后续版本的支持,望知悉。</tip>
113
113
  </div2>
114
114
  </div1>
115
115
  </template>
@@ -21,7 +21,6 @@ var exec_ = function (args, ok, oh, int) {
21
21
  next(err);
22
22
  }
23
23
  else {
24
- catches.pop();
25
24
  fina();
26
25
  }
27
26
  }
@@ -32,7 +31,7 @@ var exec_ = function (args, ok, oh, int) {
32
31
  var retn = function (p) {
33
32
  r = p;
34
33
  finished = true;
35
- if (catches.length) fina();
34
+ if (catch_ || catches.length) fina();
36
35
  else ok(r);
37
36
  };
38
37
  var fina = function () {
@@ -44,7 +43,6 @@ var exec_ = function (args, ok, oh, int) {
44
43
  next();
45
44
  };
46
45
  var fine = function () {
47
- catches.pop();
48
46
  if (throwed) thro(e);
49
47
  else if (finished) retn(r);
50
48
  else {
@@ -57,11 +55,9 @@ var exec_ = function (args, ok, oh, int) {
57
55
  while (index < args_length) {
58
56
  try {
59
57
  var a = args[index](p) || [1, 0];
60
- catch_ = null;
61
58
  p = a[0];
62
59
  i = a[1];
63
60
  } catch (e) {
64
- p = null;
65
61
  thro(e);
66
62
  return;
67
63
  }
@@ -73,12 +69,13 @@ var exec_ = function (args, ok, oh, int) {
73
69
  try {
74
70
  return p.then(next, thro);
75
71
  } catch (e) {
76
- return Promise.reject(e).then(next, thro);
72
+ return Promise.reject(e).then(null, thro);
77
73
  }
78
74
  }
79
75
  else return next(p);
80
76
  case 2: return finished = true, retn(p); // return p;
81
77
  case 3: return index++, int(p, next); // yield p;
78
+ case 4: return thro(p); // throw p; 目前无此返回值
82
79
  case 7: index++; catches.push([index, p]); break; // try catch finally?
83
80
  case 8: index++; catches.push([index, p, 1]); break; // try finally
84
81
  case 9: return p ? fine() : fina(); // finally
@@ -11,7 +11,14 @@ var b = async function () {
11
11
  console.log(3, process.uptime())
12
12
  try {
13
13
  console.log(4, 'try');
14
- throw 5
14
+ try {
15
+ throw "这个错误不该出现";
16
+ } catch {
17
+ await Promise.reject('这个错误不该出现');
18
+ }
19
+ finally {
20
+ throw await Promise.resolve(5)
21
+ }
15
22
  } catch (e) {
16
23
  console.log(e, 'catched')
17
24
  throw 7;
@@ -27,22 +34,41 @@ var c = async function () {
27
34
 
28
35
  await b();
29
36
  } catch (e) {
30
- console.log(e)
37
+ console.log(e, 'catched')
31
38
  return 9;
32
39
  }
33
40
  finally {
34
- console.log(8)
41
+ console.log(8, 'finally')
35
42
  }
36
43
  };
37
44
  var d = async function () {
38
45
  try {
39
- throw new Error(10);
46
+ throw new Error("不该出现此错误");
40
47
  }
41
48
  catch (e) {
49
+ console.log(10, 'catched');
42
50
  throw e;
43
51
  }
52
+ finally {
53
+ console.log(11);
54
+ return 12;
55
+ }
56
+ }
57
+ var e = async function () {
58
+ try {
59
+ throw new Error("不该出现此错误");
60
+ }
61
+ catch (e) {
62
+ console.log(13, 'catched');
63
+ throw e;
64
+ }
65
+ finally {
66
+ console.log(14);
67
+ throw new Error("这是最后的报错");
68
+ }
44
69
  }
45
70
  console.log(0, process.uptime())
46
71
  await a();
47
72
  console.log(await c());
48
- await d();
73
+ console.log(await d());
74
+ await e();
@@ -1,7 +1,35 @@
1
- var { STAMP, EXPRESS, snapSentenceHead, pickSentence, createString, getBodyWith } = require("./common");
1
+ var { STAMP, getDeclared, VALUE, STRAP, SCOPED, QUOTED, snapSentenceHead, pickSentence, createString, getBodyWith } = require("./common");
2
+ var addAccessedStart = function (matched, namedMap) {
3
+ var start = +namedMap["#1"];
4
+ var body = getBodyWith(matched[0], 'arguments');
5
+ if (body.reststart < start) return;
6
+ body.reststart = start;
7
+ };
8
+ var getLoop = function (c, root) {
9
+ var loop = null;
10
+ do {
11
+ var h = snapSentenceHead(c);
12
+ if (h.type === STRAP && /^(do|while|for)$/.test(h.text)) {
13
+ loop = h;
14
+ }
15
+ var p = h.prev;
16
+ while (p?.type === SCOPED && p.entry === "(") {
17
+ h = snapSentenceHead(p);
18
+ if (/^(while|for)$/.test(h.text)) {
19
+ loop = h;
20
+ }
21
+ if (!/^(if|with)$/.test(h.text)) break;
22
+ p = h.prev;
23
+ }
24
+ c = h.queue;
25
+ } while (c?.type === SCOPED && c !== root)
26
+ return loop;
27
+ }
2
28
  var suggest = {
3
29
  "while($2[$1++]!==$3)": "while($1<$2.length&&$2[$1++]!==$3)",
4
30
  "while($2[$1]!==$3)$1++": "while($1<$2.length&&$2[$1]!==$3)$1++",
31
+ "for(var $1=#1,$2=arguments.length;$1<$2;$1++)": addAccessedStart,
32
+ "for(var $1=#1;$1<arguments.length;$1++)": addAccessedStart,
5
33
  "arguments"(matched) {
6
34
  var m = matched[0];
7
35
  var body = getBodyWith(m, 'arguments');
@@ -10,19 +38,53 @@ var suggest = {
10
38
  body.checked = true;
11
39
  var { used, args } = body.scoped;
12
40
  if (!args?.length) return;
41
+ var access_start = body.reststart ?? args?.length;
42
+ a: if (access_start > 0) {
43
+ for (var a of used.arguments) {
44
+ if (a.text !== 'arguments') continue;
45
+ var n = a.next;
46
+ if (!n || n.type !== SCOPED || n.entry !== '[') {
47
+ access_start = 0;
48
+ break a;
49
+ }
50
+ if (n.last && n.last === n.first) {
51
+ if (n.last.isdigit) {
52
+ var i = +n.last.text;
53
+ if (i < access_start) access_start = i;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ if (access_start >= args.length) return;
13
59
  var broken = false;
60
+ var arguments = used.arguments;
61
+ var arg_start = Infinity;
14
62
  a: for (var a of args) {
15
- if (!used[a]) {
63
+ if (access_start > 0) {
64
+ access_start--;
16
65
  continue;
17
66
  }
67
+ if (typeof a !== 'string') continue;
18
68
  for (var u of used[a]) {
19
69
  if (u.equal) {
70
+ var loop = getLoop(u, body);
71
+ var astart;
72
+ if (loop) {
73
+ astart = loop.start;
74
+ }
75
+ else {
76
+ var s = pickSentence(u);
77
+ astart = s[s.length - 1].end;
78
+ }
79
+ if (astart < arg_start) arg_start = astart;
20
80
  broken = true;
21
81
  break a;
22
82
  }
23
83
  }
24
84
  }
25
85
  if (!broken) return;
86
+ arguments = arguments.filter(a => a.start >= arg_start);
87
+ if (!arguments.length) return;
26
88
  var h = snapSentenceHead(body);
27
89
  var matched = [];
28
90
  while (h && h !== body) {
@@ -33,23 +95,58 @@ var suggest = {
33
95
  return matched;
34
96
  }
35
97
  };
98
+
99
+ var regSuggest = function (c) {
100
+ if (c.type !== QUOTED) return;
101
+ var flag = /\/(\w+)$/.exec(c.text)?.[1];
102
+ if (!flag || !/g\w*$/.test(flag)) return;
103
+ var h = snapSentenceHead(c);
104
+ if (h.type === STRAP || /^(var|let|const)$/.test(h)) {
105
+ h = h.next;
106
+ }
107
+ if (!h.equal) return;
108
+ var [args] = getDeclared(h);
109
+ var scoped = getBodyWith(c, args[0]).scoped;
110
+ if (!scoped?.await && !scoped.yield) return;
111
+ var matched = [c];
112
+ matched.suggest = `new RegExp(${c.text.slice(0, c.text.length - flag.length)}.source,"${flag}")`;
113
+ return matched;
114
+ };
115
+
36
116
  var roles = Object.keys(suggest).map(s => {
37
117
  var r = scanner2(s);
38
- var { used, envs } = r;
39
- for (var k in envs) {
118
+ var { used } = r;
119
+ for (var k in used) {
40
120
  used[k].forEach(f => {
41
- f.sname = /^\$\d+$/.test(f.text) ? f.text : null;
121
+ if (/^\#\d+$/.test(f.text)) {
122
+ f.isdigit = true;
123
+ f.type = VALUE;
124
+ f.sname = f.text;
125
+ }
126
+ else if (/^\$\d+$/.test(f.text)) {
127
+ f.sname = f.text;
128
+ }
42
129
  });
43
130
  }
131
+ r.matcher = s;
44
132
  s = suggest[s];
45
133
  if (typeof s === 'string') r.suggest = scanner2(s);
46
134
  else r.suggest = s;
47
135
  return r;
48
- });
136
+ }).concat(regSuggest);
49
137
  var match = function (role, c, nameMap = {}) {
50
138
  var temp = role.first;
51
139
  var matched = [];
140
+ if (typeof role === 'function') {
141
+ return role(c);
142
+ }
52
143
  while (temp) {
144
+ if (temp.type === STRAP && /^(var|let|const)$/.test(temp.text)) {
145
+ if (!c) return;
146
+ temp = temp.next;
147
+ if (!temp) return;
148
+ if (c.type === STRAP && /^(var|let|const)$/.test(c.text)) c = c.next;
149
+ }
53
150
  if (!c || c.type !== temp.type) return;
54
151
  if (temp.sname) {
55
152
  var name = temp.sname;
@@ -71,7 +168,7 @@ var match = function (role, c, nameMap = {}) {
71
168
  }
72
169
  if (role.suggest) {
73
170
  if (isFunction(role.suggest))
74
- return role.suggest(matched);
171
+ return role.suggest(matched, nameMap);
75
172
  var { used } = role.suggest;
76
173
  for (var k in nameMap) {
77
174
  if (used[k]) patchlist('', used[k], nameMap[k]);
@@ -88,7 +185,8 @@ var audit = function (code) {
88
185
  while (rest.length) {
89
186
  var c = rest.pop();
90
187
  if (c.length) {
91
- rest.push.apply(rest, c);
188
+ var a = c.slice().reverse();
189
+ rest.push.apply(rest, a);
92
190
  }
93
191
  var m = match(r, c);
94
192
  if (!m) continue;
@@ -7,10 +7,25 @@ function a(a) {
7
7
  console.log(arguments);
8
8
  }
9
9
 
10
- class a{
10
+ class a {
11
11
  a
12
- b(c){
13
- c=2;
12
+ b(c) {
13
+ c = 2;
14
14
  arguments;
15
15
  }
16
+ }
17
+
18
+
19
+ // 正则表达式在异步函数中无法并发执行,是efront提取正则所致,目前要由用户手动处理
20
+ async function c() {
21
+ var reg = /a/g;
22
+ while (true) {
23
+ await wait(20);
24
+ reg.exec("aaa");
25
+ }
26
+ }
27
+
28
+ // 正则表达式在步进函数中无法并发执行,是efront提取正则所致,目前要由用户手动处理
29
+ async function *c() {
30
+ var reg = /a/g;
16
31
  }
@@ -11,7 +11,7 @@ t("var a=1;console.log(a)", "var a = 1; console.log(1)");
11
11
  t("a.b = 2;console.log(a.b)", "a.b = 2; console.log(2)");
12
12
  t("a/*a*/.b = 2;console.log(a.b)", "a/*a*/.b = 2; console.log(2)");
13
13
  t("a.b = 2;console.log(a/*aaaa*/.b)", "a.b = 2; console.log(2)");
14
- t("a.b = 2;console.log(/*bbbb*/a.b)", "a.b = 2; console.log(/*bbbb*/ 2)");
14
+ t("a.b = 2;console.log(/*bbbb*/a.b)", "a.b = 2; console.log(/*bbbb*/2)");
15
15
  t("var {a=1};console.log(a)", "var { a = 1 }; console.log(a)");
16
16
  t("if(c) a=1;console.log(a)", "if (c) a = 1; console.log(a)");
17
17
  t("console.log(a);a=1;", "console.log(a); a = 1;");
@@ -16,7 +16,7 @@ const [
16
16
  // --------------//1//2/////////////////////////22/////////////2//2//3//4/////4////////3/////3//////3//3//////3///////211/////////////2//////2//////1///
17
17
  var number_reg = /^(?:(?:0x[0-9a-f]+|0b\d+|0o\d+|0[0-7]+)(?:_[0-9a-f]+)*|(?:(?:(?:\d+_)*\d+|\d*)\.\d+(?:_\d+)*|(?:\d+_)*\d+\.?))(?:e[\+\-]?\d+(?:_\d+)*|[ijklmnu]+)?/i;
18
18
  var equal_reg = /^(?:[\+\-\*\/~\^&\|%]|\*\*|>>>?|<<)?\=$|^(?:\+\+|\-\-)$/;
19
- var needhead_reg = /^\?\.|^\.[^\.]|^\[/;
19
+ var needhead_reg = /^\?\.|^\.(?:[^\.]|$)|^\[/;
20
20
  var skipAssignment = function (o, cx) {
21
21
  if (!o) return;
22
22
  var next = arguments.length === 1 ? function () {
@@ -219,14 +219,82 @@ function skipFunction(o) {
219
219
  }
220
220
  return o;
221
221
  }
222
+ var getDoBeforeWhile = function (while_) {
223
+ var p = while_.prev;
224
+ if (!p || p.type !== SCOPED || p.entry !== '{') return;
225
+ p = p.prev;
226
+ if (p.type === STRAP && p.text === "do") return p;
227
+ };
228
+ var getIfElseHead = function (if_) {
229
+ var p = if_;
230
+ do {
231
+ if_ = p;
232
+ p = if_.prev;
233
+ if (!p || p.type !== STRAP || p.text !== 'else') {
234
+ return if_;
235
+ }
236
+ while (p && (p.type !== STRAP || p.text !== 'if')) p = p.prev;
237
+ } while (p);
238
+ };
239
+ var getContitionHeadBeforeScoped = function (p, nodo) {
240
+ var pp = p.prev;
241
+ if (pp.type !== STRAP) return;
242
+ if (pp.text === 'await') {
243
+ pp = pp.prev;
244
+ if (pp?.type === STRAP && pp.text === "for") {
245
+ return pp;
246
+ };
247
+ }
248
+ else switch (pp.text) {
249
+ case "with":
250
+ case "for":
251
+ return pp;
252
+ case "while":
253
+ p = getDoBeforeWhile(pp);
254
+ if (p) {
255
+ if (nodo) return;
256
+ return p;
257
+ }
258
+ return pp;
259
+ case "if":
260
+ return getIfElseHead(pp);
261
+ }
262
+ };
263
+ var getFunctionHeadBeforeScoped = function (p) {
264
+ var pp = p.prev;
265
+ if (pp && pp.type === EXPRESS) pp = pp.prev;
266
+ if (pp && pp.text === '*') pp = pp.prev;
267
+ if (pp && pp.type === STRAP && pp.text === 'function') {
268
+ p = pp;
269
+ pp = pp.prev;
270
+ if (pp && pp.type === STRAP && pp.text === 'async') {
271
+ p = pp;
272
+ }
273
+ return p;
274
+ }
275
+ while (pp?.isprop) {
276
+ p = pp;
277
+ pp = pp.prev;
278
+ if (pp?.isend) break;
279
+ }
280
+ if (p.isprop) return p;
281
+ }
222
282
  function snapSentenceHead(o) {
223
283
  // 只检查一级
224
284
  while (o && o.prev) {
225
285
  var p = o.prev;
226
- if (o.entry === '(' && !(p.type & (STAMP | STRAP))) {
227
- o = p;
228
- p = o.prev;
229
- if (!p) break;
286
+ if (o.entry === '(') {
287
+ if (!(p.type & (STAMP | STRAP))) {
288
+ o = p;
289
+ p = o.prev;
290
+ if (!p) break;
291
+ }
292
+ else if (p.type === STRAP) {
293
+ var pp = getContitionHeadBeforeScoped(o, false);
294
+ if (pp) { o = pp; break; }
295
+ pp = getFunctionHeadBeforeScoped(o);
296
+ if (pp) { o = pp; continue };
297
+ }
230
298
  }
231
299
  var maybeprop = o.type === SCOPED && o.entry !== "{" || o.type === EXPRESS && /^[\.\[]/.test(o.text);
232
300
  if (p.type === EXPRESS) {
@@ -254,18 +322,10 @@ function snapSentenceHead(o) {
254
322
  continue;
255
323
  }
256
324
  if (p.entry === "(" && o.type === SCOPED) {
257
- var pp = p.prev;
258
- if (pp && pp.type === EXPRESS) pp = pp.prev;
259
- if (pp && pp.type === STRAP && pp.text === 'function') {
260
- o = pp;
261
- pp = pp.prev;
262
- continue;
263
- }
264
- while (pp?.isprop) {
265
- o = pp;
266
- pp = pp.prev;
267
- if (pp?.isend) break;
268
- }
325
+ var pp = getContitionHeadBeforeScoped(p, true);
326
+ if (pp) { o = pp; break; }
327
+ var pp = getFunctionHeadBeforeScoped(p);
328
+ if (pp) { o = pp; continue; }
269
329
  }
270
330
  break;
271
331
  }
@@ -434,7 +494,7 @@ var snapExpressFoot = function (o) {
434
494
  };
435
495
  var createScoped = function (parsed, wash) {
436
496
  var used = Object.create(null); var vars = Object.create(null), lets = vars;
437
- var scoped = [], funcbody = scoped, argscope = scoped, thisscope = scoped;
497
+ var scoped = [], funcbody = scoped, argscope = scoped, thisscope = scoped, labelused = used;
438
498
  funcbody.isroot = true;
439
499
  scoped.body = parsed;
440
500
  scoped.isfunc = true;
@@ -492,7 +552,7 @@ var createScoped = function (parsed, wash) {
492
552
  else {
493
553
  var u = o.text;
494
554
  if (/^\.\.\./.test(u)) u = u.slice(3);
495
- var u = u.replace(/^([^\.\[\?]*)[\s\S]*$/, '$1');
555
+ var u = u.replace(/^([^\.\[\?\s]*)[\s\S]*$/, '$1');
496
556
  if (!u) break;
497
557
  var prev = o.prev;
498
558
  if (prev && prev.type === STAMP && /^(?:\+\+|\-\-)$/.test(prev.text)) {
@@ -506,7 +566,7 @@ var createScoped = function (parsed, wash) {
506
566
  break;
507
567
  case LABEL:
508
568
  var name = o.text;
509
- name = name.slice(0, name.length - 1);
569
+ name = name.replace(/\s*\:$/, '');
510
570
  vars[name] = true;
511
571
  o.kind = "label";
512
572
  saveTo(used, name, o);
@@ -516,11 +576,20 @@ var createScoped = function (parsed, wash) {
516
576
  var s = o.text;
517
577
  var m = null;
518
578
  switch (s) {
579
+ case "break":
580
+ case "continue":
581
+ if (o.isend) break;
582
+ o = o.next;
583
+ if (o?.type === EXPRESS) {
584
+ saveTo(labelused, o.text, o);
585
+ }
586
+ break;
519
587
  case "return":
520
588
  if (!funcbody.return) funcbody.return = [];
521
589
  funcbody.return.push(o);
522
590
  break;
523
591
  case "await":
592
+ funcbody.async = funcbody.await = true;
524
593
  break;
525
594
  case "as":
526
595
  case "from":
@@ -629,6 +698,7 @@ var createScoped = function (parsed, wash) {
629
698
  var _funcbody = funcbody;
630
699
  var _argscope = argscope;
631
700
  var _thisscope = thisscope;
701
+ var _labelused = labelused;
632
702
  used = Object.create(null);
633
703
  lets = Object.create(null);
634
704
  vars = Object.create(null);
@@ -645,7 +715,8 @@ var createScoped = function (parsed, wash) {
645
715
  thisscope = scoped;
646
716
  argscope = scoped;
647
717
  }
648
- scoped.await = scoped.async = isAsync;
718
+ labelused = used;
719
+ scoped.async = isAsync;
649
720
  scoped.isfunc = true;
650
721
  isFunction = true;
651
722
  if (function_obj) function_obj.scoped = scoped;
@@ -764,6 +835,7 @@ var createScoped = function (parsed, wash) {
764
835
  }
765
836
  if (keepscope) {
766
837
  var envs = Object.create(null);
838
+ var caps = Object.create(null);
767
839
  for (var k in used) {
768
840
  if (!(k in map)) {
769
841
  envs[k] = true;
@@ -771,7 +843,11 @@ var createScoped = function (parsed, wash) {
771
843
  saveTo(_used, k, u);
772
844
  }
773
845
  }
846
+ else {
847
+ caps[k] = used[k];
848
+ }
774
849
  }
850
+ scoped.caps = caps;
775
851
  scoped.envs = envs;
776
852
  _scoped.push(scoped);
777
853
  }
@@ -787,6 +863,7 @@ var createScoped = function (parsed, wash) {
787
863
  if (isClass) delete lets.super, delete lets.this, thisscope = _thisscope;
788
864
  if (isFunction) {
789
865
  funcbody = _funcbody;
866
+ labelused = _labelused;
790
867
  if (!isArrow) {
791
868
  delete vars.this;
792
869
  delete vars.arguments;
@@ -807,6 +884,7 @@ var createScoped = function (parsed, wash) {
807
884
  run(parsed.first);
808
885
  scoped.used = used;
809
886
  scoped.vars = vars;
887
+ scoped.caps = used;
810
888
  var envs = Object.create(null);
811
889
  for (var u in used) {
812
890
  if (!(u in vars)) {
@@ -1257,12 +1335,8 @@ var rename = function (used, from, to) {
1257
1335
  if (doted) text = "..." + text;
1258
1336
  if (u.type === PROPERTY) {
1259
1337
  if (u.short) {
1260
- var q = u.queue;
1261
- q.splice(q.indexOf(u), 0, { type: PROPERTY, text: u.text }, { type: STAMP, text: ":" });
1262
- u.short = false;
1263
- u.type = EXPRESS;
1338
+ unshort(u);
1264
1339
  u.text = text;
1265
- relink(q);
1266
1340
  }
1267
1341
  continue;
1268
1342
  }
@@ -1493,21 +1567,21 @@ var unshort = function (o, text) {
1493
1567
  };
1494
1568
  var getBodyWith = function (o, k) {
1495
1569
  var q = o.queue;
1496
- while (q && (!q.scoped || !q.scoped.used[k])) q = q.queue;
1570
+ while (q && (!q.scoped || !q.scoped.caps[k])) q = q.queue;
1497
1571
  return q;
1498
1572
  };
1499
1573
 
1500
1574
  var patchArrawScope = function (arraw, origin) {
1501
1575
  var s1 = createScoped(arraw);
1502
- if (s1.used.this) {
1576
+ if (s1.caps.this) {
1503
1577
  var s = getBodyWith(origin, 'this').scoped;
1504
- s.used.this.push(...s1.used.this);
1578
+ s.caps.this.push(...s1.caps.this);
1505
1579
  s.insett = true;
1506
1580
  }
1507
- if (s1.used.arguments) {
1581
+ if (s1.caps.arguments) {
1508
1582
  s.inseta = true;
1509
1583
  var s = getBodyWith(origin, 'arguments').scoped;
1510
- s.used.arguments.push(...s1.used.arguments);
1584
+ s.caps.arguments.push(...s1.caps.arguments);
1511
1585
  };
1512
1586
  };
1513
1587
 
@@ -666,13 +666,13 @@ var killcls = function (body, i, letname_, getname_) {
666
666
  relink(constructor[1]);
667
667
  var cs = createScoped(constructor[1]);
668
668
  var newt = getname(cs.vars, cs.envs, 'this_');
669
- if (cs.used.this) rename(cs.used, 'this', newt);
669
+ if (cs.caps.this) rename(cs.caps, 'this', newt);
670
670
  var inited = false;
671
671
  assign.forEach(o => {
672
672
  if (o.type === EXPRESS) o.text = o.text.replace(/^this([\[\.]|$)/g, newt + "$1");
673
673
  });
674
- if (cs.used.super) {
675
- cs.used.super.forEach(o => {
674
+ if (cs.caps.super) {
675
+ cs.caps.super.forEach(o => {
676
676
  if (o.text !== 'super') return;
677
677
  var n = o.next;
678
678
  if (!n || n.type !== SCOPED || n.entry !== "(") return;
@@ -687,8 +687,8 @@ var killcls = function (body, i, letname_, getname_) {
687
687
  insert1(o.queue, n.next, ...scanner2(`||this;`));
688
688
  })
689
689
  }
690
- if (scoped.used.super) {
691
- scoped.used.super.forEach(o => {
690
+ if (scoped.caps.super) {
691
+ scoped.caps.super.forEach(o => {
692
692
  if (!/^super(\.|\[|$)/.test(o.text)) return;
693
693
  o.text = `${base}["prototype"]` + o.text.replace(/^super/, '');
694
694
  insert1(o.queue, o.next, ...scanner2('["bind"](this)'));
@@ -1674,16 +1674,16 @@ var down = function (scoped) {
1674
1674
  };
1675
1675
 
1676
1676
  var markcodes = [];
1677
- if (scoped.isfunc && scoped.used.this && (funcMark && !scoped.isArrow || scoped.insett)) {
1677
+ if (scoped.isfunc && scoped.caps.this && (funcMark && !scoped.isArrow || scoped.insett)) {
1678
1678
  let tn = _getname("this_");
1679
- rename(scoped.used, "this", tn);
1680
- scoped.used.this.forEach(o => o.origin = 'this');
1679
+ rename(scoped.caps, "this", tn);
1680
+ scoped.caps.this.forEach(o => o.origin = 'this');
1681
1681
  markcodes.push(`${tn}=this`);
1682
1682
  }
1683
- if (scoped.isfunc && scoped.used.arguments && (funcMark && !scoped.isArrow || scoped.inseta)) {
1683
+ if (scoped.isfunc && scoped.caps.arguments && (funcMark && !scoped.isArrow || scoped.inseta)) {
1684
1684
  let an = _getname("arguments_");
1685
- scoped.used.arguments.forEach(o => o.origin = 'arguments');
1686
- rename(scoped.used, "arguments", an);
1685
+ scoped.caps.arguments.forEach(o => o.origin = 'arguments');
1686
+ rename(scoped.caps, "arguments", an);
1687
1687
  markcodes.push(`${an}=arguments`);
1688
1688
  }
1689
1689
  var fordeep = 0;