Make during...spawn linked actors always exempt from root facet inert check
This commit is contained in:
parent
a0dc76e4e2
commit
936cdbd3c5
|
@ -147,7 +147,10 @@ export function expand(tree: Items, ctx: ExpansionContext): Items {
|
||||||
}
|
}
|
||||||
spawn.linkedToken = getRange(s.body);
|
spawn.linkedToken = getRange(s.body);
|
||||||
}
|
}
|
||||||
let body = (spawn == null) ? walk(s.body) : expandSpawn(spawn, t);
|
|
||||||
|
let body = (spawn == null)
|
||||||
|
? walk(s.body)
|
||||||
|
: expandSpawn(spawn, t, t`__SYNDICATE__.Turn.activeFacet.preventInertCheck();`);
|
||||||
|
|
||||||
const sa = compilePattern(s.pattern);
|
const sa = compilePattern(s.pattern);
|
||||||
return t`assertDataflow(() => ({
|
return t`assertDataflow(() => ({
|
||||||
|
@ -166,7 +169,7 @@ ${joinItems(sa.captureBinders.map(binderTypeGuard(ctx, t)), '\n')}
|
||||||
}));`;
|
}));`;
|
||||||
});
|
});
|
||||||
|
|
||||||
function expandSpawn(spawn: SpawnStatement, t: TemplateFunction): Items {
|
function expandSpawn(spawn: SpawnStatement, t: TemplateFunction, inject: Items = []): Items {
|
||||||
// TODO: parentBinders, parentInits
|
// TODO: parentBinders, parentInits
|
||||||
/*
|
/*
|
||||||
let assertions = (s.initialAssertions.length > 0)
|
let assertions = (s.initialAssertions.length > 0)
|
||||||
|
@ -174,7 +177,7 @@ ${joinItems(sa.captureBinders.map(binderTypeGuard(ctx, t)), '\n')}
|
||||||
: ``;
|
: ``;
|
||||||
*/
|
*/
|
||||||
const n = spawn.name === void 0 ? '' : t` __SYNDICATE__.Turn.activeFacet.actor.name = ${walk(spawn.name)};`;
|
const n = spawn.name === void 0 ? '' : t` __SYNDICATE__.Turn.activeFacet.actor.name = ${walk(spawn.name)};`;
|
||||||
return t`__SYNDICATE__.Turn.active._spawn${spawn.linkedToken ? 'Link': ''}(() => {${n} ${walk(spawn.body)} });`;
|
return t`__SYNDICATE__.Turn.active._spawn${spawn.linkedToken ? 'Link': ''}(() => {${n} ${inject} ${walk(spawn.body)} });`;
|
||||||
}
|
}
|
||||||
|
|
||||||
x(ctx.parser.spawn, expandSpawn);
|
x(ctx.parser.spawn, expandSpawn);
|
||||||
|
|
|
@ -74,7 +74,6 @@ export function spawnWindowEventFactory(ds: Ref) {
|
||||||
"pattern": :pattern P.WindowEvent(\Q.lit($eventType: string), \_)
|
"pattern": :pattern P.WindowEvent(\Q.lit($eventType: string), \_)
|
||||||
}) => spawn named ['WindowEvent', eventType] {
|
}) => spawn named ['WindowEvent', eventType] {
|
||||||
const facet = Turn.activeFacet;
|
const facet = Turn.activeFacet;
|
||||||
facet.preventInertCheck();
|
|
||||||
|
|
||||||
let handler = (event: Event) => {
|
let handler = (event: Event) => {
|
||||||
facet.turn(() => {
|
facet.turn(() => {
|
||||||
|
@ -349,8 +348,6 @@ function _attributeLike(selector: string,
|
||||||
{
|
{
|
||||||
let savedValues: Array<{node: Element, value: any}> = [];
|
let savedValues: Array<{node: Element, value: any}> = [];
|
||||||
|
|
||||||
Turn.activeFacet.preventInertCheck();
|
|
||||||
|
|
||||||
selectorMatch(document.body, selector).forEach(node => {
|
selectorMatch(document.body, selector).forEach(node => {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case 'attribute':
|
case 'attribute':
|
||||||
|
|
Loading…
Reference in New Issue