efront 4.32.4 → 4.33.1

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.
@@ -877,6 +877,206 @@ Javascript.prototype.newVar = function (used, string_template) {
877
877
  used[name] = [];
878
878
  return name;
879
879
  }
880
+ var newSpreadDeclared = false;
881
+ var newSpread = function (code) {
882
+ var c = code.first;
883
+ while (c) {
884
+ var n = c.next, q = null;
885
+ if (c.type === STRAP && c.text === "new") {
886
+ var t = snapExpressFoot(c);
887
+ if (n) do {
888
+ if (n.type === SCOPED) {
889
+ if (n.entry === '{') break;
890
+ if (n.entry === "(") {
891
+ q = n;
892
+ break;
893
+ }
894
+ }
895
+ if (n === t) break;
896
+ n = n.next;
897
+ } while (n);
898
+ if (q) {
899
+ convertNewSpread(c, q);
900
+ c = q;
901
+ continue;
902
+ }
903
+ c = c.next;
904
+ continue;
905
+ }
906
+ if (c.type & (SCOPED | QUOTED) && c.length) {
907
+ newSpread(c);
908
+ }
909
+ c = n;
910
+ }
911
+ };
912
+ var convertNewSpread = function (c, q) {
913
+ var qf = q.first;
914
+ if (!qf) return;
915
+ if (qf.text !== "...") return;
916
+ var qfn = qf.next;
917
+ if (qfn.type !== SCOPED || qfn.entry !== "{" || qfn !== q.last) return;
918
+ var qfi = q.indexOf(qf);
919
+ var qni = q.indexOf(qfn, qfi);
920
+ splice(q, qfi, qni + 1 - qfi);
921
+ var o = qfn.first;
922
+ if (!o) {
923
+ splice(q, qfi, 0, ...qfn);
924
+ setqueue(q);
925
+ return;
926
+ }
927
+ var nq = [];
928
+ var dist = nq;
929
+ var pushProps = function (qfn) {
930
+ var inProperty = true;
931
+ var doted = function () {
932
+ var ext = scan(`&extend("\\new",)`);
933
+ nq.push(ext[0], ext[1]);
934
+ dist = ext[1];
935
+ inProperty = false;
936
+ }
937
+ var defines = Object.create(null);
938
+ var get = false, set = false, async = null, aster = null, name;
939
+ for (var o of qfn) {
940
+ if (o.type === STAMP && o.text === ',') {
941
+ inProperty = true;
942
+ get = false, set = false, async = false, aster = false;
943
+ name = undefined;
944
+ if (dist !== nq) relink(dist), setqueue(dist), dist = nq;
945
+ nq.push(o);
946
+ continue;
947
+ }
948
+ if (!inProperty) {
949
+ dist.push(o);
950
+ continue;
951
+ }
952
+ if (o.type & (STRAP | STAMP)) {
953
+ switch (o.text) {
954
+ case "get": get = true; break;
955
+ case "set": set = true; break;
956
+ case "async": async = o; break;
957
+ case "*": aster = o; break;
958
+ case "...":
959
+ doted();
960
+ break;
961
+ case ":":
962
+ inProperty = false;
963
+ nq.push(
964
+ { type: EXPRESS, text: "\\new" },
965
+ name,
966
+ { type: STAMP, text: '=' }
967
+ );
968
+ break;
969
+ }
970
+ continue;
971
+ }
972
+ if (o.type & (PROPERTY | EXPRESS)) {
973
+ if (/^\.\.\./.test(o.text)) {
974
+ o.text = o.text.slice(3);
975
+ doted();
976
+ dist.push(o);
977
+ continue;
978
+ }
979
+ if (o.short) {
980
+ delete o.short;
981
+ nq.push(
982
+ { type: EXPRESS, text: "\\new." + o.text },
983
+ { type: STAMP, text: "=" },
984
+ o
985
+ );
986
+ }
987
+ else {
988
+ o.type = EXPRESS;
989
+ o.text = "." + o.text;
990
+ name = o;
991
+ }
992
+ continue;
993
+ }
994
+ if (o.type === SCOPED) {
995
+ if (o.entry = "[") {
996
+ name = o;
997
+ continue;
998
+ }
999
+ if (o.entry = "(") {
1000
+ if (get || set) {
1001
+ var key = name.type !== SCOPED || name.first === name.last ? createString(name) : null;
1002
+ dist = key ? defines[key] : null;
1003
+ if (!dist) {
1004
+ dist = scan(`&defineProperty(\\new,,{})`);
1005
+ nq.push(dist[0], dist[1]);
1006
+ if (name.type === SCOPED) {
1007
+ if (name.first === name.last) dist[1].splice(2, 0, ...name);
1008
+ else {
1009
+ name.entry = "(";
1010
+ name.leave = ")";
1011
+ dist[1].splice(2, 0, name);
1012
+ relink(dist[1]);
1013
+ setqueue(dist[1]);
1014
+ }
1015
+ }
1016
+ dist = dist[1].last;
1017
+ if (key) defines[key] = dist;
1018
+ }
1019
+ if (dist.length) {
1020
+ dist.push({ type: STAMP, text: ',' });
1021
+ }
1022
+ if (get) {
1023
+ dist.push(
1024
+ { type: PROPERTY, text: "get" }
1025
+ );
1026
+ }
1027
+ if (set) {
1028
+ dist.push(
1029
+ { type: PROPERTY, text: "set" }
1030
+ )
1031
+ }
1032
+ dist.push(
1033
+ { type: STAMP, text: ":" },
1034
+ )
1035
+ }
1036
+ else {
1037
+ nq.push(
1038
+ { type: EXPRESS, text: '\\new' },
1039
+ name,
1040
+ { type: STAMP, text: "=" }
1041
+ );
1042
+ }
1043
+ if (async) dist.push(async);
1044
+ dist.push(
1045
+ { type: STRAP, text: "function" },
1046
+ )
1047
+ if (aster) dist.push(aster);
1048
+ inProperty = false;
1049
+ continue;
1050
+ }
1051
+ }
1052
+ if (o.type & (COMMENT | SPACE)) {
1053
+ nq.push(o);
1054
+ continue;
1055
+ }
1056
+ throw new Error('代码结构异常!');
1057
+ }
1058
+ }
1059
+ pushProps(qfn);
1060
+ var i = nq.length - 1;
1061
+ while (i > 0 && nq[i].type & (COMMENT | SPACE)) i--;
1062
+ var nqe = nq[i];
1063
+ if (nqe.type !== STAMP || nqe.text !== ',') nq.push({ type: STAMP, text: ',' });
1064
+ newSpreadDeclared = true;
1065
+ var cq = c.queue;
1066
+ var ci = cq.indexOf(c);
1067
+ var qi = cq.indexOf(q, ci);
1068
+ var cn = splice(cq, ci, qi - ci);
1069
+ splice(q, 0, 0, { type: EXPRESS, text: "\\new" }, { type: STAMP, text: "=" }, ...cn, { type: STAMP, text: ',' }, ...nq, { type: EXPRESS, text: '\\new' });
1070
+ relink(q);
1071
+ setqueue(q);
1072
+ };
1073
+ Javascript.prototype.newSpread = function (code) {
1074
+ newSpreadDeclared = false;
1075
+ newSpread(code);
1076
+ if (newSpreadDeclared) {
1077
+ splice(code, code.length, 0, { type: STRAP, text: 'var' }, { type: EXPRESS, text: "\\new" }, { type: STAMP, text: ";" });
1078
+ }
1079
+ };
880
1080
  Javascript.prototype.fix = function (code) {
881
1081
  var hasExport = false;
882
1082
  backEach(code, function (o, i) {
@@ -102,6 +102,9 @@ class Code extends Array {
102
102
  var last = skipSentenceQueue(this.first);
103
103
  return this.last === last || !last;
104
104
  }
105
+ newSpread() {
106
+ return this.program.newSpread(this);
107
+ }
105
108
  fix() {
106
109
  return this.program.fix(this);
107
110
  }
@@ -821,14 +821,17 @@ var ternary = function (body, getname, ret) {
821
821
  }
822
822
  pushstep(d, stepReturn(1, 0, d));
823
823
  pushstep(c, stepReturn(d.length + 1, 0, c));
824
+ var qe = new Node({
825
+ type: VALUE,
826
+ text: "1",
827
+ isdigit: true,
828
+ });
824
829
  pushstep(explist, rescan.keep`if (${getCondition(b, function (b) {
825
830
  b = ternary(b, getnextname, true);
826
831
  for (var b of b) pushstep(explist, b);
827
832
  return b;
828
- }, true)}) return [1, 0]`);
829
- var q = explist[explist.length - 1];
833
+ }, true)}) return [${qe}, 0]`);
830
834
  var qi = explist.length - 1;
831
- var qe = q[q.length - 1];
832
835
  if (c.length) {
833
836
  pushstep(explist, c[0]);
834
837
  explist.push(...c.slice(1));
@@ -12,9 +12,9 @@ function test(codetext, expect, ret = false) {
12
12
  test('var o = loaded[f.name] = f.isFile() ? new File(p, rebuild, limit) : new Directory(p, rebuild, limit)', "_ = f.name; _0 = f.isFile(); if (!_0) return [1, 0]; _0 = new File(p, rebuild, limit); loaded[_] = _0; o = _0; return [2, 0];\r\n _0 = new Directory(p, rebuild, limit); loaded[_] = _0; o = _0; return [1, 0]");
13
13
  test('a+b', "a + b");
14
14
  test('var a = b', "a = b");
15
- test('if(this){}',`if (!this) return [1, 0]; return [1, 0]`);
16
- test('if(!this){}',`if (this) return [1, 0]; return [1, 0]`);
17
- test('if(arguments){}',`if (!arguments) return [1, 0]; return [1, 0]`);
15
+ test('if(this){}', `if (!this) return [1, 0]; return [1, 0]`);
16
+ test('if(!this){}', `if (this) return [1, 0]; return [1, 0]`);
17
+ test('if(arguments){}', `if (!arguments) return [1, 0]; return [1, 0]`);
18
18
  test('a | c & b', "_ = c & b, a | _");
19
19
  test('a + !c', "_ = !c, a + _");
20
20
  test('a + b * c', "_ = b * c, a + _");
@@ -71,6 +71,7 @@ test("for(var a in b) a.push()", "for (var a in b) a.push()", true);
71
71
  test("for(;;)", "return [0, 0]", true);
72
72
  test("for(a in b)", "for (a in b)", true);
73
73
  test("for(a of b)", "for (a of b)", true);
74
+ test(`var [size, names] = memery.SIGNITEMS? await enpack(readfrom, hd, 7, key, cert) : await enpack(readfrom, hd, 7);`, 'if (!memery.SIGNITEMS) return [2, 0]; _ = enpack(readfrom, hd, 7, key, cert); return [_, 1];\r\n _ = @; [size, names] = _; return [3, 0];\r\n _ = enpack(readfrom, hd, 7); return [_, 1];\r\n _ = @; [size, names] = _; return [1, 0] ', true)
74
75
  test("for await(a of b)", "for await (a of b)", true);
75
76
  test("for(a = os[Symbol.iterator] || os[Symbol.asyncIterator] || Array.prototype[Symbol.iterator], a = a.call(os), b = a.next(); !b.done && (o = b.value, true); b = a.next())", "_ = Symbol.iterator; _ = os[_]; if (_) return [1, 0]; _ = Symbol.asyncIterator; _ = os[_]; if (_) return [1, 0]; _ = Symbol.iterator; _ = Array.prototype[_];\r\n a = _; a = a.call(os); b = a.next(); return [1, 0];\r\n _ = !b.done; if (!_) return [1, 0]; o = b.value; _ = true;\r\n if (!_) return [1, 0]; b = a.next(); return [-1, 0]", true);
76
77
  test("for(a=0;a<1;a++)if(a==0)continue\r\n else a=1", `a = 0; return [1, 0];\r\n _ = a < 1; if (!_) return [2, 0]; _ = a == 0; if (_) return [1, 0]; a = 1; return [1, 0];\r\n _ = a++; return [-1, 0]`, true);
@@ -157,7 +158,7 @@ test(`c=b+ !a`, "_ = !a, c = b + _");
157
158
  test(`do {var loadcount = 0;} while (loadcount !== 0);`, `loadcount = 0; _ = loadcount !== 0; if (_) return [0, 0]`);
158
159
  test("if(a)try{a}catch{};a;", 'if (!a) return [4, 0]; return [1, 7];\r\n a; return [0, 9];\r\n return [1, 9];\r\n return [1, 0];\r\n a');
159
160
  test("url = (o===void 0||o===null?void 0:o.url)", '_ = void 0, _ = o === _; if (_) return [1, 0]; _ = o === null;\r\n if (!_) return [1, 0]; _ = void 0; return [2, 0];\r\n _ = o.url; return [1, 0];\r\n url = _', true);
160
- test("p ? (ishttps ? `https` : `http`).toUpperCase() + i18n`端口` + (ishttps ? ': ' : ': ') + p : ''", "if (!p) return [1, 0]; if (!ishttps) return [1, 0]; _1 = `https`; return [2, 0];\r\n _1 = `http`; return [1, 0];\r\n _ = _1.toUpperCase(); _0 = i18n`端口`, _ = _ + _0; if (!ishttps) return [1, 0]; _2 = ': '; return [2, 0];\r\n _2 = ': '; return [1, 0];\r\n _0 = _2, _ = _ + _0, _ = _ + p; return [2, 0];\r\n ''; return [1, 0]")
161
+ test("p ? (ishttps ? `https` : `http`).toUpperCase() + i18n`端口` + (ishttps ? ': ' : ': ') + p : ''", "if (!p) return [5, 0]; if (!ishttps) return [1, 0]; _1 = `https`; return [2, 0];\r\n _1 = `http`; return [1, 0];\r\n _ = _1.toUpperCase(); _0 = i18n`端口`, _ = _ + _0; if (!ishttps) return [1, 0]; _2 = ': '; return [2, 0];\r\n _2 = ': '; return [1, 0];\r\n _0 = _2, _ = _ + _0, _ = _ + p; return [2, 0];\r\n ''; return [1, 0]")
161
162
  r++// test("if(a)else {}",'')
162
163
  test("if(a){if(b){c}d}else{e}", `if (!a) return [2, 0]; if (!b) return [1, 0]; c; return [1, 0];\r\n d; return [2, 0];\r\n e; return [1, 0]`)
163
164
  test("if(a){if(b){c}else{d}}else{e}", `if (!a) return [3, 0]; if (!b) return [1, 0]; c; return [2, 0];\r\n d; return [1, 0];\r\n return [2, 0];\r\n e; return [1, 0]`)
@@ -16,7 +16,7 @@
16
16
  var parseName = function (k) {
17
17
  var icon, name, hotkey;
18
18
  if (/(^|\s+)\./.test(k)) {
19
- k = k.replace(/(?:^|\s+)\.([^\s,"'`]+)/, (_, m) => {
19
+ k = k.replace(/(^\s*\.[^\s,"'`]+\s*|\s+\.[^\s,"'`]+)/, (_, m) => {
20
20
  icon = m;
21
21
  return '';
22
22
  });
@@ -41,7 +41,7 @@
41
41
  }
42
42
  if (!name) name = k;
43
43
  var item = {};
44
- if (icon) item.icon = icon.replace(/\./g, ' ');
44
+ if (icon) item.icon = icon.replace(/\./g, ' ').trim();
45
45
  item.name = name;
46
46
  if (hotkey) {
47
47
  hotkey = hotkey.split(',');
@@ -57,32 +57,7 @@ var request = async function (id, params) {
57
57
  var account = await data1.from(id, params);
58
58
  return account;
59
59
  };
60
- var ASN1 = function (type) {
61
- var length = 0;
62
- var bytesarr = [];
63
- for (var cx = 1, dx = arguments.length; cx < dx; cx++) {
64
- var bytes = arguments[cx];
65
- if (bytes.constructor !== Array) {
66
- bytes = Array.apply(null, bytes);
67
- }
68
- bytesarr.push(bytes);
69
- length += bytes.length;
70
- }
71
- var asn1 = [type];
72
- if (length > 127) {
73
- var nums = [];
74
- while (length > 0) {
75
- nums.unshift(length & 0xff);
76
- length = length >>> 8;
77
- }
78
- asn1.push(0x80 | nums.length, ...nums);
79
- }
80
- else {
81
- asn1.push(length);
82
- }
83
- asn1 = asn1.concat(...bytesarr);
84
- return asn1;
85
- };
60
+
86
61
  var packUint = function (bytes) {
87
62
  if (bytes[0] & 0x80) {
88
63
  return ASN1(0x02, [0], bytes);
@@ -1,4 +1,4 @@
1
-
1
+ var URL = this.URL;
2
2
  var Module = typeof Module != "undefined" ? Module : {};
3
3
  var quit_ = (status, toThrow) => { throw toThrow };
4
4
  var scriptDirectory = "";
@@ -19,8 +19,6 @@ readAsync = async (filename, binary = true) => {
19
19
  var ret = fs.readFileSync(filename, binary ? undefined : "utf8");
20
20
  return ret
21
21
  };
22
- if (process.argv.length > 1) { thisProgram = process.argv[1].replace(/\\/g, "/") }
23
- arguments_ = process.argv.slice(2);
24
22
  if (typeof module != "undefined") { module["exports"] = Module }
25
23
  quit_ = (status, toThrow) => {
26
24
  process.exitCode = status;
@@ -45,7 +43,6 @@ function preRun() {
45
43
  callRuntimeCallbacks(onPreRuns)
46
44
  }
47
45
  function initRuntime() {
48
- runtimeInitialized = true;
49
46
  wasmExports["c"]()
50
47
  }
51
48
  function postRun() {
@@ -101,10 +101,10 @@ body:active & {
101
101
  menu-item {
102
102
  line-height: 24px;
103
103
  display: inline-block;
104
-
104
+
105
105
  &.has-children:after {
106
- padding-top: 3px;
107
106
  content: "﹀";
107
+ padding-top: .3em;
108
108
  }
109
109
  }
110
110
 
@@ -155,7 +155,8 @@ body:active & {
155
155
  line-height: 20px;
156
156
  font-size: 14px;
157
157
  border-radius: 0;
158
- /*
158
+
159
+ /*
159
160
  狗物业弄了电子门禁还嫌不够,连人行道也弄个一人一杆。
160
161
  住在这里就像住在监狱,随时都可能被限制人身自由。
161
162
  狗日的共产党还和狗物业尿到一个壶里。
@@ -190,12 +191,12 @@ body:active & {
190
191
 
191
192
  &.open {
192
193
  background: #1e282c;
193
-
194
+
194
195
  & s:after {
195
196
  top: -9.2px;
196
197
  }
197
198
  }
198
-
199
+
199
200
  &.checked,
200
201
  &.actived,
201
202
  &.selected {
@@ -46,6 +46,7 @@
46
46
  padding-left: 16px;
47
47
 
48
48
  &:after {
49
+ font-family: monospace;
49
50
  content: ">";
50
51
  display: block;
51
52
  width: 20px;
@@ -329,7 +329,7 @@ var _as_yextra = function (global, innerWidth, innerHeight, element, target, poi
329
329
  css(_rhomb, temp);
330
330
  _rhomb.setSide(side);
331
331
  }
332
- var targetX = position.left - parseFloat(getComputedStyle(element).paddingLeft);
332
+ var targetX = position.left;
333
333
  if (targetX < 0) {
334
334
  css(element, `left:0;right:auto`);
335
335
  if (_rhomb) css(_rhomb, `left:${fromOffset(position.left + position.width / 2)};right:auto`);
Binary file
package/debug.log ADDED
@@ -0,0 +1,3 @@
1
+ [1106/041816.465:ERROR:registration_protocol_win.cc(102)] CreateFile: ϵͳ�Ҳ���ָ�����ļ��� (0x2)
2
+ [1114/175715.384:ERROR:registration_protocol_win.cc(102)] CreateFile: ϵͳ�Ҳ���ָ�����ļ��� (0x2)
3
+ [1115/022347.226:ERROR:registration_protocol_win.cc(102)] CreateFile: ϵͳ�Ҳ���ָ�����ļ��� (0x2)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "4.32.4",
3
+ "version": "4.33.1",
4
4
  "description": "一个开发环境,提供一种自由的前端开发模式,也可作为辅助工具使用。",
5
5
  "main": "public/efront.js",
6
6
  "directories": {