aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/destructure.lua
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2022-12-28 15:55:15 +0800
committerLi Jin <dragon-fly@qq.com>2022-12-28 15:55:15 +0800
commitdba662758192b41648e6c1201083d83926f07783 (patch)
tree4eca06097fce6ac52bbf5276a6ac2da4affb90d0 /spec/outputs/destructure.lua
parent5e453de810f8a5e54351609857d742481f057498 (diff)
downloadyuescript-dba662758192b41648e6c1201083d83926f07783.tar.gz
yuescript-dba662758192b41648e6c1201083d83926f07783.tar.bz2
yuescript-dba662758192b41648e6c1201083d83926f07783.zip
add metamethods checking.
Diffstat (limited to 'spec/outputs/destructure.lua')
-rw-r--r--spec/outputs/destructure.lua72
1 files changed, 38 insertions, 34 deletions
diff --git a/spec/outputs/destructure.lua b/spec/outputs/destructure.lua
index 8953a2a..cb0eb3f 100644
--- a/spec/outputs/destructure.lua
+++ b/spec/outputs/destructure.lua
@@ -288,28 +288,31 @@ do
288 end) 288 end)
289 end 289 end
290 end 290 end
291 local _obj_0 = tb 291 local mtx, y, zItem, index
292 local mtx, y, zItem = getmetatable(_obj_0.x), _obj_0.y, _obj_0.z 292 do
293 if mtx == nil then 293 local _obj_0 = tb
294 mtx = { } 294 mtx, y, zItem = getmetatable(_obj_0.x), _obj_0.y, _obj_0.z
295 end 295 if mtx == nil then
296 local index = getmetatable(_obj_0).__index 296 mtx = { }
297 if index == nil then 297 end
298 index = function() 298 index = getmetatable(_obj_0).__index
299 return nil 299 if index == nil then
300 index = function()
301 return nil
302 end
300 end 303 end
301 end 304 end
302 do 305 do
303 local _tmp_0 306 local _tmp_0
304 do 307 do
305 local _obj_1 = getmetatable(tb) 308 local _obj_0 = getmetatable(tb)
306 _tmp_0 = _obj_1.func 309 _tmp_0 = _obj_0.func
307 end 310 end
308 if _tmp_0 == nil then 311 if _tmp_0 == nil then
309 do 312 do
310 local _obj_1 = item 313 local _obj_0 = item
311 if _obj_1 ~= nil then 314 if _obj_0 ~= nil then
312 _tmp_0 = _obj_1.defVal 315 _tmp_0 = _obj_0.defVal
313 end 316 end
314 end 317 end
315 end 318 end
@@ -455,9 +458,12 @@ do
455 end 458 end
456end 459end
457do 460do
458 local _obj_0 = tb 461 local value, value_meta
459 local value = _obj_0[name] 462 do
460 local value_meta = getmetatable(_obj_0)[name] 463 local _obj_0 = tb
464 value = _obj_0[name]
465 value_meta = getmetatable(_obj_0)[name]
466 end
461end 467end
462do 468do
463 local tostring, add 469 local tostring, add
@@ -492,16 +498,15 @@ do
492end 498end
493do 499do
494 local tb = { } 500 local tb = { }
495 local _obj_0 = tb
496 do 501 do
497 local _tmp_0 = c() 502 local _tmp_0 = c()
498 local v2 = _obj_0[_tmp_0] 503 local v2 = tb[_tmp_0]
499 end 504 end
500 local v1 505 local v1
501 do 506 do
502 local _obj_1 = getmetatable(_obj_0) 507 local _obj_0 = getmetatable(tb)
503 local _tmp_1 = a + b 508 local _tmp_1 = a + b
504 v1 = _obj_1[_tmp_1] 509 v1 = _obj_0[_tmp_1]
505 end 510 end
506end 511end
507do 512do
@@ -575,16 +580,15 @@ do
575 local _tab_0 = type(_exp_0) 580 local _tab_0 = type(_exp_0)
576 _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 581 _tab_0 = "table" == _tab_0 or "userdata" == _tab_0
577 if _tab_0 then 582 if _tab_0 then
578 local _obj_0 = _exp_0
579 do 583 do
580 local _obj_1 = _obj_0.c 584 local _obj_0 = _exp_0.c
581 local _type_0 = type(_obj_1) 585 local _type_0 = type(_obj_0)
582 if "table" == _type_0 or "userdata" == _type_0 then 586 if "table" == _type_0 or "userdata" == _type_0 then
583 do 587 do
584 local _obj_2 = getmetatable(_obj_1) 588 local _obj_1 = getmetatable(_obj_0)
585 local _type_1 = type(_obj_2) 589 local _type_1 = type(_obj_1)
586 if "table" == _type_1 or "userdata" == _type_1 then 590 if "table" == _type_1 or "userdata" == _type_1 then
587 meta_field = _obj_2["abc"] 591 meta_field = _obj_1["abc"]
588 end 592 end
589 end 593 end
590 end 594 end
@@ -593,19 +597,19 @@ do
593 meta_field = "def" 597 meta_field = "def"
594 end 598 end
595 do 599 do
596 local _obj_1 = getmetatable(_obj_0) 600 local _obj_0 = getmetatable(_exp_0)
597 do 601 do
598 local _obj_2 = _obj_1[ [[any string]]] 602 local _obj_1 = _obj_0[ [[any string]]]
599 local _type_0 = type(_obj_2) 603 local _type_0 = type(_obj_1)
600 if "table" == _type_0 or "userdata" == _type_0 then 604 if "table" == _type_0 or "userdata" == _type_0 then
601 abc = _obj_2.d 605 abc = _obj_1.d
602 end 606 end
603 end 607 end
604 do 608 do
605 local _obj_2 = _obj_1['str'] 609 local _obj_1 = _obj_0['str']
606 local _type_0 = type(_obj_2) 610 local _type_0 = type(_obj_1)
607 if "table" == _type_0 or "userdata" == _type_0 then 611 if "table" == _type_0 or "userdata" == _type_0 then
608 def = _obj_2.e 612 def = _obj_1.e
609 end 613 end
610 end 614 end
611 if abc == nil then 615 if abc == nil then