#![cfg(all(feature = "serde_json", feature = "error-handling"))]
use datalogic_rs::Engine;
use serde_json::json;
#[test]
fn test_map_bridge_frame_not_leaked_under_try() {
let engine = Engine::new();
let logic = json!({
"cat": [
{"try": [{"map": [5, {"throw": "e"}]}, "caught"]},
"-",
{"var": "name"}
]
});
let result = engine
.eval_into::<serde_json::Value, _, _>(&logic, &json!({"name": "root"}))
.unwrap();
assert_eq!(result, json!("caught-root"));
let logic = json!({
"try": [{"map": [5, {"throw": "boom"}]}, {"var": "type"}]
});
let result = engine
.eval_into::<serde_json::Value, _, _>(&logic, &json!({}))
.unwrap();
assert_eq!(result, json!("boom"));
}