Browse Source

fix Value::to_json order of items in array (#699)

pull/708/head
sele 4 years ago committed by GitHub
parent
commit
1a27f06c7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      boa/src/value/mod.rs

18
boa/src/value/mod.rs

@ -238,15 +238,15 @@ impl Value {
Self::Boolean(b) => Ok(JSONValue::Bool(b)), Self::Boolean(b) => Ok(JSONValue::Bool(b)),
Self::Object(ref obj) => { Self::Object(ref obj) => {
if obj.borrow().is_array() { if obj.borrow().is_array() {
let mut arr: Vec<JSONValue> = Vec::new(); let mut keys: Vec<u32> = obj.borrow().index_property_keys().cloned().collect();
for k in obj.borrow().keys() { keys.sort();
if k != "length" { let mut arr: Vec<JSONValue> = Vec::with_capacity(keys.len());
let value = self.get_field(k.to_string()); for key in keys {
if value.is_undefined() || value.is_function() || value.is_symbol() { let value = self.get_field(key);
arr.push(JSONValue::Null); if value.is_undefined() || value.is_function() || value.is_symbol() {
} else { arr.push(JSONValue::Null);
arr.push(self.get_field(k.to_string()).to_json(interpreter)?); } else {
} arr.push(value.to_json(interpreter)?);
} }
} }
Ok(JSONValue::Array(arr)) Ok(JSONValue::Array(arr))

Loading…
Cancel
Save