Skip to content

Commit 3a84b06

Browse files
sunagRuthySheffi
authored andcommitted
TSL: Fix auto-cache if using multiple conditionals (mrdoob#31076)
* fix flow * prevent re-update outputNode * Update ContextNode.js
1 parent 0899078 commit 3a84b06

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

src/nodes/core/ContextNode.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,14 @@ class ContextNode extends Node {
8080

8181
analyze( builder ) {
8282

83+
const previousContext = builder.getContext();
84+
85+
builder.setContext( { ...builder.context, ...this.value } );
86+
8387
this.node.build( builder );
8488

89+
builder.setContext( previousContext );
90+
8591
}
8692

8793
setup( builder ) {
@@ -90,12 +96,10 @@ class ContextNode extends Node {
9096

9197
builder.setContext( { ...builder.context, ...this.value } );
9298

93-
const node = this.node.build( builder );
99+
this.node.build( builder );
94100

95101
builder.setContext( previousContext );
96102

97-
return node;
98-
99103
}
100104

101105
generate( builder, output ) {

src/nodes/core/Node.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -636,9 +636,7 @@ class Node extends EventDispatcher {
636636
//const stackNodesBeforeSetup = builder.stack.nodes.length;
637637

638638
properties.initialized = true;
639-
640-
const outputNode = this.setup( builder ); // return a node or null
641-
const isNodeOutput = outputNode && outputNode.isNode === true;
639+
properties.outputNode = this.setup( builder ) || properties.outputNode || null;
642640

643641
/*if ( isNodeOutput && builder.stack.nodes.length !== stackNodesBeforeSetup ) {
644642
@@ -665,17 +663,9 @@ class Node extends EventDispatcher {
665663

666664
}
667665

668-
if ( isNodeOutput ) {
669-
670-
outputNode.build( builder );
671-
672-
}
673-
674-
properties.outputNode = outputNode;
675-
676666
}
677667

678-
result = properties.outputNode || null;
668+
result = properties.outputNode;
679669

680670
} else if ( buildStage === 'analyze' ) {
681671

0 commit comments

Comments
 (0)