We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent ad5f2e3 commit 8001015Copy full SHA for 8001015
src/targets/Transpiler.JIT.ts
@@ -39,4 +39,9 @@ export class LuaTranspilerJIT extends LuaTranspiler52 {
39
public transpileDestructingAssignmentValue(node: ts.Expression): string {
40
return `unpack(${this.transpileExpression(node)})`;
41
}
42
+
43
+ /** @override */
44
+ public transpileSpreadElement(node: ts.SpreadElement): string {
45
+ return "unpack(" + this.transpileExpression(node.expression) + ")";
46
+ }
47
test/unit/spreadElement.spec.ts
@@ -21,4 +21,20 @@ export class SpreadElementTest {
21
const lua = util.transpileString(`[].push(...${JSON.stringify([1, 2, 3])});`, {luaTarget: LuaTarget.Lua51});
22
Expect(lua).toBe("__TS__ArrayPush({}, unpack({1,2,3}));");
23
24
25
+ @Test("Spread Element Lua 5.2")
26
+ public spreadElement52() {
27
+ const lua = util.transpileString(`[...[0, 1, 2]]`, {luaTarget: LuaTarget.Lua52, luaLibImport: "none"});
28
+ Expect(lua).toBe("{table.unpack({0,1,2})};");
29
30
+ @Test("Spread Element Lua 5.3")
31
+ public spreadElement53() {
32
+ const lua = util.transpileString(`[...[0, 1, 2]]`, {luaTarget: LuaTarget.Lua53, luaLibImport: "none"});
33
34
35
+ @Test("Spread Element Lua JIT")
36
+ public spreadElementJIT() {
37
+ const lua = util.transpileString(`[...[0, 1, 2]]`, {luaTarget: LuaTarget.LuaJIT, luaLibImport: "none"});
38
+ Expect(lua).toBe("{unpack({0,1,2})};");
0 commit comments