From 6ea26c0618b7e0dff0339f0d6e50882e3f096099 Mon Sep 17 00:00:00 2001 From: Akulij Date: Wed, 21 May 2025 12:27:27 +0500 Subject: [PATCH] change injectable template in DeserializeJS to correct one --- src/botscript.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/botscript.rs b/src/botscript.rs index ac4aae7..03941ec 100644 --- a/src/botscript.rs +++ b/src/botscript.rs @@ -3,7 +3,8 @@ use std::collections::HashMap; use crate::utils::parcelable::{ParcelType, Parcelable, ParcelableError, ParcelableResult}; use itertools::Itertools; use quickjs_rusty::serde::from_js; -use quickjs_rusty::utils::create_null; +use quickjs_rusty::utils::create_empty_object; +use quickjs_rusty::utils::create_string; use quickjs_rusty::Context; use quickjs_rusty::ContextError; use quickjs_rusty::ExecutionError; @@ -167,7 +168,24 @@ impl DeserializerJS { Err(err) => return Err(ScriptError::ValueError(err)), }; let res = match self.inject_templates(&p, path.clone() + &k)? { - Some(_) => o.set_property(&k, JsValue::new(o.context(), create_null())), + Some(_) => { + let fo = JsValue::new( + o.context(), + create_empty_object(o.context()).expect("couldn't create object"), + ) + .try_into_object() + .expect("the object created was not an object :/"); + fo.set_property( + "func", + JsValue::new( + o.context(), + create_string(o.context(), "somefunc") + .expect("couldn't create string"), + ), + ) + .expect("wasn't able to set property on object :/"); + o.set_property(&k, fo.into_value()) + } None => Ok(()), }; match res {