From 01559ce0bd047fad14ff484f5fee187bed05a99e Mon Sep 17 00:00:00 2001 From: Andrew Morris Date: Mon, 6 Mar 2023 08:54:47 +1100 Subject: [PATCH] Use ValueType::End to mark the end of arrays and objects instead of encoding the number of elements --- valuescript_compiler/src/assembler.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/valuescript_compiler/src/assembler.rs b/valuescript_compiler/src/assembler.rs index 43878c6..4101193 100644 --- a/valuescript_compiler/src/assembler.rs +++ b/valuescript_compiler/src/assembler.rs @@ -298,26 +298,28 @@ impl Assembler { fn array(&mut self, array: &Array) { self.output.push(ValueType::Array as u8); - self.varsize_uint(array.values.len()); for value in &array.values { self.value(value); } + + self.output.push(ValueType::End as u8); } fn object(&mut self, object: &Object) { self.output.push(ValueType::Object as u8); - self.varsize_uint(object.properties.len()); for (key, value) in &object.properties { self.value(key); self.value(value); } + + self.output.push(ValueType::End as u8); } } enum ValueType { - // End = 0x00, + End = 0x00, Void = 0x01, Undefined = 0x02, Null = 0x03,