diff --git a/src/nodes/core/StackNode.js b/src/nodes/core/StackNode.js index d8762d3541b0a9..5615596e835860 100644 --- a/src/nodes/core/StackNode.js +++ b/src/nodes/core/StackNode.js @@ -91,19 +91,19 @@ class StackNode extends Node { getElementType( builder ) { - return this.hasOutput( builder ) ? this.outputNode.getElementType( builder ) : 'void'; + return this.outputNode ? this.outputNode.getElementType( builder ) : 'void'; } generateNodeType( builder ) { - return this.hasOutput( builder ) ? this.outputNode.getNodeType( builder ) : 'void'; + return this.outputNode ? this.outputNode.getNodeType( builder ) : 'void'; } getMemberType( builder, name ) { - return this.hasOutput( builder ) ? this.outputNode.getMemberType( builder, name ) : 'void'; + return this.outputNode ? this.outputNode.getMemberType( builder, name ) : 'void'; } @@ -312,12 +312,6 @@ class StackNode extends Node { } - hasOutput( builder ) { - - return this.outputNode && this.outputNode.isNode && this.outputNode.getNodeType( builder ) !== 'void'; - - } - build( builder, ...params ) { const previousStack = getCurrentStack(); @@ -393,9 +387,15 @@ class StackNode extends Node { let result; - if ( this.hasOutput( builder ) ) { + if ( this.outputNode ) { - result = this.outputNode.build( builder, ...params ); + const buildResult = this.outputNode.build( builder, ...params ); + + if ( builder.buildStage !== 'generate' || this.outputNode.getNodeType( builder ) !== 'void' ) { + + result = buildResult; + + } } else {