diff --git a/packages/syntax/src/generators.js b/packages/syntax/src/generators.js index e9a9742..e119a9a 100644 --- a/packages/syntax/src/generators.js +++ b/packages/syntax/src/generators.js @@ -162,5 +162,5 @@ export function DuringStatement(node) { export function SyndicateReactStatement(node) { this.word("react"); this.space(); - this.print(node.body, node); + this.printBlock(node.bodyProc); } diff --git a/packages/syntax/src/parser.js b/packages/syntax/src/parser.js index 1bd7c06..b1f41a2 100644 --- a/packages/syntax/src/parser.js +++ b/packages/syntax/src/parser.js @@ -122,7 +122,7 @@ export default class SyndicateParser extends _original_Parser { if (this.isContextual("react")) { this.next(); const node = this.startNode(); - node.body = this.parseStatement(); + node.bodyProc = this.parseSyntheticFunctionStatement(); return this.finishNode(node, "SyndicateReactStatement"); } diff --git a/packages/syntax/src/plugin.js b/packages/syntax/src/plugin.js index 472b10c..a59b8cc 100644 --- a/packages/syntax/src/plugin.js +++ b/packages/syntax/src/plugin.js @@ -540,10 +540,10 @@ export default declare((api, options) => { path.replaceWith(template( `DATASPACE._currentFacet.actor.addFacet( DATASPACE._currentFacet, - function () { BODY }, + BODYPROC, true);`)({ DATASPACE: state.DataspaceID, - BODY: node.body, + BODYPROC: node.bodyProc, })); }, }, diff --git a/packages/syntax/src/types.js b/packages/syntax/src/types.js index 6c3c570..488d6a4 100644 --- a/packages/syntax/src/types.js +++ b/packages/syntax/src/types.js @@ -196,12 +196,12 @@ defineType("DuringStatement", { }); defineType("SyndicateReactStatement", { - builder: ["body"], - visitor: ["body"], + builder: ["bodyProc"], + visitor: ["bodyProc"], aliases: ["Statement"], fields: { - body: { - validate: assertNodeType("Statement"), + bodyProc: { + validate: assertNodeType("FunctionExpression"), }, }, });