aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2022-11-11 17:19:24 +0800
committerLi Jin <dragon-fly@qq.com>2022-11-11 17:19:24 +0800
commit60f8f00a022ac08701792b2897b72d8c99b50f52 (patch)
tree1f888c1c6b7907d22ffa842648b000fff989506f /spec/outputs
parent209fca096b0be5c47553f4c4a94d95de33b23d31 (diff)
downloadyuescript-0.15.13.tar.gz
yuescript-0.15.13.tar.bz2
yuescript-0.15.13.zip
fix default value issue when doing metatable destructuring.v0.15.13
Diffstat (limited to 'spec/outputs')
-rw-r--r--spec/outputs/destructure.lua105
1 files changed, 105 insertions, 0 deletions
diff --git a/spec/outputs/destructure.lua b/spec/outputs/destructure.lua
index 10ad2d0..f40a658 100644
--- a/spec/outputs/destructure.lua
+++ b/spec/outputs/destructure.lua
@@ -503,4 +503,109 @@ do
503 v1 = _obj_1[_tmp_1] 503 v1 = _obj_1[_tmp_1]
504 end 504 end
505end 505end
506do
507 local add, field
508 do
509 local _obj_0 = tb
510 add, field = getmetatable(_obj_0.a).__add, getmetatable(_obj_0.b)[fieldName]
511 if add == nil then
512 add = addFunc
513 end
514 if field == nil then
515 field = 123
516 end
517 end
518 local meta_field, abc, def
519 do
520 local _obj_0 = getmetatable(tb)
521 meta_field, abc, def = _obj_0["abc"], _obj_0[ [[any string]]], _obj_0['str']
522 if meta_field == nil then
523 meta_field = "def"
524 end
525 if abc == nil then
526 abc = 123
527 end
528 if def == nil then
529 def = { }
530 end
531 end
532 do
533 local _exp_0 = tb
534 local _tab_0 = "table" == type(_exp_0)
535 if _tab_0 then
536 do
537 local _obj_0 = _exp_0.a
538 if _obj_0 ~= nil then
539 do
540 local _obj_1 = getmetatable(_obj_0)
541 if _obj_1 ~= nil then
542 add = _obj_1.__add
543 end
544 end
545 end
546 end
547 do
548 local _obj_0 = _exp_0.b
549 if _obj_0 ~= nil then
550 do
551 local _obj_1 = getmetatable(_obj_0)
552 if _obj_1 ~= nil then
553 field = _obj_1[fieldName]
554 end
555 end
556 end
557 end
558 if add == nil then
559 add = addFunc
560 end
561 if field == nil then
562 field = 123
563 end
564 print(add, field)
565 end
566 end
567 do
568 local _exp_0 = tb
569 local _tab_0 = "table" == type(_exp_0)
570 if _tab_0 then
571 local _obj_0 = _exp_0
572 do
573 local _obj_1 = _obj_0.c
574 if _obj_1 ~= nil then
575 do
576 local _obj_2 = getmetatable(_obj_1)
577 if _obj_2 ~= nil then
578 meta_field = _obj_2["abc"]
579 end
580 end
581 end
582 end
583 if meta_field == nil then
584 meta_field = "def"
585 end
586 do
587 local _obj_1 = getmetatable(_obj_0)
588 do
589 local _obj_2 = _obj_1[ [[any string]]]
590 if _obj_2 ~= nil then
591 abc = _obj_2.d
592 end
593 end
594 do
595 local _obj_2 = _obj_1['str']
596 if _obj_2 ~= nil then
597 def = _obj_2.e
598 end
599 end
600 if abc == nil then
601 abc = 123
602 end
603 if def == nil then
604 def = { }
605 end
606 end
607 print(meta_field, abc, def)
608 end
609 end
610end
506return nil 611return nil