aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/try_catch.lua
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2024-05-17 16:38:44 +0800
committerLi Jin <dragon-fly@qq.com>2024-05-17 16:38:44 +0800
commit06bf167924d04aaefe80d6e4ead40989a447ea34 (patch)
treeccd2c3b62797d378ee7cc1872440483d328980ca /spec/outputs/try_catch.lua
parentfe317e2bdd9cb60b3c7cd347e21ce65cf90396e7 (diff)
downloadyuescript-0.23.6.tar.gz
yuescript-0.23.6.tar.bz2
yuescript-0.23.6.zip
fix more cases in try-catch syntax.v0.23.6
Diffstat (limited to 'spec/outputs/try_catch.lua')
-rw-r--r--spec/outputs/try_catch.lua89
1 files changed, 61 insertions, 28 deletions
diff --git a/spec/outputs/try_catch.lua b/spec/outputs/try_catch.lua
index 3c3dd3c..d4c80c1 100644
--- a/spec/outputs/try_catch.lua
+++ b/spec/outputs/try_catch.lua
@@ -1,9 +1,8 @@
1local _anon_func_0 = function(func, print) 1local _anon_func_0 = function(tb)
2 print("trying") 2 return tb.func
3 return func(1, 2, 3)
4end 3end
5local _anon_func_1 = function(tb) 4local _anon_func_1 = function(tb)
6 return tb.func 5 return tb.func()
7end 6end
8local _anon_func_2 = function(tb) 7local _anon_func_2 = function(tb)
9 return tb.func() 8 return tb.func()
@@ -12,69 +11,103 @@ local _anon_func_3 = function(tb)
12 return tb.func() 11 return tb.func()
13end 12end
14local _anon_func_4 = function(tb) 13local _anon_func_4 = function(tb)
15 return tb.func() 14 return tb:func(1, 2, 3)
16end 15end
17local _anon_func_5 = function(tb) 16local _anon_func_5 = function(tb)
18 return tb:func(1, 2, 3) 17 return tb.func(1)
19end 18end
20local _anon_func_6 = function(tb) 19local _anon_func_6 = function(tb)
21 return tb.func(1) 20 return tb.func(1)
22end 21end
23local _anon_func_7 = function(tb) 22local _anon_func_7 = function(a, b, c, tb)
24 return tb.func(1) 23 return tb.f(a, b, c)
25end 24end
26local f 25local f
27f = function() 26f = function()
28 xpcall(func, function(err) 27 xpcall(function()
28 return func(1, 2, 3)
29 end, function(err)
29 return print(err) 30 return print(err)
30 end, 1, 2, 3) 31 end)
31 xpcall(func, function(err) 32 xpcall(function()
33 return func(1, 2, 3)
34 end, function(err)
32 return print(err) 35 return print(err)
33 end, 1, 2, 3) 36 end)
34 pcall(_anon_func_0, func, print) 37 pcall(function()
38 print("trying")
39 return func(1, 2, 3)
40 end)
35 do 41 do
36 local success, result = xpcall(func, function(err) 42 local success, result = xpcall(function()
43 return func(1, 2, 3)
44 end, function(err)
37 return print(err) 45 return print(err)
38 end, 1, 2, 3) 46 end)
39 success, result = pcall(func, 1, 2, 3) 47 success, result = pcall(function()
48 return func(1, 2, 3)
49 end)
40 end 50 end
51 local tb = { }
52 pcall(_anon_func_0, tb)
41 pcall(_anon_func_1, tb) 53 pcall(_anon_func_1, tb)
42 pcall(_anon_func_2, tb) 54 pcall(_anon_func_2, tb)
43 pcall(_anon_func_3, tb) 55 pcall(_anon_func_3, tb)
44 pcall(_anon_func_4, tb) 56 pcall(_anon_func_4, tb)
45 pcall(_anon_func_5, tb) 57 pcall(_anon_func_5, tb)
46 pcall(_anon_func_6, tb) 58 pcall(_anon_func_6, tb)
47 pcall(_anon_func_7, tb) 59 if (xpcall(function()
48 if (xpcall(func, function(err) 60 return func(1)
61 end, function(err)
49 return print(err) 62 return print(err)
50 end, 1)) then 63 end)) then
51 print("OK") 64 print("OK")
52 end 65 end
53 if xpcall((func), function(err) 66 if xpcall(function()
67 return func(1)
68 end, function(err)
54 return print(err) 69 return print(err)
55 end, 1) then 70 end) then
56 print("OK") 71 print("OK")
57 end 72 end
58 do 73 do
59 do 74 do
60 local success, result = pcall(func, "abc", 123) 75 local success, result = pcall(function()
76 return func("abc", 123)
77 end)
61 if success then 78 if success then
62 print(result) 79 print(result)
63 end 80 end
64 end 81 end
65 local success, result = xpcall(func, function(err) 82 local success, result = xpcall(function()
83 return func("abc", 123)
84 end, function(err)
66 return print(err) 85 return print(err)
67 end, "abc", 123) 86 end)
68 success, result = xpcall(func, function(err) 87 success, result = xpcall(function()
88 return func("abc", 123)
89 end, function(err)
69 return print(err) 90 return print(err)
70 end, "abc", 123) 91 end)
71 if success then 92 if success then
72 print(result) 93 print(result)
73 end 94 end
74 end 95 end
75 do 96 do
76 pcall(func, 1, 2, 3) 97 pcall(function()
77 pcall(func, 1, 2, 3) 98 return func(1, 2, 3)
99 end)
100 pcall(function()
101 return func(1, 2, 3)
102 end)
103 end
104 do
105 x(function()
106 local tb, a, b, c
107 f = function()
108 return pcall(_anon_func_7, a, b, c, tb)
109 end
110 end)
78 end 111 end
79 return nil 112 return nil
80end 113end