| 57 | export const formatCode = (...values: unknown[]) => values.map(e => stringify(e)).join(", "); |
| 58 | |
| 59 | export function testEachVersion<T extends TestBuilder>( |
| 60 | name: string | undefined, |
| 61 | common: () => T, |
| 62 | special?: Record<tstl.LuaTarget, ((builder: T) => void) | boolean> |
| 63 | ): void { |
| 64 | for (const version of Object.values(tstl.LuaTarget) as tstl.LuaTarget[]) { |
| 65 | const specialBuilder = special?.[version]; |
| 66 | if (specialBuilder === false) continue; |
| 67 | |
| 68 | const testName = name === undefined ? version : `${name} [${version}]`; |
| 69 | defineTest(testName, () => { |
| 70 | const builder = common(); |
| 71 | builder.setOptions({ luaTarget: version }); |
| 72 | if (typeof specialBuilder === "function") { |
| 73 | specialBuilder(builder); |
| 74 | } |
| 75 | }); |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | export function expectEachVersionExceptJit<T>( |
| 80 | expectation: (builder: T) => void |