summaryrefslogtreecommitdiff
path: root/src/eval/value.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval/value.rs')
-rw-r--r--src/eval/value.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/eval/value.rs b/src/eval/value.rs
index 0995ab75..3b1ef3f7 100644
--- a/src/eval/value.rs
+++ b/src/eval/value.rs
@@ -397,7 +397,13 @@ primitive! { EcoString: "string", Str }
primitive! { Array: "array", Array }
primitive! { Dict: "dictionary", Dict }
primitive! { Node: "template", Node }
-primitive! { Function: "function", Func }
+primitive! { Function: "function",
+ Func,
+ Class(v) => Function::new(
+ Some(v.name().clone()),
+ move |ctx, args| v.construct(ctx, args).map(Value::Node)
+ )
+}
primitive! { Class: "class", Class }
impl Cast<Value> for Value {