Skip to content

Commit 5b42815

Browse files
committed
try arrow function as possible
1 parent cb640ee commit 5b42815

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@xiangnanscu/lua2js",
3-
"version": "0.30.0",
3+
"version": "0.31.0",
44
"main": "src/lua2js.mjs",
55
"type": "module",
66
"bin": {

src/components/code.lua

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
local a = function(a, b) return string.format("%s + %s", a, b) end
12
local x = [[`\`\\`]]
23
for i, e in ipairs(t) do
34
print(i, e)

src/lua2js.mjs

+9-4
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,22 @@ const defaultOptions = {
1010
returnNilToThrow: false,
1111
errorToThrow: true,
1212
tostring: true,
13-
dict: false,
14-
list: false,
13+
dict: true,
14+
list: true,
1515
unpack: true,
1616
tonumber: true,
1717
class: false,
1818
selfToThis: true,
1919
clsToThis: true,
2020
typeToTypeof: true,
21-
stringFormat: false,
21+
stringFormat: true,
2222
tableConcat: false,
23-
tableInsert: false,
23+
tableInsert: true,
2424
camelStyle: false,
2525
};
26+
function canBeArraowFunction(ast) {
27+
return !ast.identifier && ast.body.length === 1 && ast.body[0].type == "ReturnStatement";
28+
}
2629
function joinUnderscore(length) {
2730
return Array.from({ length }, () => "_").join("");
2831
}
@@ -596,6 +599,8 @@ function ast2js(ast, opts = {}) {
596599
} else {
597600
return `${_ast2js(ast.identifier)}(${ast.parameters.map(_ast2js).join(", ")}) {${_ast2js(ast.body)}}`;
598601
}
602+
} else if (canBeArraowFunction(ast)) {
603+
return `(${ast.parameters.map(_ast2js).join(", ")}) => ${_ast2js(ast.body[0].arguments)}`;
599604
} else {
600605
if (
601606
opts.selfToThis &&

0 commit comments

Comments
 (0)