efront 4.7.0 → 4.7.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.
- package/coms/basic_/exec_.js +4 -6
- package/coms/basic_/exec_test.js +23 -4
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/basic_/exec_.js
CHANGED
|
@@ -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,17 +69,19 @@ 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(
|
|
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
|
|
85
82
|
default: throw console.log(a), i18n`代码异常!`;
|
|
86
83
|
}
|
|
84
|
+
catch_ = null;
|
|
87
85
|
}
|
|
88
86
|
retn();
|
|
89
87
|
};
|
package/coms/basic_/exec_test.js
CHANGED
|
@@ -27,22 +27,41 @@ var c = async function () {
|
|
|
27
27
|
|
|
28
28
|
await b();
|
|
29
29
|
} catch (e) {
|
|
30
|
-
console.log(e)
|
|
30
|
+
console.log(e, 'catched')
|
|
31
31
|
return 9;
|
|
32
32
|
}
|
|
33
33
|
finally {
|
|
34
|
-
console.log(8)
|
|
34
|
+
console.log(8, 'finally')
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
var d = async function () {
|
|
38
38
|
try {
|
|
39
|
-
throw new Error(
|
|
39
|
+
throw new Error("不该出现此错误");
|
|
40
40
|
}
|
|
41
41
|
catch (e) {
|
|
42
|
+
console.log(10, 'catched');
|
|
42
43
|
throw e;
|
|
43
44
|
}
|
|
45
|
+
finally {
|
|
46
|
+
console.log(11);
|
|
47
|
+
return 12;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
var e = async function () {
|
|
51
|
+
try {
|
|
52
|
+
throw new Error("不该出现此错误");
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.log(13, 'catched');
|
|
56
|
+
throw e;
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
console.log(14);
|
|
60
|
+
throw new Error("这是最后的报错");
|
|
61
|
+
}
|
|
44
62
|
}
|
|
45
63
|
console.log(0, process.uptime())
|
|
46
64
|
await a();
|
|
47
65
|
console.log(await c());
|
|
48
|
-
await d();
|
|
66
|
+
console.log(await d());
|
|
67
|
+
await e();
|