From 28531c8987e27fc27fe39ff5db7a51e6c4cdc6b1 Mon Sep 17 00:00:00 2001 From: lolleko Date: Wed, 21 Feb 2018 19:10:00 +0100 Subject: [PATCH 1/2] Fixed concat if separator is omitted --- src/Transpiler.ts | 7 ++++++- test/integration/lua/lualib.spec.ts | 31 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/Transpiler.ts b/src/Transpiler.ts index 3d9dc5499..b99872adf 100644 --- a/src/Transpiler.ts +++ b/src/Transpiler.ts @@ -741,7 +741,12 @@ export class LuaTranspiler { case "splice": return `TS_splice(${caller}, ${params})`; case "join": - return `table.concat(${caller}, ${params})`; + if (!params) { + // if seperator is omitted default seperator is "," + return `table.concat(${caller}, ",")`; + } else { + return `table.concat(${caller}, ${params})`; + } default: throw new TranspileError("Unsupported array function: " + expression.name.escapedText, node); } diff --git a/test/integration/lua/lualib.spec.ts b/test/integration/lua/lualib.spec.ts index 57063709d..09f0d1b35 100644 --- a/test/integration/lua/lualib.spec.ts +++ b/test/integration/lua/lualib.spec.ts @@ -138,4 +138,35 @@ export class LuaLibArrayTests { Expect(result).toBe(JSON.stringify(inp.splice(start))); } } + + @TestCase([], "") + @TestCase(["test1"], "test1") + @TestCase(["test1", "test2"], "test1,test2") + @TestCase(["test1", "test2"], "test1;test2", ";") + @TestCase(["test1", "test2"], "test1test2", "") + @Test("array.join") + public join(inp: T[], expected: string, seperator?: string) { + let seperatorLua; + if (seperator === "") { + seperatorLua = "\"\""; + } else if (seperator) { + seperatorLua = "\"" + seperator + "\""; + } else { + seperatorLua = ""; + } + // Transpile + let lua = util.transpileString( + `let joinTestTable = ${JSON.stringify(inp)}; + return joinTestTable.join(${seperatorLua});`, + util.dummyTypes.Array + ); + + // Execute + let result = util.executeLua(lua); + + // Assert + let joinedInp = inp.join(seperator); + Expect(result).toBe(joinedInp); + } + } From 880ce9dc800a38107a4b0bb900cac5b6155374e0 Mon Sep 17 00:00:00 2001 From: lolleko Date: Wed, 21 Feb 2018 19:32:15 +0100 Subject: [PATCH 2/2] Updated condition --- src/Transpiler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Transpiler.ts b/src/Transpiler.ts index b99872adf..35dc40b74 100644 --- a/src/Transpiler.ts +++ b/src/Transpiler.ts @@ -741,7 +741,7 @@ export class LuaTranspiler { case "splice": return `TS_splice(${caller}, ${params})`; case "join": - if (!params) { + if (node.arguments.length === 0) { // if seperator is omitted default seperator is "," return `table.concat(${caller}, ",")`; } else {