diff options
| author | Li Jin <dragon-fly@qq.com> | 2024-03-25 08:25:06 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2024-03-25 08:25:06 +0800 |
| commit | 21004f1fb9b2f6129a231a6c8d99179f0d6e3edf (patch) | |
| tree | d94c69b9758e0e8ff38dc5f23bc888d084846110 | |
| parent | 4e3656da3711fd045fdf90dec7084bd4556c5b7f (diff) | |
| download | yuescript-21004f1fb9b2f6129a231a6c8d99179f0d6e3edf.tar.gz yuescript-21004f1fb9b2f6129a231a6c8d99179f0d6e3edf.tar.bz2 yuescript-21004f1fb9b2f6129a231a6c8d99179f0d6e3edf.zip | |
remove one more redundant 'do' block from destructuring.
| -rw-r--r-- | spec/outputs/5.1/attrib.lua | 12 | ||||
| -rw-r--r-- | spec/outputs/assign.lua | 12 | ||||
| -rw-r--r-- | spec/outputs/attrib.lua | 12 | ||||
| -rw-r--r-- | spec/outputs/backcall.lua | 14 | ||||
| -rw-r--r-- | spec/outputs/codes_from_doc.lua | 104 | ||||
| -rw-r--r-- | spec/outputs/codes_from_doc_zh.lua | 104 | ||||
| -rw-r--r-- | spec/outputs/cond.lua | 6 | ||||
| -rw-r--r-- | spec/outputs/destructure.lua | 198 | ||||
| -rw-r--r-- | spec/outputs/import.lua | 12 | ||||
| -rw-r--r-- | spec/outputs/lists.lua | 16 | ||||
| -rw-r--r-- | spec/outputs/local.lua | 6 | ||||
| -rw-r--r-- | spec/outputs/metatable.lua | 24 | ||||
| -rw-r--r-- | spec/outputs/unicode/assign.lua | 12 | ||||
| -rw-r--r-- | spec/outputs/unicode/backcall.lua | 14 | ||||
| -rw-r--r-- | spec/outputs/unicode/cond.lua | 6 | ||||
| -rw-r--r-- | spec/outputs/unicode/destructure.lua | 198 | ||||
| -rw-r--r-- | spec/outputs/unicode/import.lua | 12 | ||||
| -rw-r--r-- | spec/outputs/unicode/local.lua | 6 | ||||
| -rw-r--r-- | spec/outputs/unicode/metatable.lua | 24 | ||||
| -rw-r--r-- | src/yuescript/yue_compiler.cpp | 28 |
20 files changed, 320 insertions, 500 deletions
diff --git a/spec/outputs/5.1/attrib.lua b/spec/outputs/5.1/attrib.lua index 0edaf0e..9cacd97 100644 --- a/spec/outputs/5.1/attrib.lua +++ b/spec/outputs/5.1/attrib.lua | |||
| @@ -38,13 +38,11 @@ do | |||
| 38 | end | 38 | end |
| 39 | do | 39 | do |
| 40 | local a, b | 40 | local a, b |
| 41 | do | 41 | local _obj_0 = { |
| 42 | local _obj_0 = { | 42 | 2, |
| 43 | 2, | 43 | 3 |
| 44 | 3 | 44 | } |
| 45 | } | 45 | a, b = _obj_0[1], _obj_0[2] |
| 46 | a, b = _obj_0[1], _obj_0[2] | ||
| 47 | end | ||
| 48 | end | 46 | end |
| 49 | local _anon_func_0 = function(_close_1, error, f, _arg_0, ...) | 47 | local _anon_func_0 = function(_close_1, error, f, _arg_0, ...) |
| 50 | do | 48 | do |
diff --git a/spec/outputs/assign.lua b/spec/outputs/assign.lua index 61b0843..5552f73 100644 --- a/spec/outputs/assign.lua +++ b/spec/outputs/assign.lua | |||
| @@ -53,15 +53,11 @@ return _(function() | |||
| 53 | do | 53 | do |
| 54 | local a, b | 54 | local a, b |
| 55 | if "a" == c then | 55 | if "a" == c then |
| 56 | do | 56 | local _obj_0 = tb |
| 57 | local _obj_0 = tb | 57 | a, b = _obj_0[1], _obj_0[2] |
| 58 | a, b = _obj_0[1], _obj_0[2] | ||
| 59 | end | ||
| 60 | elseif "b" == c then | 58 | elseif "b" == c then |
| 61 | do | 59 | local _obj_0 = f() |
| 62 | local _obj_0 = f() | 60 | a, b = _obj_0[1], _obj_0[2] |
| 63 | a, b = _obj_0[1], _obj_0[2] | ||
| 64 | end | ||
| 65 | end | 61 | end |
| 66 | end | 62 | end |
| 67 | if x then | 63 | if x then |
diff --git a/spec/outputs/attrib.lua b/spec/outputs/attrib.lua index f6b0784..626944e 100644 --- a/spec/outputs/attrib.lua +++ b/spec/outputs/attrib.lua | |||
| @@ -27,13 +27,11 @@ do | |||
| 27 | end | 27 | end |
| 28 | do | 28 | do |
| 29 | local a, b | 29 | local a, b |
| 30 | do | 30 | local _obj_0 = { |
| 31 | local _obj_0 = { | 31 | 2, |
| 32 | 2, | 32 | 3 |
| 33 | 3 | 33 | } |
| 34 | } | 34 | a, b = _obj_0[1], _obj_0[2] |
| 35 | a, b = _obj_0[1], _obj_0[2] | ||
| 36 | end | ||
| 37 | end | 35 | end |
| 38 | do | 36 | do |
| 39 | local v <close> = (function() | 37 | local v <close> = (function() |
diff --git a/spec/outputs/backcall.lua b/spec/outputs/backcall.lua index 38e5754..cb8b2b7 100644 --- a/spec/outputs/backcall.lua +++ b/spec/outputs/backcall.lua | |||
| @@ -80,15 +80,13 @@ end | |||
| 80 | do | 80 | do |
| 81 | local result, msg | 81 | local result, msg |
| 82 | do | 82 | do |
| 83 | do | 83 | local _obj_0 = receiveAsync("filename.txt", function(data) |
| 84 | local _obj_0 = receiveAsync("filename.txt", function(data) | 84 | print(data) |
| 85 | print(data) | 85 | return processAsync(data, function(info) |
| 86 | return processAsync(data, function(info) | 86 | return check(info) |
| 87 | return check(info) | ||
| 88 | end) | ||
| 89 | end) | 87 | end) |
| 90 | result, msg = _obj_0.result, _obj_0.msg | 88 | end) |
| 91 | end | 89 | result, msg = _obj_0.result, _obj_0.msg |
| 92 | end | 90 | end |
| 93 | print(result, msg) | 91 | print(result, msg) |
| 94 | local totalSize = reduce(((function() | 92 | local totalSize = reduce(((function() |
diff --git a/spec/outputs/codes_from_doc.lua b/spec/outputs/codes_from_doc.lua index 1f593db..ca54086 100644 --- a/spec/outputs/codes_from_doc.lua +++ b/spec/outputs/codes_from_doc.lua | |||
| @@ -359,10 +359,8 @@ do | |||
| 359 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt | 359 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt |
| 360 | end | 360 | end |
| 361 | local one, two, ch | 361 | local one, two, ch |
| 362 | do | 362 | local _obj_0 = require("export") |
| 363 | local _obj_0 = require("export") | 363 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] |
| 364 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] | ||
| 365 | end | ||
| 366 | end | 364 | end |
| 367 | local _module_0 = { } | 365 | local _module_0 = { } |
| 368 | local a, b, c = 1, 2, 3 | 366 | local a, b, c = 1, 2, 3 |
| @@ -527,36 +525,26 @@ local obj2 = { | |||
| 527 | local first, second = obj2.numbers[1], obj2.numbers[2] | 525 | local first, second = obj2.numbers[1], obj2.numbers[2] |
| 528 | print(first, second, color) | 526 | print(first, second, color) |
| 529 | local first, second, color | 527 | local first, second, color |
| 530 | do | 528 | local _obj_0 = obj2 |
| 531 | local _obj_0 = obj2 | 529 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color |
| 532 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color | ||
| 533 | end | ||
| 534 | local concat, insert | 530 | local concat, insert |
| 535 | do | 531 | local _obj_0 = table |
| 536 | local _obj_0 = table | 532 | concat, insert = _obj_0.concat, _obj_0.insert |
| 537 | concat, insert = _obj_0.concat, _obj_0.insert | ||
| 538 | end | ||
| 539 | local mix, max, rand | 533 | local mix, max, rand |
| 540 | do | 534 | local _obj_0 = math |
| 541 | local _obj_0 = math | 535 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random |
| 542 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random | ||
| 543 | end | ||
| 544 | local name, job | 536 | local name, job |
| 545 | do | 537 | local _obj_0 = person |
| 546 | local _obj_0 = person | 538 | name, job = _obj_0.name, _obj_0.job |
| 547 | name, job = _obj_0.name, _obj_0.job | 539 | if name == nil then |
| 548 | if name == nil then | 540 | name = "nameless" |
| 549 | name = "nameless" | ||
| 550 | end | ||
| 551 | if job == nil then | ||
| 552 | job = "jobless" | ||
| 553 | end | ||
| 554 | end | 541 | end |
| 555 | local two, four | 542 | if job == nil then |
| 556 | do | 543 | job = "jobless" |
| 557 | local _obj_0 = items | ||
| 558 | two, four = _obj_0[2], _obj_0[4] | ||
| 559 | end | 544 | end |
| 545 | local two, four | ||
| 546 | local _obj_0 = items | ||
| 547 | two, four = _obj_0[2], _obj_0[4] | ||
| 560 | local tuples = { | 548 | local tuples = { |
| 561 | { | 549 | { |
| 562 | "hello", | 550 | "hello", |
| @@ -647,10 +635,8 @@ local _ <close> = setmetatable({ }, { | |||
| 647 | end | 635 | end |
| 648 | }) | 636 | }) |
| 649 | local a, b, c, d | 637 | local a, b, c, d |
| 650 | do | 638 | local _obj_0 = tb |
| 651 | local _obj_0 = tb | 639 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] |
| 652 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] | ||
| 653 | end | ||
| 654 | local some_string = "Here is a string\n that has a line break in it." | 640 | local some_string = "Here is a string\n that has a line break in it." |
| 655 | print("I am " .. tostring(math.random() * 100) .. "% sure.") | 641 | print("I am " .. tostring(math.random() * 100) .. "% sure.") |
| 656 | local integer = 1000000 | 642 | local integer = 1000000 |
| @@ -2360,10 +2346,8 @@ do | |||
| 2360 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt | 2346 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt |
| 2361 | end | 2347 | end |
| 2362 | local one, two, ch | 2348 | local one, two, ch |
| 2363 | do | 2349 | local _obj_0 = require("export") |
| 2364 | local _obj_0 = require("export") | 2350 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] |
| 2365 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] | ||
| 2366 | end | ||
| 2367 | end | 2351 | end |
| 2368 | local _module_0 = { } | 2352 | local _module_0 = { } |
| 2369 | local a, b, c = 1, 2, 3 | 2353 | local a, b, c = 1, 2, 3 |
| @@ -2528,36 +2512,26 @@ local obj2 = { | |||
| 2528 | local first, second = obj2.numbers[1], obj2.numbers[2] | 2512 | local first, second = obj2.numbers[1], obj2.numbers[2] |
| 2529 | print(first, second, color) | 2513 | print(first, second, color) |
| 2530 | local first, second, color | 2514 | local first, second, color |
| 2531 | do | 2515 | local _obj_0 = obj2 |
| 2532 | local _obj_0 = obj2 | 2516 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color |
| 2533 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color | ||
| 2534 | end | ||
| 2535 | local concat, insert | 2517 | local concat, insert |
| 2536 | do | 2518 | local _obj_0 = table |
| 2537 | local _obj_0 = table | 2519 | concat, insert = _obj_0.concat, _obj_0.insert |
| 2538 | concat, insert = _obj_0.concat, _obj_0.insert | ||
| 2539 | end | ||
| 2540 | local mix, max, rand | 2520 | local mix, max, rand |
| 2541 | do | 2521 | local _obj_0 = math |
| 2542 | local _obj_0 = math | 2522 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random |
| 2543 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random | ||
| 2544 | end | ||
| 2545 | local name, job | 2523 | local name, job |
| 2546 | do | 2524 | local _obj_0 = person |
| 2547 | local _obj_0 = person | 2525 | name, job = _obj_0.name, _obj_0.job |
| 2548 | name, job = _obj_0.name, _obj_0.job | 2526 | if name == nil then |
| 2549 | if name == nil then | 2527 | name = "nameless" |
| 2550 | name = "nameless" | ||
| 2551 | end | ||
| 2552 | if job == nil then | ||
| 2553 | job = "jobless" | ||
| 2554 | end | ||
| 2555 | end | 2528 | end |
| 2556 | local two, four | 2529 | if job == nil then |
| 2557 | do | 2530 | job = "jobless" |
| 2558 | local _obj_0 = items | ||
| 2559 | two, four = _obj_0[2], _obj_0[4] | ||
| 2560 | end | 2531 | end |
| 2532 | local two, four | ||
| 2533 | local _obj_0 = items | ||
| 2534 | two, four = _obj_0[2], _obj_0[4] | ||
| 2561 | local tuples = { | 2535 | local tuples = { |
| 2562 | { | 2536 | { |
| 2563 | "hello", | 2537 | "hello", |
| @@ -2648,10 +2622,8 @@ local _ <close> = setmetatable({ }, { | |||
| 2648 | end | 2622 | end |
| 2649 | }) | 2623 | }) |
| 2650 | local a, b, c, d | 2624 | local a, b, c, d |
| 2651 | do | 2625 | local _obj_0 = tb |
| 2652 | local _obj_0 = tb | 2626 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] |
| 2653 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] | ||
| 2654 | end | ||
| 2655 | local some_string = "Here is a string\n that has a line break in it." | 2627 | local some_string = "Here is a string\n that has a line break in it." |
| 2656 | print("I am " .. tostring(math.random() * 100) .. "% sure.") | 2628 | print("I am " .. tostring(math.random() * 100) .. "% sure.") |
| 2657 | local integer = 1000000 | 2629 | local integer = 1000000 |
diff --git a/spec/outputs/codes_from_doc_zh.lua b/spec/outputs/codes_from_doc_zh.lua index fff0bdd..dfa6efd 100644 --- a/spec/outputs/codes_from_doc_zh.lua +++ b/spec/outputs/codes_from_doc_zh.lua | |||
| @@ -359,10 +359,8 @@ do | |||
| 359 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt | 359 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt |
| 360 | end | 360 | end |
| 361 | local one, two, ch | 361 | local one, two, ch |
| 362 | do | 362 | local _obj_0 = require("export") |
| 363 | local _obj_0 = require("export") | 363 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] |
| 364 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] | ||
| 365 | end | ||
| 366 | end | 364 | end |
| 367 | local _module_0 = { } | 365 | local _module_0 = { } |
| 368 | local a, b, c = 1, 2, 3 | 366 | local a, b, c = 1, 2, 3 |
| @@ -527,36 +525,26 @@ local obj2 = { | |||
| 527 | local first, second = obj2.numbers[1], obj2.numbers[2] | 525 | local first, second = obj2.numbers[1], obj2.numbers[2] |
| 528 | print(first, second, color) | 526 | print(first, second, color) |
| 529 | local first, second, color | 527 | local first, second, color |
| 530 | do | 528 | local _obj_0 = obj2 |
| 531 | local _obj_0 = obj2 | 529 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color |
| 532 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color | ||
| 533 | end | ||
| 534 | local concat, insert | 530 | local concat, insert |
| 535 | do | 531 | local _obj_0 = table |
| 536 | local _obj_0 = table | 532 | concat, insert = _obj_0.concat, _obj_0.insert |
| 537 | concat, insert = _obj_0.concat, _obj_0.insert | ||
| 538 | end | ||
| 539 | local mix, max, rand | 533 | local mix, max, rand |
| 540 | do | 534 | local _obj_0 = math |
| 541 | local _obj_0 = math | 535 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random |
| 542 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random | ||
| 543 | end | ||
| 544 | local name, job | 536 | local name, job |
| 545 | do | 537 | local _obj_0 = person |
| 546 | local _obj_0 = person | 538 | name, job = _obj_0.name, _obj_0.job |
| 547 | name, job = _obj_0.name, _obj_0.job | 539 | if name == nil then |
| 548 | if name == nil then | 540 | name = "nameless" |
| 549 | name = "nameless" | ||
| 550 | end | ||
| 551 | if job == nil then | ||
| 552 | job = "jobless" | ||
| 553 | end | ||
| 554 | end | 541 | end |
| 555 | local two, four | 542 | if job == nil then |
| 556 | do | 543 | job = "jobless" |
| 557 | local _obj_0 = items | ||
| 558 | two, four = _obj_0[2], _obj_0[4] | ||
| 559 | end | 544 | end |
| 545 | local two, four | ||
| 546 | local _obj_0 = items | ||
| 547 | two, four = _obj_0[2], _obj_0[4] | ||
| 560 | local tuples = { | 548 | local tuples = { |
| 561 | { | 549 | { |
| 562 | "hello", | 550 | "hello", |
| @@ -647,10 +635,8 @@ local _ <close> = setmetatable({ }, { | |||
| 647 | end | 635 | end |
| 648 | }) | 636 | }) |
| 649 | local a, b, c, d | 637 | local a, b, c, d |
| 650 | do | 638 | local _obj_0 = tb |
| 651 | local _obj_0 = tb | 639 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] |
| 652 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] | ||
| 653 | end | ||
| 654 | local some_string = "这是一个字符串\n 并包括一个换行。" | 640 | local some_string = "这是一个字符串\n 并包括一个换行。" |
| 655 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") | 641 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") |
| 656 | local integer = 1000000 | 642 | local integer = 1000000 |
| @@ -2354,10 +2340,8 @@ do | |||
| 2354 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt | 2340 | C, Ct, Cmt = _obj_0.C, _obj_0.Ct, _obj_0.Cmt |
| 2355 | end | 2341 | end |
| 2356 | local one, two, ch | 2342 | local one, two, ch |
| 2357 | do | 2343 | local _obj_0 = require("export") |
| 2358 | local _obj_0 = require("export") | 2344 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] |
| 2359 | one, two, ch = _obj_0[1], _obj_0[2], _obj_0.Something.umm[1] | ||
| 2360 | end | ||
| 2361 | end | 2345 | end |
| 2362 | local _module_0 = { } | 2346 | local _module_0 = { } |
| 2363 | local a, b, c = 1, 2, 3 | 2347 | local a, b, c = 1, 2, 3 |
| @@ -2522,36 +2506,26 @@ local obj2 = { | |||
| 2522 | local first, second = obj2.numbers[1], obj2.numbers[2] | 2506 | local first, second = obj2.numbers[1], obj2.numbers[2] |
| 2523 | print(first, second, color) | 2507 | print(first, second, color) |
| 2524 | local first, second, color | 2508 | local first, second, color |
| 2525 | do | 2509 | local _obj_0 = obj2 |
| 2526 | local _obj_0 = obj2 | 2510 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color |
| 2527 | first, second, color = _obj_0.numbers[1], _obj_0.numbers[2], _obj_0.properties.color | ||
| 2528 | end | ||
| 2529 | local concat, insert | 2511 | local concat, insert |
| 2530 | do | 2512 | local _obj_0 = table |
| 2531 | local _obj_0 = table | 2513 | concat, insert = _obj_0.concat, _obj_0.insert |
| 2532 | concat, insert = _obj_0.concat, _obj_0.insert | ||
| 2533 | end | ||
| 2534 | local mix, max, rand | 2514 | local mix, max, rand |
| 2535 | do | 2515 | local _obj_0 = math |
| 2536 | local _obj_0 = math | 2516 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random |
| 2537 | mix, max, rand = _obj_0.mix, _obj_0.max, _obj_0.random | ||
| 2538 | end | ||
| 2539 | local name, job | 2517 | local name, job |
| 2540 | do | 2518 | local _obj_0 = person |
| 2541 | local _obj_0 = person | 2519 | name, job = _obj_0.name, _obj_0.job |
| 2542 | name, job = _obj_0.name, _obj_0.job | 2520 | if name == nil then |
| 2543 | if name == nil then | 2521 | name = "nameless" |
| 2544 | name = "nameless" | ||
| 2545 | end | ||
| 2546 | if job == nil then | ||
| 2547 | job = "jobless" | ||
| 2548 | end | ||
| 2549 | end | 2522 | end |
| 2550 | local two, four | 2523 | if job == nil then |
| 2551 | do | 2524 | job = "jobless" |
| 2552 | local _obj_0 = items | ||
| 2553 | two, four = _obj_0[2], _obj_0[4] | ||
| 2554 | end | 2525 | end |
| 2526 | local two, four | ||
| 2527 | local _obj_0 = items | ||
| 2528 | two, four = _obj_0[2], _obj_0[4] | ||
| 2555 | local tuples = { | 2529 | local tuples = { |
| 2556 | { | 2530 | { |
| 2557 | "hello", | 2531 | "hello", |
| @@ -2642,10 +2616,8 @@ local _ <close> = setmetatable({ }, { | |||
| 2642 | end | 2616 | end |
| 2643 | }) | 2617 | }) |
| 2644 | local a, b, c, d | 2618 | local a, b, c, d |
| 2645 | do | 2619 | local _obj_0 = tb |
| 2646 | local _obj_0 = tb | 2620 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] |
| 2647 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] | ||
| 2648 | end | ||
| 2649 | local some_string = "这是一个字符串\n 并包括一个换行。" | 2621 | local some_string = "这是一个字符串\n 并包括一个换行。" |
| 2650 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") | 2622 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") |
| 2651 | local integer = 1000000 | 2623 | local integer = 1000000 |
diff --git a/spec/outputs/cond.lua b/spec/outputs/cond.lua index 5a5aae5..083419a 100644 --- a/spec/outputs/cond.lua +++ b/spec/outputs/cond.lua | |||
| @@ -318,10 +318,8 @@ do | |||
| 318 | if _des_0 then | 318 | if _des_0 then |
| 319 | _M = _des_0 | 319 | _M = _des_0 |
| 320 | local Thing = _M.Thing | 320 | local Thing = _M.Thing |
| 321 | do | 321 | local _obj_0 = _M |
| 322 | local _obj_0 = _M | 322 | a, b = _obj_0.a, _obj_0.b |
| 323 | a, b = _obj_0.a, _obj_0.b | ||
| 324 | end | ||
| 325 | end | 323 | end |
| 326 | end | 324 | end |
| 327 | end | 325 | end |
diff --git a/spec/outputs/destructure.lua b/spec/outputs/destructure.lua index 224ed2d..2d0d46f 100644 --- a/spec/outputs/destructure.lua +++ b/spec/outputs/destructure.lua | |||
| @@ -10,10 +10,8 @@ do | |||
| 10 | a, b, c = _obj_0[1][1], _obj_0[2], _obj_0[3][1] | 10 | a, b, c = _obj_0[1][1], _obj_0[2], _obj_0[3][1] |
| 11 | end | 11 | end |
| 12 | local hello, world | 12 | local hello, world |
| 13 | do | 13 | local _obj_0 = value |
| 14 | local _obj_0 = value | 14 | hello, world = _obj_0.hello, _obj_0.world |
| 15 | hello, world = _obj_0.hello, _obj_0.world | ||
| 16 | end | ||
| 17 | end | 15 | end |
| 18 | do | 16 | do |
| 19 | local no, thing | 17 | local no, thing |
| @@ -49,17 +47,13 @@ do | |||
| 49 | end | 47 | end |
| 50 | do | 48 | do |
| 51 | c = nil | 49 | c = nil |
| 52 | do | 50 | local _obj_0 = tbl |
| 53 | local _obj_0 = tbl | 51 | a, b = _obj_0.a, _obj_0.b |
| 54 | a, b = _obj_0.a, _obj_0.b | ||
| 55 | end | ||
| 56 | end | 52 | end |
| 57 | do | 53 | do |
| 58 | a = tbl | 54 | a = tbl |
| 59 | do | 55 | local _obj_0 = _ |
| 60 | local _obj_0 = _ | 56 | b, c = _obj_0.b, _obj_0.c |
| 61 | b, c = _obj_0.b, _obj_0.c | ||
| 62 | end | ||
| 63 | end | 57 | end |
| 64 | do | 58 | do |
| 65 | b = _ | 59 | b = _ |
| @@ -88,17 +82,13 @@ do | |||
| 88 | end | 82 | end |
| 89 | do | 83 | do |
| 90 | local c, e | 84 | local c, e |
| 91 | do | 85 | local _obj_0 = tb |
| 92 | local _obj_0 = tb | 86 | c, e = _obj_0.a.b, _obj_0.a.d |
| 93 | c, e = _obj_0.a.b, _obj_0.a.d | ||
| 94 | end | ||
| 95 | end | 87 | end |
| 96 | do | 88 | do |
| 97 | local c, e, f | 89 | local c, e, f |
| 98 | do | 90 | local _obj_0 = tb |
| 99 | local _obj_0 = tb | 91 | c, e, f = _obj_0.a[1].b, _obj_0.a[2].d, _obj_0.a[3] |
| 100 | c, e, f = _obj_0.a[1].b, _obj_0.a[2].d, _obj_0.a[3] | ||
| 101 | end | ||
| 102 | end | 92 | end |
| 103 | do | 93 | do |
| 104 | self.world = x[1] | 94 | self.world = x[1] |
| @@ -169,10 +159,8 @@ do | |||
| 169 | end | 159 | end |
| 170 | do | 160 | do |
| 171 | local a, b, c | 161 | local a, b, c |
| 172 | do | 162 | local _obj_0 = z |
| 173 | local _obj_0 = z | 163 | a, b, c = _obj_0[1], _obj_0[2], _obj_0[3] |
| 174 | a, b, c = _obj_0[1], _obj_0[2], _obj_0[3] | ||
| 175 | end | ||
| 176 | end | 164 | end |
| 177 | local _ | 165 | local _ |
| 178 | _ = function(z) | 166 | _ = function(z) |
| @@ -189,21 +177,17 @@ do | |||
| 189 | end | 177 | end |
| 190 | do | 178 | do |
| 191 | local a, b, c | 179 | local a, b, c |
| 192 | do | 180 | local _obj_0 = thing |
| 193 | local _obj_0 = thing | 181 | a, b, c = _obj_0["if"][1], _obj_0["if"][2], _obj_0["if"][3] |
| 194 | a, b, c = _obj_0["if"][1], _obj_0["if"][2], _obj_0["if"][3] | ||
| 195 | end | ||
| 196 | end | 182 | end |
| 197 | do | 183 | do |
| 198 | local a, b | 184 | local a, b |
| 199 | if true then | 185 | if true then |
| 200 | do | 186 | local _obj_0 = { |
| 201 | local _obj_0 = { | 187 | a = "Hello", |
| 202 | a = "Hello", | 188 | b = "World" |
| 203 | b = "World" | 189 | } |
| 204 | } | 190 | a, b = _obj_0.a, _obj_0.b |
| 205 | a, b = _obj_0.a, _obj_0.b | ||
| 206 | end | ||
| 207 | end | 191 | end |
| 208 | local days, hours, mins, secs | 192 | local days, hours, mins, secs |
| 209 | do | 193 | do |
| @@ -305,41 +289,33 @@ do | |||
| 305 | end | 289 | end |
| 306 | end | 290 | end |
| 307 | end | 291 | end |
| 308 | do | 292 | local _tmp_0 |
| 309 | local _tmp_0 | 293 | local _obj_0 = getmetatable(tb) |
| 310 | do | 294 | _tmp_0 = _obj_0.func |
| 311 | local _obj_0 = getmetatable(tb) | 295 | if _tmp_0 == nil then |
| 312 | _tmp_0 = _obj_0.func | 296 | local _obj_1 = item |
| 297 | if _obj_1 ~= nil then | ||
| 298 | _tmp_0 = _obj_1.defVal | ||
| 313 | end | 299 | end |
| 314 | if _tmp_0 == nil then | ||
| 315 | local _obj_0 = item | ||
| 316 | if _obj_0 ~= nil then | ||
| 317 | _tmp_0 = _obj_0.defVal | ||
| 318 | end | ||
| 319 | end | ||
| 320 | a.b(function() | ||
| 321 | return 123 | ||
| 322 | end).c = _tmp_0 | ||
| 323 | end | 300 | end |
| 301 | a.b(function() | ||
| 302 | return 123 | ||
| 303 | end).c = _tmp_0 | ||
| 324 | end | 304 | end |
| 325 | do | 305 | do |
| 326 | local mt, subFunc | 306 | local mt, subFunc |
| 327 | do | 307 | local _obj_0 = getmetatable(tb.x) |
| 328 | local _obj_0 = getmetatable(tb.x) | 308 | mt, subFunc = _obj_0, _obj_0.__sub |
| 329 | mt, subFunc = _obj_0, _obj_0.__sub | 309 | if mt == nil then |
| 330 | if mt == nil then | 310 | mt = { } |
| 331 | mt = { } | ||
| 332 | end | ||
| 333 | end | 311 | end |
| 334 | end | 312 | end |
| 335 | do | 313 | do |
| 336 | local mt, subFunc | 314 | local mt, subFunc |
| 337 | do | 315 | local _obj_0 = tb |
| 338 | local _obj_0 = tb | 316 | mt, subFunc = getmetatable(_obj_0.x), getmetatable(_obj_0.x).__sub |
| 339 | mt, subFunc = getmetatable(_obj_0.x), getmetatable(_obj_0.x).__sub | 317 | if mt == nil then |
| 340 | if mt == nil then | 318 | mt = { } |
| 341 | mt = { } | ||
| 342 | end | ||
| 343 | end | 319 | end |
| 344 | end | 320 | end |
| 345 | do | 321 | do |
| @@ -386,31 +362,25 @@ do | |||
| 386 | end | 362 | end |
| 387 | do | 363 | do |
| 388 | local a, b | 364 | local a, b |
| 389 | do | 365 | local _obj_0 = tb |
| 390 | local _obj_0 = tb | 366 | a, b = _obj_0[2], _obj_0[4] |
| 391 | a, b = _obj_0[2], _obj_0[4] | ||
| 392 | end | ||
| 393 | end | 367 | end |
| 394 | do | 368 | do |
| 395 | local a, b | 369 | local a, b |
| 396 | do | 370 | local _obj_0 = tb |
| 397 | local _obj_0 = tb | 371 | a, b = _obj_0[1], _obj_0[3] |
| 398 | a, b = _obj_0[1], _obj_0[3] | ||
| 399 | end | ||
| 400 | end | 372 | end |
| 401 | do | 373 | do |
| 402 | do | 374 | local _obj_0 = x.x.x |
| 403 | local _obj_0 = x.x.x | 375 | local _tmp_0, _tmp_1 = _obj_0.x, _obj_0.y |
| 404 | local _tmp_0, _tmp_1 = _obj_0.x, _obj_0.y | 376 | if _tmp_0 == nil then |
| 405 | if _tmp_0 == nil then | 377 | _tmp_0 = 1 |
| 406 | _tmp_0 = 1 | ||
| 407 | end | ||
| 408 | if _tmp_1 == nil then | ||
| 409 | _tmp_1 = 2 | ||
| 410 | end | ||
| 411 | a.b = _tmp_0 | ||
| 412 | a.c = _tmp_1 | ||
| 413 | end | 378 | end |
| 379 | if _tmp_1 == nil then | ||
| 380 | _tmp_1 = 2 | ||
| 381 | end | ||
| 382 | a.b = _tmp_0 | ||
| 383 | a.c = _tmp_1 | ||
| 414 | end | 384 | end |
| 415 | do | 385 | do |
| 416 | local width, height | 386 | local width, height |
| @@ -419,15 +389,13 @@ do | |||
| 419 | width, height = _obj_0.width, _obj_0.height | 389 | width, height = _obj_0.width, _obj_0.height |
| 420 | end | 390 | end |
| 421 | local x, y | 391 | local x, y |
| 422 | do | 392 | local _obj_0 = point |
| 423 | local _obj_0 = point | 393 | x, y = _obj_0.x, _obj_0.y |
| 424 | x, y = _obj_0.x, _obj_0.y | 394 | if x == nil then |
| 425 | if x == nil then | 395 | x = 0.0 |
| 426 | x = 0.0 | 396 | end |
| 427 | end | 397 | if y == nil then |
| 428 | if y == nil then | 398 | y = 0.0 |
| 429 | y = 0.0 | ||
| 430 | end | ||
| 431 | end | 399 | end |
| 432 | end | 400 | end |
| 433 | do | 401 | do |
| @@ -451,29 +419,25 @@ do | |||
| 451 | end | 419 | end |
| 452 | do | 420 | do |
| 453 | local v1, v2, v3, v4 | 421 | local v1, v2, v3, v4 |
| 454 | do | 422 | local _obj_0 = tb |
| 455 | local _obj_0 = tb | 423 | local _tmp_0, _tmp_1 = 1 + 1, self.x |
| 456 | local _tmp_0, _tmp_1 = 1 + 1, self.x | 424 | v1, v2, v3, v4 = _obj_0[ [["abc"]]], _obj_0[_tmp_0][1], _obj_0[_tmp_0][2], _obj_0[_tmp_1] |
| 457 | v1, v2, v3, v4 = _obj_0[ [["abc"]]], _obj_0[_tmp_0][1], _obj_0[_tmp_0][2], _obj_0[_tmp_1] | 425 | if v1 == nil then |
| 458 | if v1 == nil then | 426 | v1 = 111 |
| 459 | v1 = 111 | ||
| 460 | end | ||
| 461 | if v2 == nil then | ||
| 462 | v2 = 222 | ||
| 463 | end | ||
| 464 | if v3 == nil then | ||
| 465 | v3 = 333 | ||
| 466 | end | ||
| 467 | if v4 == nil then | ||
| 468 | v4 = 444 | ||
| 469 | end | ||
| 470 | end | 427 | end |
| 471 | local v5, v6, v7 | 428 | if v2 == nil then |
| 472 | do | 429 | v2 = 222 |
| 473 | local _obj_0 = tb2 | 430 | end |
| 474 | local _tmp_2, _tmp_3 = func(), func2() | 431 | if v3 == nil then |
| 475 | v5, v6, v7 = _obj_0['x-y-z'], _obj_0[_tmp_2][_tmp_3], _obj_0[_tmp_2][1] | 432 | v3 = 333 |
| 433 | end | ||
| 434 | if v4 == nil then | ||
| 435 | v4 = 444 | ||
| 476 | end | 436 | end |
| 437 | local v5, v6, v7 | ||
| 438 | local _obj_1 = tb2 | ||
| 439 | local _tmp_2, _tmp_3 = func(), func2() | ||
| 440 | v5, v6, v7 = _obj_1['x-y-z'], _obj_1[_tmp_2][_tmp_3], _obj_1[_tmp_2][1] | ||
| 477 | end | 441 | end |
| 478 | do | 442 | do |
| 479 | local value, value_meta | 443 | local value, value_meta |
| @@ -512,16 +476,12 @@ do | |||
| 512 | end | 476 | end |
| 513 | do | 477 | do |
| 514 | local tb = { } | 478 | local tb = { } |
| 515 | do | 479 | local _tmp_0 = c() |
| 516 | local _tmp_0 = c() | 480 | local v2 = tb[_tmp_0] |
| 517 | local v2 = tb[_tmp_0] | ||
| 518 | end | ||
| 519 | local v1 | 481 | local v1 |
| 520 | do | 482 | local _obj_0 = getmetatable(tb) |
| 521 | local _obj_0 = getmetatable(tb) | 483 | local _tmp_1 = a + b |
| 522 | local _tmp_1 = a + b | 484 | v1 = _obj_0[_tmp_1] |
| 523 | v1 = _obj_0[_tmp_1] | ||
| 524 | end | ||
| 525 | end | 485 | end |
| 526 | do | 486 | do |
| 527 | local add, field | 487 | local add, field |
diff --git a/spec/outputs/import.lua b/spec/outputs/import.lua index ffe688b..83c99e2 100644 --- a/spec/outputs/import.lua +++ b/spec/outputs/import.lua | |||
| @@ -149,10 +149,8 @@ do | |||
| 149 | end | 149 | end |
| 150 | do | 150 | do |
| 151 | local func, ifVar | 151 | local func, ifVar |
| 152 | do | 152 | local _obj_1 = require("org.package.module") |
| 153 | local _obj_1 = require("org.package.module") | 153 | func, ifVar = _obj_1["function"], _obj_1["if"] |
| 154 | func, ifVar = _obj_1["function"], _obj_1["if"] | ||
| 155 | end | ||
| 156 | end | 154 | end |
| 157 | do | 155 | do |
| 158 | local b = getmetatable(require("m")).__gc | 156 | local b = getmetatable(require("m")).__gc |
| @@ -165,8 +163,6 @@ do | |||
| 165 | end | 163 | end |
| 166 | local d = require("m").c | 164 | local d = require("m").c |
| 167 | local g, i | 165 | local g, i |
| 168 | do | 166 | local _obj_1 = require("m") |
| 169 | local _obj_1 = require("m") | 167 | g, i = _obj_1[1], getmetatable(_obj_1[2]).__close |
| 170 | g, i = _obj_1[1], getmetatable(_obj_1[2]).__close | ||
| 171 | end | ||
| 172 | end | 168 | end |
diff --git a/spec/outputs/lists.lua b/spec/outputs/lists.lua index e2d512d..48ec9c8 100644 --- a/spec/outputs/lists.lua +++ b/spec/outputs/lists.lua | |||
| @@ -318,15 +318,13 @@ end | |||
| 318 | do | 318 | do |
| 319 | a, b = hello[1], hello[2] | 319 | a, b = hello[1], hello[2] |
| 320 | local name, job | 320 | local name, job |
| 321 | do | 321 | local _obj_0 = person |
| 322 | local _obj_0 = person | 322 | name, job = _obj_0[1], _obj_0[2] |
| 323 | name, job = _obj_0[1], _obj_0[2] | 323 | if name == nil then |
| 324 | if name == nil then | 324 | name = "nameless" |
| 325 | name = "nameless" | 325 | end |
| 326 | end | 326 | if job == nil then |
| 327 | if job == nil then | 327 | job = "jobless" |
| 328 | job = "jobless" | ||
| 329 | end | ||
| 330 | end | 328 | end |
| 331 | end | 329 | end |
| 332 | return nil | 330 | return nil |
diff --git a/spec/outputs/local.lua b/spec/outputs/local.lua index 5d215e0..c5b3931 100644 --- a/spec/outputs/local.lua +++ b/spec/outputs/local.lua | |||
| @@ -55,10 +55,8 @@ do | |||
| 55 | k = 10 | 55 | k = 10 |
| 56 | end | 56 | end |
| 57 | x = 100 | 57 | x = 100 |
| 58 | do | 58 | local _obj_0 = y |
| 59 | local _obj_0 = y | 59 | a, b, c = _obj_0.a, _obj_0.b, _obj_0.c |
| 60 | a, b, c = _obj_0.a, _obj_0.b, _obj_0.c | ||
| 61 | end | ||
| 62 | end | 60 | end |
| 63 | do | 61 | do |
| 64 | local a, b, c, d | 62 | local a, b, c, d |
diff --git a/spec/outputs/metatable.lua b/spec/outputs/metatable.lua index 78de433..6af10e5 100644 --- a/spec/outputs/metatable.lua +++ b/spec/outputs/metatable.lua | |||
| @@ -51,15 +51,11 @@ do | |||
| 51 | local _obj_0, _obj_1 | 51 | local _obj_0, _obj_1 |
| 52 | x, _obj_0, _obj_1 = 123, a.b.c, func() | 52 | x, _obj_0, _obj_1 = 123, a.b.c, func() |
| 53 | new, var = _obj_0.new, _obj_0.var | 53 | new, var = _obj_0.new, _obj_0.var |
| 54 | do | 54 | local _obj_2 = getmetatable(_obj_0) |
| 55 | local _obj_2 = getmetatable(_obj_0) | 55 | close, closeA = _obj_2.__close, _obj_2.__close |
| 56 | close, closeA = _obj_2.__close, _obj_2.__close | ||
| 57 | end | ||
| 58 | num = _obj_1.num | 56 | num = _obj_1.num |
| 59 | do | 57 | local _obj_3 = getmetatable(_obj_1) |
| 60 | local _obj_2 = getmetatable(_obj_1) | 58 | add, sub = _obj_3.__add, _obj_3.__sub |
| 61 | add, sub = _obj_2.__add, _obj_2.__sub | ||
| 62 | end | ||
| 63 | end | 59 | end |
| 64 | setmetatable(a.b, { }) | 60 | setmetatable(a.b, { }) |
| 65 | x.abc = 123 | 61 | x.abc = 123 |
| @@ -107,17 +103,13 @@ index = getmetatable(a).__index | |||
| 107 | index = getmetatable(a).__index | 103 | index = getmetatable(a).__index |
| 108 | do | 104 | do |
| 109 | local ctor, update | 105 | local ctor, update |
| 110 | do | 106 | local _obj_0 = getmetatable(a) |
| 111 | local _obj_0 = getmetatable(a) | 107 | ctor, update = _obj_0.new, _obj_0.update |
| 112 | ctor, update = _obj_0.new, _obj_0.update | ||
| 113 | end | ||
| 114 | end | 108 | end |
| 115 | do | 109 | do |
| 116 | local ctor, update | 110 | local ctor, update |
| 117 | do | 111 | local _obj_0 = getmetatable(a) |
| 118 | local _obj_0 = getmetatable(a) | 112 | ctor, update = _obj_0.new, _obj_0.update |
| 119 | ctor, update = _obj_0.new, _obj_0.update | ||
| 120 | end | ||
| 121 | end | 113 | end |
| 122 | local tb = { } | 114 | local tb = { } |
| 123 | do | 115 | do |
diff --git a/spec/outputs/unicode/assign.lua b/spec/outputs/unicode/assign.lua index 16ece1a..cb53159 100644 --- a/spec/outputs/unicode/assign.lua +++ b/spec/outputs/unicode/assign.lua | |||
| @@ -54,15 +54,11 @@ return __u65e0_u6548_u53d8_u91cf(function() | |||
| 54 | local _u5143_u7d20a, _u5143_u7d20b | 54 | local _u5143_u7d20a, _u5143_u7d20b |
| 55 | local _exp_0 = _u5bf9_u8c61c | 55 | local _exp_0 = _u5bf9_u8c61c |
| 56 | if "a" == _exp_0 then | 56 | if "a" == _exp_0 then |
| 57 | do | 57 | local _obj_0 = _u5b57_u5178 |
| 58 | local _obj_0 = _u5b57_u5178 | 58 | _u5143_u7d20a, _u5143_u7d20b = _obj_0[1], _obj_0[2] |
| 59 | _u5143_u7d20a, _u5143_u7d20b = _obj_0[1], _obj_0[2] | ||
| 60 | end | ||
| 61 | elseif "b" == _exp_0 then | 59 | elseif "b" == _exp_0 then |
| 62 | do | 60 | local _obj_0 = _u51fd_u6570() |
| 63 | local _obj_0 = _u51fd_u6570() | 61 | _u5143_u7d20a, _u5143_u7d20b = _obj_0[1], _obj_0[2] |
| 64 | _u5143_u7d20a, _u5143_u7d20b = _obj_0[1], _obj_0[2] | ||
| 65 | end | ||
| 66 | end | 62 | end |
| 67 | end | 63 | end |
| 68 | do | 64 | do |
diff --git a/spec/outputs/unicode/backcall.lua b/spec/outputs/unicode/backcall.lua index f4bd5a3..85d7592 100644 --- a/spec/outputs/unicode/backcall.lua +++ b/spec/outputs/unicode/backcall.lua | |||
| @@ -82,15 +82,13 @@ end | |||
| 82 | do | 82 | do |
| 83 | local _u7ed3_u679c, _u6d88_u606f | 83 | local _u7ed3_u679c, _u6d88_u606f |
| 84 | do | 84 | do |
| 85 | do | 85 | local _obj_0 = _u5f02_u6b65_u63a5_u6536("文件名.txt", function(_u6570_u636e) |
| 86 | local _obj_0 = _u5f02_u6b65_u63a5_u6536("文件名.txt", function(_u6570_u636e) | 86 | _u6253_u5370(_u6570_u636e) |
| 87 | _u6253_u5370(_u6570_u636e) | 87 | return _u5f02_u6b65_u5904_u7406(_u6570_u636e, function(_u4fe1_u606f) |
| 88 | return _u5f02_u6b65_u5904_u7406(_u6570_u636e, function(_u4fe1_u606f) | 88 | return _u68c0_u67e5(_u4fe1_u606f) |
| 89 | return _u68c0_u67e5(_u4fe1_u606f) | ||
| 90 | end) | ||
| 91 | end) | 89 | end) |
| 92 | _u7ed3_u679c, _u6d88_u606f = _obj_0["结果"], _obj_0["消息"] | 90 | end) |
| 93 | end | 91 | _u7ed3_u679c, _u6d88_u606f = _obj_0["结果"], _obj_0["消息"] |
| 94 | end | 92 | end |
| 95 | _u6253_u5370(_u7ed3_u679c, _u6d88_u606f) | 93 | _u6253_u5370(_u7ed3_u679c, _u6d88_u606f) |
| 96 | local _u603b_u5927_u5c0f = _u5408_u5e76(((function() | 94 | local _u603b_u5927_u5c0f = _u5408_u5e76(((function() |
diff --git a/spec/outputs/unicode/cond.lua b/spec/outputs/unicode/cond.lua index 2b5af8a..7229001 100644 --- a/spec/outputs/unicode/cond.lua +++ b/spec/outputs/unicode/cond.lua | |||
| @@ -320,10 +320,8 @@ do | |||
| 320 | __u6a21_u5757 = _des_0 | 320 | __u6a21_u5757 = _des_0 |
| 321 | local _u4e1c_u897f = __u6a21_u5757["东西"] | 321 | local _u4e1c_u897f = __u6a21_u5757["东西"] |
| 322 | local a_u529f_u80fd, b_u529f_u80fd | 322 | local a_u529f_u80fd, b_u529f_u80fd |
| 323 | do | 323 | local _obj_0 = __u6a21_u5757 |
| 324 | local _obj_0 = __u6a21_u5757 | 324 | a_u529f_u80fd, b_u529f_u80fd = _obj_0["a功能"], _obj_0["b功能"] |
| 325 | a_u529f_u80fd, b_u529f_u80fd = _obj_0["a功能"], _obj_0["b功能"] | ||
| 326 | end | ||
| 327 | end | 325 | end |
| 328 | end | 326 | end |
| 329 | end | 327 | end |
diff --git a/spec/outputs/unicode/destructure.lua b/spec/outputs/unicode/destructure.lua index 7263d49..e1cd6ae 100644 --- a/spec/outputs/unicode/destructure.lua +++ b/spec/outputs/unicode/destructure.lua | |||
| @@ -10,10 +10,8 @@ do | |||
| 10 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0[1][1], _obj_0[2], _obj_0[3][1] | 10 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0[1][1], _obj_0[2], _obj_0[3][1] |
| 11 | end | 11 | end |
| 12 | local _u4f60_u597d, _u4e16_u754c | 12 | local _u4f60_u597d, _u4e16_u754c |
| 13 | do | 13 | local _obj_0 = _u503c |
| 14 | local _obj_0 = _u503c | 14 | _u4f60_u597d, _u4e16_u754c = _obj_0["你好"], _obj_0["世界"] |
| 15 | _u4f60_u597d, _u4e16_u754c = _obj_0["你好"], _obj_0["世界"] | ||
| 16 | end | ||
| 17 | end | 15 | end |
| 18 | do | 16 | do |
| 19 | local _u5426, _u4e1c_u897f | 17 | local _u5426, _u4e1c_u897f |
| @@ -50,17 +48,13 @@ do | |||
| 50 | end | 48 | end |
| 51 | do | 49 | do |
| 52 | _u53d8_u91cfc = nil | 50 | _u53d8_u91cfc = nil |
| 53 | do | 51 | local _obj_0 = _u8868 |
| 54 | local _obj_0 = _u8868 | 52 | _u5b57_u6bb5a, _u5b57_u6bb5b = _obj_0["字段a"], _obj_0["字段b"] |
| 55 | _u5b57_u6bb5a, _u5b57_u6bb5b = _obj_0["字段a"], _obj_0["字段b"] | ||
| 56 | end | ||
| 57 | end | 53 | end |
| 58 | do | 54 | do |
| 59 | local _u53d8_u91cfa = _u8868 | 55 | local _u53d8_u91cfa = _u8868 |
| 60 | do | 56 | local _obj_0 = __u65e0_u6548_u53d8_u91cf |
| 61 | local _obj_0 = __u65e0_u6548_u53d8_u91cf | 57 | _u5b57_u6bb5b, _u5b57_u6bb5c = _obj_0["字段b"], _obj_0["字段c"] |
| 62 | _u5b57_u6bb5b, _u5b57_u6bb5c = _obj_0["字段b"], _obj_0["字段c"] | ||
| 63 | end | ||
| 64 | end | 58 | end |
| 65 | do | 59 | do |
| 66 | _u53d8_u91cfb = __u65e0_u6548_u53d8_u91cf | 60 | _u53d8_u91cfb = __u65e0_u6548_u53d8_u91cf |
| @@ -89,17 +83,13 @@ do | |||
| 89 | end | 83 | end |
| 90 | do | 84 | do |
| 91 | local _u53d8_u91cfc, _u53d8_u91cfe | 85 | local _u53d8_u91cfc, _u53d8_u91cfe |
| 92 | do | 86 | local _obj_0 = _u5bf9_u8c61tb |
| 93 | local _obj_0 = _u5bf9_u8c61tb | 87 | _u53d8_u91cfc, _u53d8_u91cfe = _obj_0["字段a"]["字段b"], _obj_0["字段a"]["字段d"] |
| 94 | _u53d8_u91cfc, _u53d8_u91cfe = _obj_0["字段a"]["字段b"], _obj_0["字段a"]["字段d"] | ||
| 95 | end | ||
| 96 | end | 88 | end |
| 97 | do | 89 | do |
| 98 | local _u53d8_u91cfc, _u53d8_u91cfe, _u5143_u7d20f | 90 | local _u53d8_u91cfc, _u53d8_u91cfe, _u5143_u7d20f |
| 99 | do | 91 | local _obj_0 = _u5bf9_u8c61tb |
| 100 | local _obj_0 = _u5bf9_u8c61tb | 92 | _u53d8_u91cfc, _u53d8_u91cfe, _u5143_u7d20f = _obj_0["字段a"][1]["字段b"], _obj_0["字段a"][2]["字段d"], _obj_0["字段a"][3] |
| 101 | _u53d8_u91cfc, _u53d8_u91cfe, _u5143_u7d20f = _obj_0["字段a"][1]["字段b"], _obj_0["字段a"][2]["字段d"], _obj_0["字段a"][3] | ||
| 102 | end | ||
| 103 | end | 93 | end |
| 104 | do | 94 | do |
| 105 | self["世界"] = _u53d8_u91cfx[1] | 95 | self["世界"] = _u53d8_u91cfx[1] |
| @@ -165,10 +155,8 @@ do | |||
| 165 | end | 155 | end |
| 166 | do | 156 | do |
| 167 | local _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c | 157 | local _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c |
| 168 | do | 158 | local _obj_0 = _u53d8_u91cfz |
| 169 | local _obj_0 = _u53d8_u91cfz | 159 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0[1], _obj_0[2], _obj_0[3] |
| 170 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0[1], _obj_0[2], _obj_0[3] | ||
| 171 | end | ||
| 172 | end | 160 | end |
| 173 | local _ | 161 | local _ |
| 174 | _ = function(_u53c2_u6570z) | 162 | _ = function(_u53c2_u6570z) |
| @@ -178,10 +166,8 @@ do | |||
| 178 | local _u53d8_u91cfz = "〇〇" | 166 | local _u53d8_u91cfz = "〇〇" |
| 179 | _ = function(_u53c2_u6570k) | 167 | _ = function(_u53c2_u6570k) |
| 180 | local _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c | 168 | local _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c |
| 181 | do | 169 | local _obj_0 = _u53c2_u6570z |
| 182 | local _obj_0 = _u53c2_u6570z | 170 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0[1], _obj_0[2], _obj_0[3] |
| 183 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0[1], _obj_0[2], _obj_0[3] | ||
| 184 | end | ||
| 185 | end | 171 | end |
| 186 | end | 172 | end |
| 187 | do | 173 | do |
| @@ -189,21 +175,17 @@ do | |||
| 189 | end | 175 | end |
| 190 | do | 176 | do |
| 191 | local _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c | 177 | local _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c |
| 192 | do | 178 | local _obj_0 = _u4e1c_u897f |
| 193 | local _obj_0 = _u4e1c_u897f | 179 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0["如果"][1], _obj_0["如果"][2], _obj_0["如果"][3] |
| 194 | _u5143_u7d20a, _u5143_u7d20b, _u5143_u7d20c = _obj_0["如果"][1], _obj_0["如果"][2], _obj_0["如果"][3] | ||
| 195 | end | ||
| 196 | end | 180 | end |
| 197 | do | 181 | do |
| 198 | local _u5b57_u6bb5a, _u5b57_u6bb5b | 182 | local _u5b57_u6bb5a, _u5b57_u6bb5b |
| 199 | if true then | 183 | if true then |
| 200 | do | 184 | local _obj_0 = { |
| 201 | local _obj_0 = { | 185 | ["字段a"] = "你好", |
| 202 | ["字段a"] = "你好", | 186 | ["字段b"] = "世界" |
| 203 | ["字段b"] = "世界" | 187 | } |
| 204 | } | 188 | _u5b57_u6bb5a, _u5b57_u6bb5b = _obj_0["字段a"], _obj_0["字段b"] |
| 205 | _u5b57_u6bb5a, _u5b57_u6bb5b = _obj_0["字段a"], _obj_0["字段b"] | ||
| 206 | end | ||
| 207 | end | 189 | end |
| 208 | local _u5929, _u5c0f_u65f6, _u5206_u949f, _u79d2 | 190 | local _u5929, _u5c0f_u65f6, _u5206_u949f, _u79d2 |
| 209 | do | 191 | do |
| @@ -311,41 +293,33 @@ do | |||
| 311 | end | 293 | end |
| 312 | end | 294 | end |
| 313 | end | 295 | end |
| 314 | do | 296 | local _tmp_0 |
| 315 | local _tmp_0 | 297 | local _obj_0 = getmetatable(_u5bf9_u8c61tb) |
| 316 | do | 298 | _tmp_0 = _obj_0["函数"] |
| 317 | local _obj_0 = getmetatable(_u5bf9_u8c61tb) | 299 | if _tmp_0 == nil then |
| 318 | _tmp_0 = _obj_0["函数"] | 300 | local _obj_1 = _u9879_u76ee |
| 301 | if _obj_1 ~= nil then | ||
| 302 | _tmp_0 = _obj_1["默认值"] | ||
| 319 | end | 303 | end |
| 320 | if _tmp_0 == nil then | ||
| 321 | local _obj_0 = _u9879_u76ee | ||
| 322 | if _obj_0 ~= nil then | ||
| 323 | _tmp_0 = _obj_0["默认值"] | ||
| 324 | end | ||
| 325 | end | ||
| 326 | a_u5bf9_u8c61["b字段"](function() | ||
| 327 | return 123 | ||
| 328 | end)["字段c"] = _tmp_0 | ||
| 329 | end | 304 | end |
| 305 | a_u5bf9_u8c61["b字段"](function() | ||
| 306 | return 123 | ||
| 307 | end)["字段c"] = _tmp_0 | ||
| 330 | end | 308 | end |
| 331 | do | 309 | do |
| 332 | local _u5143_u8868, _u51cf_u51fd_u6570 | 310 | local _u5143_u8868, _u51cf_u51fd_u6570 |
| 333 | do | 311 | local _obj_0 = getmetatable(_u5bf9_u8c61tb["字段x"]) |
| 334 | local _obj_0 = getmetatable(_u5bf9_u8c61tb["字段x"]) | 312 | _u5143_u8868, _u51cf_u51fd_u6570 = _obj_0, _obj_0.__sub |
| 335 | _u5143_u8868, _u51cf_u51fd_u6570 = _obj_0, _obj_0.__sub | 313 | if _u5143_u8868 == nil then |
| 336 | if _u5143_u8868 == nil then | 314 | _u5143_u8868 = { } |
| 337 | _u5143_u8868 = { } | ||
| 338 | end | ||
| 339 | end | 315 | end |
| 340 | end | 316 | end |
| 341 | do | 317 | do |
| 342 | local _u5143_u8868, _u51cf_u51fd_u6570 | 318 | local _u5143_u8868, _u51cf_u51fd_u6570 |
| 343 | do | 319 | local _obj_0 = _u5bf9_u8c61tb |
| 344 | local _obj_0 = _u5bf9_u8c61tb | 320 | _u5143_u8868, _u51cf_u51fd_u6570 = getmetatable(_obj_0["x字段"]), getmetatable(_obj_0["x字段"]).__sub |
| 345 | _u5143_u8868, _u51cf_u51fd_u6570 = getmetatable(_obj_0["x字段"]), getmetatable(_obj_0["x字段"]).__sub | 321 | if _u5143_u8868 == nil then |
| 346 | if _u5143_u8868 == nil then | 322 | _u5143_u8868 = { } |
| 347 | _u5143_u8868 = { } | ||
| 348 | end | ||
| 349 | end | 323 | end |
| 350 | end | 324 | end |
| 351 | do | 325 | do |
| @@ -380,24 +354,20 @@ do | |||
| 380 | end | 354 | end |
| 381 | do | 355 | do |
| 382 | local a_u5143_u7d20, b_u5143_u7d20 | 356 | local a_u5143_u7d20, b_u5143_u7d20 |
| 383 | do | 357 | local _obj_0 = _u5bf9_u8c61tb |
| 384 | local _obj_0 = _u5bf9_u8c61tb | 358 | a_u5143_u7d20, b_u5143_u7d20 = _obj_0[2], _obj_0[4] |
| 385 | a_u5143_u7d20, b_u5143_u7d20 = _obj_0[2], _obj_0[4] | ||
| 386 | end | ||
| 387 | end | 359 | end |
| 388 | do | 360 | do |
| 389 | do | 361 | local _obj_0 = _u5bf9_u8c61x["字段x"]["字段x"] |
| 390 | local _obj_0 = _u5bf9_u8c61x["字段x"]["字段x"] | 362 | local _tmp_0, _tmp_1 = _obj_0["字段x"], _obj_0["y字段"] |
| 391 | local _tmp_0, _tmp_1 = _obj_0["字段x"], _obj_0["y字段"] | 363 | if _tmp_0 == nil then |
| 392 | if _tmp_0 == nil then | 364 | _tmp_0 = 1 |
| 393 | _tmp_0 = 1 | ||
| 394 | end | ||
| 395 | if _tmp_1 == nil then | ||
| 396 | _tmp_1 = 2 | ||
| 397 | end | ||
| 398 | _u5bf9_u8c61a["字段b"] = _tmp_0 | ||
| 399 | a_u5bf9_u8c61["c字段"] = _tmp_1 | ||
| 400 | end | 365 | end |
| 366 | if _tmp_1 == nil then | ||
| 367 | _tmp_1 = 2 | ||
| 368 | end | ||
| 369 | _u5bf9_u8c61a["字段b"] = _tmp_0 | ||
| 370 | a_u5bf9_u8c61["c字段"] = _tmp_1 | ||
| 401 | end | 371 | end |
| 402 | do | 372 | do |
| 403 | local _u5bbd, _u9ad8 | 373 | local _u5bbd, _u9ad8 |
| @@ -406,15 +376,13 @@ do | |||
| 406 | _u5bbd, _u9ad8 = _obj_0["宽"], _obj_0["高"] | 376 | _u5bbd, _u9ad8 = _obj_0["宽"], _obj_0["高"] |
| 407 | end | 377 | end |
| 408 | local x_u5750_u6807, y_u5750_u6807 | 378 | local x_u5750_u6807, y_u5750_u6807 |
| 409 | do | 379 | local _obj_0 = _u70b9 |
| 410 | local _obj_0 = _u70b9 | 380 | x_u5750_u6807, y_u5750_u6807 = _obj_0["x坐标"], _obj_0["y坐标"] |
| 411 | x_u5750_u6807, y_u5750_u6807 = _obj_0["x坐标"], _obj_0["y坐标"] | 381 | if x_u5750_u6807 == nil then |
| 412 | if x_u5750_u6807 == nil then | 382 | x_u5750_u6807 = 0.0 |
| 413 | x_u5750_u6807 = 0.0 | 383 | end |
| 414 | end | 384 | if y_u5750_u6807 == nil then |
| 415 | if y_u5750_u6807 == nil then | 385 | y_u5750_u6807 = 0.0 |
| 416 | y_u5750_u6807 = 0.0 | ||
| 417 | end | ||
| 418 | end | 386 | end |
| 419 | end | 387 | end |
| 420 | do | 388 | do |
| @@ -438,29 +406,25 @@ do | |||
| 438 | end | 406 | end |
| 439 | do | 407 | do |
| 440 | local _u53d8_u91cfv1, _u53d8_u91cfv2, _u53d8_u91cfv3, _u53d8_u91cfv4 | 408 | local _u53d8_u91cfv1, _u53d8_u91cfv2, _u53d8_u91cfv3, _u53d8_u91cfv4 |
| 441 | do | 409 | local _obj_0 = _u5bf9_u8c61tb |
| 442 | local _obj_0 = _u5bf9_u8c61tb | 410 | local _tmp_0, _tmp_1 = 1 + 1, self.x |
| 443 | local _tmp_0, _tmp_1 = 1 + 1, self.x | 411 | _u53d8_u91cfv1, _u53d8_u91cfv2, _u53d8_u91cfv3, _u53d8_u91cfv4 = _obj_0[ [["abc"]]], _obj_0[_tmp_0][1], _obj_0[_tmp_0][2], _obj_0[_tmp_1] |
| 444 | _u53d8_u91cfv1, _u53d8_u91cfv2, _u53d8_u91cfv3, _u53d8_u91cfv4 = _obj_0[ [["abc"]]], _obj_0[_tmp_0][1], _obj_0[_tmp_0][2], _obj_0[_tmp_1] | 412 | if _u53d8_u91cfv1 == nil then |
| 445 | if _u53d8_u91cfv1 == nil then | 413 | _u53d8_u91cfv1 = 111 |
| 446 | _u53d8_u91cfv1 = 111 | ||
| 447 | end | ||
| 448 | if _u53d8_u91cfv2 == nil then | ||
| 449 | _u53d8_u91cfv2 = 222 | ||
| 450 | end | ||
| 451 | if _u53d8_u91cfv3 == nil then | ||
| 452 | _u53d8_u91cfv3 = 333 | ||
| 453 | end | ||
| 454 | if _u53d8_u91cfv4 == nil then | ||
| 455 | _u53d8_u91cfv4 = 444 | ||
| 456 | end | ||
| 457 | end | 414 | end |
| 458 | local _u53d8_u91cfv5, _u53d8_u91cfv6, _u53d8_u91cfv7 | 415 | if _u53d8_u91cfv2 == nil then |
| 459 | do | 416 | _u53d8_u91cfv2 = 222 |
| 460 | local _obj_0 = _u5bf9_u8c61tb2 | 417 | end |
| 461 | local _tmp_2, _tmp_3 = _u51fd_u6570(), _u51fd_u65702() | 418 | if _u53d8_u91cfv3 == nil then |
| 462 | _u53d8_u91cfv5, _u53d8_u91cfv6, _u53d8_u91cfv7 = _obj_0['x-y-z'], _obj_0[_tmp_2][_tmp_3], _obj_0[_tmp_2][1] | 419 | _u53d8_u91cfv3 = 333 |
| 420 | end | ||
| 421 | if _u53d8_u91cfv4 == nil then | ||
| 422 | _u53d8_u91cfv4 = 444 | ||
| 463 | end | 423 | end |
| 424 | local _u53d8_u91cfv5, _u53d8_u91cfv6, _u53d8_u91cfv7 | ||
| 425 | local _obj_1 = _u5bf9_u8c61tb2 | ||
| 426 | local _tmp_2, _tmp_3 = _u51fd_u6570(), _u51fd_u65702() | ||
| 427 | _u53d8_u91cfv5, _u53d8_u91cfv6, _u53d8_u91cfv7 = _obj_1['x-y-z'], _obj_1[_tmp_2][_tmp_3], _obj_1[_tmp_2][1] | ||
| 464 | end | 428 | end |
| 465 | do | 429 | do |
| 466 | local _u503c, _u5143_u503c | 430 | local _u503c, _u5143_u503c |
| @@ -499,16 +463,12 @@ do | |||
| 499 | end | 463 | end |
| 500 | do | 464 | do |
| 501 | local _u5bf9_u8c61tb = { } | 465 | local _u5bf9_u8c61tb = { } |
| 502 | do | 466 | local _tmp_0 = _u51fd_u6570c() |
| 503 | local _tmp_0 = _u51fd_u6570c() | 467 | local _u53d8_u91cfv2 = _u5bf9_u8c61tb[_tmp_0] |
| 504 | local _u53d8_u91cfv2 = _u5bf9_u8c61tb[_tmp_0] | ||
| 505 | end | ||
| 506 | local _u53d8_u91cfv1 | 468 | local _u53d8_u91cfv1 |
| 507 | do | 469 | local _obj_0 = getmetatable(_u5bf9_u8c61tb) |
| 508 | local _obj_0 = getmetatable(_u5bf9_u8c61tb) | 470 | local _tmp_1 = _u53d8_u91cfa + _u53d8_u91cfb |
| 509 | local _tmp_1 = _u53d8_u91cfa + _u53d8_u91cfb | 471 | _u53d8_u91cfv1 = _obj_0[_tmp_1] |
| 510 | _u53d8_u91cfv1 = _obj_0[_tmp_1] | ||
| 511 | end | ||
| 512 | end | 472 | end |
| 513 | do | 473 | do |
| 514 | local add, _u5b57_u6bb5 | 474 | local add, _u5b57_u6bb5 |
diff --git a/spec/outputs/unicode/import.lua b/spec/outputs/unicode/import.lua index e4aec89..7c31ceb 100644 --- a/spec/outputs/unicode/import.lua +++ b/spec/outputs/unicode/import.lua | |||
| @@ -87,10 +87,8 @@ do | |||
| 87 | end | 87 | end |
| 88 | do | 88 | do |
| 89 | local _u51fd_u6570, _u5982_u679c_u53d8_u91cf | 89 | local _u51fd_u6570, _u5982_u679c_u53d8_u91cf |
| 90 | do | 90 | local _obj_1 = require("组织.包.模块") |
| 91 | local _obj_1 = require("组织.包.模块") | 91 | _u51fd_u6570, _u5982_u679c_u53d8_u91cf = _obj_1["函数体"], _obj_1["如果"] |
| 92 | _u51fd_u6570, _u5982_u679c_u53d8_u91cf = _obj_1["函数体"], _obj_1["如果"] | ||
| 93 | end | ||
| 94 | end | 92 | end |
| 95 | do | 93 | do |
| 96 | local _u53d8_u91cfb = getmetatable(require("块")).__gc | 94 | local _u53d8_u91cfb = getmetatable(require("块")).__gc |
| @@ -103,8 +101,6 @@ do | |||
| 103 | end | 101 | end |
| 104 | local _u53d8_u91cfd = require("块")["字段c"] | 102 | local _u53d8_u91cfd = require("块")["字段c"] |
| 105 | local _u5143_u7d20g, _u53d8_u91cfi | 103 | local _u5143_u7d20g, _u53d8_u91cfi |
| 106 | do | 104 | local _obj_1 = require("块") |
| 107 | local _obj_1 = require("块") | 105 | _u5143_u7d20g, _u53d8_u91cfi = _obj_1[1], getmetatable(_obj_1[2]).__close |
| 108 | _u5143_u7d20g, _u53d8_u91cfi = _obj_1[1], getmetatable(_obj_1[2]).__close | ||
| 109 | end | ||
| 110 | end | 106 | end |
diff --git a/spec/outputs/unicode/local.lua b/spec/outputs/unicode/local.lua index 4b4b366..194fd06 100644 --- a/spec/outputs/unicode/local.lua +++ b/spec/outputs/unicode/local.lua | |||
| @@ -55,10 +55,8 @@ do | |||
| 55 | _u53d8_u91cfk = 10 | 55 | _u53d8_u91cfk = 10 |
| 56 | end | 56 | end |
| 57 | _u53d8_u91cfx = 100 | 57 | _u53d8_u91cfx = 100 |
| 58 | do | 58 | local _obj_0 = _u53d8_u91cfy |
| 59 | local _obj_0 = _u53d8_u91cfy | 59 | _u53d8_u91cfa, _u53d8_u91cfb, _u53d8_u91cfc = _obj_0[1], _obj_0[2], _obj_0[3] |
| 60 | _u53d8_u91cfa, _u53d8_u91cfb, _u53d8_u91cfc = _obj_0[1], _obj_0[2], _obj_0[3] | ||
| 61 | end | ||
| 62 | end | 60 | end |
| 63 | do | 61 | do |
| 64 | local _u53d8_u91cfa, _u53d8_u91cfb, _u53d8_u91cfc, _u53d8_u91cfd | 62 | local _u53d8_u91cfa, _u53d8_u91cfb, _u53d8_u91cfc, _u53d8_u91cfd |
diff --git a/spec/outputs/unicode/metatable.lua b/spec/outputs/unicode/metatable.lua index c7c8730..ca48d0d 100644 --- a/spec/outputs/unicode/metatable.lua +++ b/spec/outputs/unicode/metatable.lua | |||
| @@ -51,15 +51,11 @@ do | |||
| 51 | local _obj_0, _obj_1 | 51 | local _obj_0, _obj_1 |
| 52 | _u53d8_u91cfx, _obj_0, _obj_1 = 123, _u53d8_u91cfa["变量b"]["变量c"], _u51fd_u6570() | 52 | _u53d8_u91cfx, _obj_0, _obj_1 = 123, _u53d8_u91cfa["变量b"]["变量c"], _u51fd_u6570() |
| 53 | _u65b0, _u53d8_u91cf = _obj_0["新"], _obj_0["变量"] | 53 | _u65b0, _u53d8_u91cf = _obj_0["新"], _obj_0["变量"] |
| 54 | do | 54 | local _obj_2 = getmetatable(_obj_0) |
| 55 | local _obj_2 = getmetatable(_obj_0) | 55 | close, _u5173_u95edA = _obj_2.__close, _obj_2.__close |
| 56 | close, _u5173_u95edA = _obj_2.__close, _obj_2.__close | ||
| 57 | end | ||
| 58 | num = _obj_1.num | 56 | num = _obj_1.num |
| 59 | do | 57 | local _obj_3 = getmetatable(_obj_1) |
| 60 | local _obj_2 = getmetatable(_obj_1) | 58 | add, sub = _obj_3.__add, _obj_3.__sub |
| 61 | add, sub = _obj_2.__add, _obj_2.__sub | ||
| 62 | end | ||
| 63 | end | 59 | end |
| 64 | setmetatable(_u53d8_u91cfa["变量b"], { }) | 60 | setmetatable(_u53d8_u91cfa["变量b"], { }) |
| 65 | _u53d8_u91cfx.abc = 123 | 61 | _u53d8_u91cfx.abc = 123 |
| @@ -108,17 +104,13 @@ local _u7d22_u5f15 = getmetatable(_u53d8_u91cfa).__index | |||
| 108 | index = getmetatable(_u53d8_u91cfa).__index | 104 | index = getmetatable(_u53d8_u91cfa).__index |
| 109 | do | 105 | do |
| 110 | local _u6784_u9020, _u66f4_u65b0 | 106 | local _u6784_u9020, _u66f4_u65b0 |
| 111 | do | 107 | local _obj_0 = getmetatable(_u53d8_u91cfa) |
| 112 | local _obj_0 = getmetatable(_u53d8_u91cfa) | 108 | _u6784_u9020, _u66f4_u65b0 = _obj_0["新"], _obj_0["更新"] |
| 113 | _u6784_u9020, _u66f4_u65b0 = _obj_0["新"], _obj_0["更新"] | ||
| 114 | end | ||
| 115 | end | 109 | end |
| 116 | do | 110 | do |
| 117 | local _u6784_u9020, _u66f4_u65b0 | 111 | local _u6784_u9020, _u66f4_u65b0 |
| 118 | do | 112 | local _obj_0 = getmetatable(_u53d8_u91cfa) |
| 119 | local _obj_0 = getmetatable(_u53d8_u91cfa) | 113 | _u6784_u9020, _u66f4_u65b0 = _obj_0["新"], _obj_0["更新"] |
| 120 | _u6784_u9020, _u66f4_u65b0 = _obj_0["新"], _obj_0["更新"] | ||
| 121 | end | ||
| 122 | end | 114 | end |
| 123 | local _u8868 = { } | 115 | local _u8868 = { } |
| 124 | do | 116 | do |
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 14cb3e6..9208d5d 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp | |||
| @@ -2170,7 +2170,7 @@ private: | |||
| 2170 | if (!destruct.inlineAssignment && destruct.items.size() == 1) { | 2170 | if (!destruct.inlineAssignment && destruct.items.size() == 1) { |
| 2171 | auto& pair = destruct.items.front(); | 2171 | auto& pair = destruct.items.front(); |
| 2172 | if (pair.targetVar.empty() && pair.defVal) { | 2172 | if (pair.targetVar.empty() && pair.defVal) { |
| 2173 | extraScope = true; | 2173 | if (needScope) extraScope = true; |
| 2174 | auto objVar = getUnusedName("_tmp_"sv); | 2174 | auto objVar = getUnusedName("_tmp_"sv); |
| 2175 | auto objExp = toAst<Exp_t>(objVar, pair.target); | 2175 | auto objExp = toAst<Exp_t>(objVar, pair.target); |
| 2176 | leftPairs.push_back({pair.target, objExp.get()}); | 2176 | leftPairs.push_back({pair.target, objExp.get()}); |
| @@ -2221,8 +2221,10 @@ private: | |||
| 2221 | if (isLocalValue) { | 2221 | if (isLocalValue) { |
| 2222 | objVar = destruct.valueVar; | 2222 | objVar = destruct.valueVar; |
| 2223 | } else { | 2223 | } else { |
| 2224 | temp.push_back(indent() + "do"s + nll(x)); | 2224 | if (needScope) { |
| 2225 | pushScope(); | 2225 | temp.push_back(indent() + "do"s + nll(x)); |
| 2226 | pushScope(); | ||
| 2227 | } | ||
| 2226 | objVar = getUnusedName("_obj_"sv); | 2228 | objVar = getUnusedName("_obj_"sv); |
| 2227 | auto newAssignment = assignmentFrom(toAst<Exp_t>(objVar, x), destruct.value, x); | 2229 | auto newAssignment = assignmentFrom(toAst<Exp_t>(objVar, x), destruct.value, x); |
| 2228 | transformAssignment(newAssignment, temp); | 2230 | transformAssignment(newAssignment, temp); |
| @@ -2234,9 +2236,11 @@ private: | |||
| 2234 | auto newAssignment = assignmentFrom(pair.target, valueExp, x); | 2236 | auto newAssignment = assignmentFrom(pair.target, valueExp, x); |
| 2235 | transformAssignment(newAssignment, temp, optionalDestruct); | 2237 | transformAssignment(newAssignment, temp, optionalDestruct); |
| 2236 | if (!isLocalValue) { | 2238 | if (!isLocalValue) { |
| 2237 | popScope(); | 2239 | if (needScope) { |
| 2238 | _buf << indent() << "end"sv << nlr(x); | 2240 | popScope(); |
| 2239 | temp.push_back(clearBuf()); | 2241 | _buf << indent() << "end"sv << nlr(x); |
| 2242 | temp.push_back(clearBuf()); | ||
| 2243 | } | ||
| 2240 | } | 2244 | } |
| 2241 | } else { | 2245 | } else { |
| 2242 | str_list defs; | 2246 | str_list defs; |
| @@ -2249,7 +2253,7 @@ private: | |||
| 2249 | defs.push_back(item.targetVar); | 2253 | defs.push_back(item.targetVar); |
| 2250 | } | 2254 | } |
| 2251 | } else if (item.defVal) { | 2255 | } else if (item.defVal) { |
| 2252 | extraScope = true; | 2256 | if (needScope) extraScope = true; |
| 2253 | auto objVar = getUnusedName("_tmp_"sv); | 2257 | auto objVar = getUnusedName("_tmp_"sv); |
| 2254 | addToScope(objVar); | 2258 | addToScope(objVar); |
| 2255 | auto objExp = toAst<Exp_t>(objVar, item.target); | 2259 | auto objExp = toAst<Exp_t>(objVar, item.target); |
| @@ -2285,9 +2289,11 @@ private: | |||
| 2285 | } | 2289 | } |
| 2286 | temp.push_back(indent() + "local "s + join(defs, ", "sv) + nll(x)); | 2290 | temp.push_back(indent() + "local "s + join(defs, ", "sv) + nll(x)); |
| 2287 | } | 2291 | } |
| 2288 | extraScope = true; | 2292 | if (needScope) { |
| 2289 | temp.push_back(indent() + "do"s + nll(x)); | 2293 | extraScope = true; |
| 2290 | pushScope(); | 2294 | temp.push_back(indent() + "do"s + nll(x)); |
| 2295 | pushScope(); | ||
| 2296 | } | ||
| 2291 | auto valVar = getUnusedName("_obj_"sv); | 2297 | auto valVar = getUnusedName("_obj_"sv); |
| 2292 | auto targetVar = toAst<Exp_t>(valVar, destruct.value); | 2298 | auto targetVar = toAst<Exp_t>(valVar, destruct.value); |
| 2293 | auto newAssignment = assignmentFrom(targetVar, destruct.value, destruct.value); | 2299 | auto newAssignment = assignmentFrom(targetVar, destruct.value, destruct.value); |
| @@ -2298,7 +2304,7 @@ private: | |||
| 2298 | } | 2304 | } |
| 2299 | } | 2305 | } |
| 2300 | if (destruct.inlineAssignment) { | 2306 | if (destruct.inlineAssignment) { |
| 2301 | if (!extraScope) { | 2307 | if (needScope && !extraScope) { |
| 2302 | extraScope = true; | 2308 | extraScope = true; |
| 2303 | temp.push_back(indent() + "do"s + nll(x)); | 2309 | temp.push_back(indent() + "do"s + nll(x)); |
| 2304 | pushScope(); | 2310 | pushScope(); |
