docs
evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "Evaluates whether the solution leans on jsx-ast-utils to read JSXAttribute names and reconstruct prop values, especially for arrays/objects with spreads plus bind and new expressions. Scores focus purely on correct, idiomatic use of the package's extraction helpers rather than custom AST walking or stylistic concerns.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Attribute naming",
"description": "Uses jsx-ast-utils propName (or equivalent helper from the package) to derive each PropShape.name instead of manually piecing identifiers together.",
"max_score": 15
},
{
"name": "Value extraction",
"description": "Applies getPropValue to resolve JSXAttribute values rather than reimplementing expression evaluation logic.",
"max_score": 30
},
{
"name": "Spread handling",
"description": "Relies on getPropValue's reconstruction so spread identifiers in objects collapse to empty objects and array spreads become undefined slots, matching library semantics for unresolved spreads.",
"max_score": 25
},
{
"name": "Bind expressions",
"description": "Uses getPropValue's bind expression support so constructs like ::this.handleClick or foo::bar yield the package's bind-call string output.",
"max_score": 15
},
{
"name": "New expressions",
"description": "Normalizes new expressions through getPropValue to the library's {} representation while preserving surrounding literal values, avoiding custom placeholders.",
"max_score": 15
}
]
}