diff --git a/lib/compilers/java.ts b/lib/compilers/java.ts index c3a40f40206..4a01fdc76ba 100644 --- a/lib/compilers/java.ts +++ b/lib/compilers/java.ts @@ -105,12 +105,11 @@ export class JavaCompiler extends BaseCompiler { }), ); - const merged = {asm: [] as ParsedAsmResultLine[][]}; + const merged: ParsedAsmResult = {asm: []}; for (const result of results) { const asmBackup = merged.asm; Object.assign(merged, result); - merged.asm = asmBackup; - merged.asm.push(result.asm); + merged.asm = [...asmBackup, ...result.asm]; } result.asm = merged.asm; @@ -241,7 +240,7 @@ export class JavaCompiler extends BaseCompiler { } // result.asm is an array of javap stdouts - const parseds = result.asm.map(asm => this.parseAsmForClass(asm)); + const parseds = result.asm.map(asm => this.parseAsmForClass(asm.text)); // Sort class file outputs according to first source line they reference parseds.sort((o1, o2) => o1.firstSourceLine - o2.firstSourceLine); diff --git a/test/java-tests.js b/test/java-tests.js index d1ed2cb1e9e..165706a609b 100644 --- a/test/java-tests.js +++ b/test/java-tests.js @@ -113,7 +113,9 @@ describe('javap parsing', () => { function testJava(baseFolder, ...classNames) { const compiler = new JavaCompiler(info, env); - const asm = classNames.map(className => fs.readFileSync(`${baseFolder}/${className}.asm`).toString()); + const asm = classNames.map(className => { + return {text: fs.readFileSync(`${baseFolder}/${className}.asm`).toString()}; + }); const output = utils.splitLines(fs.readFileSync(`${baseFolder}/output.asm`).toString()); const expectedSegments = output.map(line => {