Skip to content

Commit 8942097

Browse files
committed
Fixed lualib cleanup, Fixed IndexOf and added tests for indexof
1 parent 6e532a3 commit 8942097

File tree

3 files changed

+36
-26
lines changed

3 files changed

+36
-26
lines changed

gulpfile.ts

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,27 @@ gulp.task("build", () => {
1818
return tsProject.src().pipe(tsProject()).js.pipe(gulp.dest("dist"));
1919
});
2020

21-
gulp.task("lualib", () => {
22-
compile([
23-
"-ah",
24-
"--dontRequireLuaLib",
25-
"--luaTarget",
26-
"5.1",
27-
"--outDir",
28-
"./dist/lualib",
29-
"--rootDir",
30-
"./src/lualib",
31-
...glob.sync("./src/lualib/*.ts"),
32-
]);
33-
34-
return gulp.src("./dist/lualib/*.lua")
35-
.pipe(concat("lualib_bundle.lua"))
36-
.pipe(gulp.dest("./dist/lualib"));
37-
});
21+
gulp.task("clean-lualib", () => del("./dist/lualib/*.lua"));
22+
23+
gulp.task("build-lualib", () => {
24+
compile([
25+
"-ah",
26+
"--dontRequireLuaLib",
27+
"--luaTarget",
28+
"5.1",
29+
"--outDir",
30+
"./dist/lualib",
31+
"--rootDir",
32+
"./src/lualib",
33+
...glob.sync("./src/lualib/*.ts"),
34+
]);
35+
36+
return gulp.src("./dist/lualib/*.lua")
37+
.pipe(concat("lualib_bundle.lua"))
38+
.pipe(gulp.dest("./dist/lualib"));
39+
});
40+
41+
gulp.task("lualib", gulp.series("clean-lualib", "build-lualib"));
3842

3943
gulp.task("default", gulp.series("build", "lualib"));
4044

src/lualib/ArrayIndexOf.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ function __TS__ArrayIndexOf<T>(arr: T[], searchElement: T, fromIndex?: number) {
1515

1616
let k;
1717
if (n >= 0) {
18-
k = 0;
18+
k = n;
1919
} else {
2020
k = len + n;
2121
if (k < 0) {
@@ -30,4 +30,4 @@ function __TS__ArrayIndexOf<T>(arr: T[], searchElement: T, fromIndex?: number) {
3030
}
3131

3232
return -1;
33-
}
33+
}

test/unit/lualib.spec.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -204,20 +204,26 @@ export class LuaLibArrayTests {
204204
@TestCase([], "test1")
205205
@TestCase(["test1"], "test1")
206206
@TestCase(["test1", "test2"], "test2")
207+
@TestCase(["test1", "test2", "test3"], "test3", 1)
208+
@TestCase(["test1", "test2", "test3"], "test1", 2)
209+
@TestCase(["test1", "test2", "test3"], "test1", -2)
210+
@TestCase(["test1", "test2", "test3"], "test1", 12)
207211
@Test("array.indexOf")
208-
public indexOf(inp: string[], element: string) {
209-
// Transpile
210-
const lua = util.transpileString(
211-
`return ${JSON.stringify(inp)}.indexOf("${element}"))`
212+
public indexOf(inp: string[], element: string, fromIndex?: number) {
213+
let str = `return ${JSON.stringify(inp)}.indexOf("${element}"))`;
214+
if (fromIndex) {
215+
str = `return ${JSON.stringify(inp)}.indexOf("${element}", ${fromIndex}))`;
216+
}
212217

213-
);
218+
// Transpile
219+
const lua = util.transpileString(str);
214220

215221
// Execute
216222
const result = util.executeLua(lua);
217223

218224
// Assert
219-
// Acount for lua indexing (-1)
220-
Expect(result).toBe(inp.indexOf(element));
225+
// Account for lua indexing (-1)
226+
Expect(result).toBe(inp.indexOf(element, fromIndex));
221227
}
222228

223229
@TestCase([1, 2, 3], 3)

0 commit comments

Comments
 (0)