diff --git a/valuescript_compiler/src/optimization/extract_constants.rs b/valuescript_compiler/src/optimization/extract_constants.rs index f29de35..2ef7dae 100644 --- a/valuescript_compiler/src/optimization/extract_constants.rs +++ b/valuescript_compiler/src/optimization/extract_constants.rs @@ -71,17 +71,18 @@ fn should_extract_value_as_constant(value: &Value) -> Option { } } Value::Array(array) => { - if array.values.iter().all(is_constant) { + if array.values.len() >= 1 && array.values.iter().all(is_constant) { Some("array".to_string()) } else { None } } Value::Object(object) => { - if object - .properties - .iter() - .all(|(k, v)| is_constant(k) && is_constant(v)) + if object.properties.len() >= 1 + && object + .properties + .iter() + .all(|(k, v)| is_constant(k) && is_constant(v)) { Some("object".to_string()) } else {