parallelize-async-work
ComputerGuy 7 days ago
parent ccc993933c
commit 9ab08aaf15

@ -143,27 +143,29 @@ export function Program(node, context) {
const transformed = /** @type {Program['body'][number]} */ (context.visit(node.body[i])); const transformed = /** @type {Program['body'][number]} */ (context.visit(node.body[i]));
body.push(transformed); body.push(transformed);
} }
let offset = 0; if (context.state.parallelized_chunks) {
for (const chunk of context.state.parallelized_chunks) { let offset = 0;
if (chunk.declarators.length === 1) { for (const chunk of context.state.parallelized_chunks) {
const declarator = chunk.declarators[0]; if (chunk.declarators.length === 1) {
body.splice( const declarator = chunk.declarators[0];
chunk.position + offset, body.splice(
0, chunk.position + offset,
b.declaration(chunk.kind, [ 0,
b.declarator(declarator.id, b.call(b.await(b.call('$.save', declarator.init)))) b.declaration(chunk.kind, [
]) b.declarator(declarator.id, b.call(b.await(b.call('$.save', declarator.init))))
); ])
} else { );
const pattern = b.array_pattern(chunk.declarators.map(({ id }) => id)); } else {
const init = b.call('$.all', ...chunk.declarators.map(({ init }) => init)); const pattern = b.array_pattern(chunk.declarators.map(({ id }) => id));
body.splice( const init = b.call('$.all', ...chunk.declarators.map(({ init }) => init));
chunk.position + offset, body.splice(
0, chunk.position + offset,
b.declaration(chunk.kind, [b.declarator(pattern, b.await(init))]) 0,
); b.declaration(chunk.kind, [b.declarator(pattern, b.await(init))])
);
}
offset++;
} }
offset++;
} }
return { return {
...node, ...node,

Loading…
Cancel
Save