diff --git a/src/targets/Transpiler.JIT.ts b/src/targets/Transpiler.JIT.ts index 8aa2c2b36..97173044f 100644 --- a/src/targets/Transpiler.JIT.ts +++ b/src/targets/Transpiler.JIT.ts @@ -34,4 +34,9 @@ export class LuaTranspilerJIT extends LuaTranspiler52 { throw TSTLErrors.UnsupportedKind("bitwise operator", node.operatorToken.kind, node); } } + + /** @override */ + public transpileDestructingAssignmentValue(node: ts.Expression): string { + return `table.unpack(${this.transpileExpression(node)})`; + } } diff --git a/test/unit/assignmentDestructuring.spec.ts b/test/unit/assignmentDestructuring.spec.ts index 650e13024..994c3f83c 100644 --- a/test/unit/assignmentDestructuring.spec.ts +++ b/test/unit/assignmentDestructuring.spec.ts @@ -9,7 +9,7 @@ export class AssignmentDestructuringTests { let [a, b] = myFunc();`; @Test("Assignment destructuring [5.1]") - public assignmentDestructuring51() { + public assignmentDestructuring51(): void { // Transpile const lua = util.transpileString( this.assignmentDestruturingTs, {luaTarget: LuaTarget.Lua51, luaLibImport: "none"} @@ -19,7 +19,7 @@ export class AssignmentDestructuringTests { } @Test("Assignment destructuring [5.2]") - public tupleDestructing52() { + public tupleDestructing52(): void { // Transpile const lua = util.transpileString( this.assignmentDestruturingTs, {luaTarget: LuaTarget.Lua52, luaLibImport: "none"} @@ -27,4 +27,14 @@ export class AssignmentDestructuringTests { // Assert Expect(lua).toBe(`local a,b=table.unpack(myFunc());`); } + + @Test("Assignment destructuring [JIT]") + public assignmentDestructuringJIT(): void { + // Transpile + const lua = util.transpileString( + this.assignmentDestruturingTs, {luaTarget: LuaTarget.LuaJIT, luaLibImport: "none"} + ); + // Assert + Expect(lua).toBe(`local a,b=table.unpack(myFunc());`); + } }