Prometheus
Prometheus copied to clipboard
[BUG] Parenthesis-enclosed expressions aren't truncated to 1 value
Describe the bug
The obfuscator doesn't support truncating the output of a function or ... using parenthesis (())
Expected behavior The amount of values to be truncated (or raised with a nil in the case of no output) to 1 argument - See lua 5.1 documentation §2.5
To Reproduce Here's a function which displays this behaviour - the output will be different between the obfuscated script and the original code
local function x()
return 3, 4, 5
end
print("Expecting '3, 4, 5' and then just '3'")
print(x())
print((x()))
I tried to replicate the bug and the obfuscated script produces the same output. I think you should change your preset.
I just attempted it on purely the "Minify" preset (so no obfuscation at all) and it produced the following code:
local function p()return 3,4,5 end
print("\069\120\112\101\099\116\101\100 \'\051\044 \052\044 \053\' \097\110\100 \116\104\101\110 \106\117\115\116 \'\051\'")
print(p())
print(p())
(I manually added the newlines) As you can see, the last line has had the extra parenthesis stripped, which means the truncation no longer takes place, and both prints now become identical (they should not be identical). Are you sure you can't replicate this bug?
I will look into this this weekend. I didn't consider this case