Skip to content

Commit 1a4f44b

Browse files
authored
ConditionalNode: Fix setup process (mrdoob#30229)
* fix conditional setup process * fix nodeType * cleanup * Update ConditionalNode.js
1 parent aa370f4 commit 1a4f44b

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

src/nodes/core/CacheNode.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,16 @@ class CacheNode extends Node {
5656

5757
getNodeType( builder ) {
5858

59-
return this.node.getNodeType( builder );
59+
const previousCache = builder.getCache();
60+
const cache = builder.getCacheFromNode( this, this.parent );
61+
62+
builder.setCache( cache );
63+
64+
const nodeType = this.node.getNodeType( builder );
65+
66+
builder.setCache( previousCache );
67+
68+
return nodeType;
6069

6170
}
6271

src/nodes/math/ConditionalNode.js

+15-3
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,23 @@ class ConditionalNode extends Node {
6969
*/
7070
getNodeType( builder ) {
7171

72-
const ifType = this.ifNode.getNodeType( builder );
72+
const { ifNode, elseNode } = builder.getNodeProperties( this );
7373

74-
if ( this.elseNode !== null ) {
74+
if ( ifNode === undefined ) {
7575

76-
const elseType = this.elseNode.getNodeType( builder );
76+
// fallback setup
77+
78+
this.setup( builder );
79+
80+
return this.getNodeType( builder );
81+
82+
}
83+
84+
const ifType = ifNode.getNodeType( builder );
85+
86+
if ( elseNode !== null ) {
87+
88+
const elseType = elseNode.getNodeType( builder );
7789

7890
if ( builder.getTypeLength( elseType ) > builder.getTypeLength( ifType ) ) {
7991

0 commit comments

Comments
 (0)