function evaluatePropertyDeclaration({ environment, node, evaluate, statementTraversalStack, typescript, stack }, parent) {
    // Compute the property name
    const propertyNameResult = evaluate.nodeWithValue(node.name, environment, statementTraversalStack);
    if (parent == null) {
        evaluate.declaration(node.parent, environment, statementTraversalStack);
        const updatedParent = stack.pop();
        const isStatic = inStaticContext(node, typescript);
        stack.push(isStatic ? updatedParent[propertyNameResult] : updatedParent.prototype[propertyNameResult]);
        return;
    }
    parent[propertyNameResult] = node.initializer == null ? undefined : evaluate.expression(node.initializer, environment, statementTraversalStack);
    if (node.decorators != null) {
        for (const decorator of node.decorators) {
            evaluate.nodeWithArgument(decorator, environment, [parent, propertyNameResult], statementTraversalStack);
            // Pop the stack. We don't need the value it has left on the Stack
            stack.pop();
        }
    }
}
/**
 * Evaluates, or attempts to evaluate, a PropertyDeclaration, before applying it on the given parent
 */
Evaluates, or attempts to evaluate, a PropertyDeclaration, before applying it on the given parent
Evaluates or attempts to evaluate a PropertyDeclaration before applying it on the given parent
function evaluatePropertyDeclaration({ environment, node, evaluate, statementTraversalStack, typescript, stack }, parent) {
    const propertyNameResult = evaluate.nodeWithValue(node.name, environment, statementTraversalStack);
    if (parent == null) {
        evaluate.declaration(node.parent, environment, statementTraversalStack);
        const updatedParent = stack.pop();
        const isStatic = inStaticContext(node, typescript);
        stack.push(isStatic ? updatedParent[propertyNameResult] : updatedParent.prototype[propertyNameResult]);
        return;
    }
    parent[propertyNameResult] = node.initializer == null ? undefined : evaluate.expression(node.initializer, environment, statementTraversalStack);
    if (node.decorators != null) {
        for (const decorator of node.decorators) {
            evaluate.nodeWithArgument(decorator, environment, [parent, propertyNameResult], statementTraversalStack);
            stack.pop();
        }
    }
}
function evaluatePropertyDeclaration ( { environment , node , evaluate , statementTraversalStack , typescript , stack } , parent ) { const propertyNameResult = evaluate . nodeWithValue ( node . name , environment , statementTraversalStack ) ; if ( parent == null ) { evaluate . declaration ( node . parent , environment , statementTraversalStack ) ; const updatedParent = stack . pop ( ) ; const isStatic = inStaticContext ( node , typescript ) ; stack . push ( isStatic ? updatedParent [ propertyNameResult ] : updatedParent . prototype [ propertyNameResult ] ) ; return ; } parent [ propertyNameResult ] = node . initializer == null ? undefined : evaluate . expression ( node . initializer , environment , statementTraversalStack ) ; if ( node . decorators != null ) { for ( const decorator of node . decorators ) { evaluate . nodeWithArgument ( decorator , environment , [ parent , propertyNameResult ] , statementTraversalStack ) ; stack . pop ( ) ; } } }
Evaluates, or attempts to evaluate, a PropertyDeclaration, before applying it on the given parent
Evaluates or attempts to evaluate a PropertyDeclaration before applying it on the given parent
// Compute the property name // Pop the stack. We don't need the value it has left on the Stack