aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/attrib.lua
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2023-08-07 09:57:27 +0800
committerLi Jin <dragon-fly@qq.com>2023-08-07 09:57:27 +0800
commitc9b70274787ed8a77e7b47c4628197f0c6c1ba30 (patch)
treefae88047d312962aebfd97a0183c2f9f19e2cc76 /spec/outputs/attrib.lua
parentaff8e69bf589d2ee5f4a7b72b7e2f643d55b87fa (diff)
downloadyuescript-c9b70274787ed8a77e7b47c4628197f0c6c1ba30.tar.gz
yuescript-c9b70274787ed8a77e7b47c4628197f0c6c1ba30.tar.bz2
yuescript-c9b70274787ed8a77e7b47c4628197f0c6c1ba30.zip
fixing issue #143 and #144.
Diffstat (limited to 'spec/outputs/attrib.lua')
-rw-r--r--spec/outputs/attrib.lua45
1 files changed, 34 insertions, 11 deletions
diff --git a/spec/outputs/attrib.lua b/spec/outputs/attrib.lua
index aaff747..919b7e0 100644
--- a/spec/outputs/attrib.lua
+++ b/spec/outputs/attrib.lua
@@ -1,14 +1,35 @@
1local a <const>, b <const>, c <const>, d <const> = 1, 2, 3, 4
1do 2do
2 local a <close>, b <close> = setmetatable({ }, { 3 local a, b = setmetatable({ }, {
3 __close = function(self) 4 __close = function(self)
4 return print("closed") 5 return print("closed")
5 end 6 end
6 }) 7 })
8 local _close_0 <close> = a
9 local _close_1 <close> = b
7 local c <const>, d <const> = 123, 'abc' 10 local c <const>, d <const> = 123, 'abc'
8 close(a, b) 11 close(a, b)
9 const(c, d) 12 const(c, d)
10end 13end
11do 14do
15 local a <const> = f()
16 local b, c, d
17 do
18 local _obj_0, _obj_1 = f1()
19 b, c = _obj_0[1], _obj_0[2]
20 d = _obj_1[1]
21 end
22end
23do
24 local a, b, c, d
25 do
26 local _obj_0, _obj_1, _obj_2 = f()
27 a = _obj_0
28 b, c = _obj_1[1], _obj_1[2]
29 d = _obj_2[1]
30 end
31end
32do
12 local v <close> = (function() 33 local v <close> = (function()
13 if flag then 34 if flag then
14 return func() 35 return func()
@@ -66,7 +87,7 @@ do
66 return _with_0 87 return _with_0
67 end)() 88 end)()
68 local _ <close> = setmetatable({ }, { 89 local _ <close> = setmetatable({ }, {
69 __close = function(self) 90 __close = function()
70 return print("second") 91 return print("second")
71 end 92 end
72 }) 93 })
@@ -82,17 +103,19 @@ local _defers = setmetatable({ }, {
82 self[#self] = nil 103 self[#self] = nil
83 end 104 end
84}) 105})
106local def
107def = function(item)
108 _defers[#_defers + 1] = item
109 return _defers
110end
85do 111do
86 _defers[#_defers + 1] = function() 112 local _ <close> = def(function()
87 return print(3) 113 return print(3)
88 end 114 end)
89 local _ <close> = _defers 115 local _ <close> = def(function()
90 _defers[#_defers + 1] = function()
91 return print(2) 116 return print(2)
92 end 117 end)
93 local _ <close> = _defers 118 local _ <close> = def(function()
94 _defers[#_defers + 1] = function()
95 return print(1) 119 return print(1)
96 end 120 end)
97 local _ <close> = _defers
98end 121end