parent
3363c2df8a
commit
b09dbca3fd
|
@ -4,7 +4,7 @@ https://github.com/josdejong/jsoneditor
|
|||
|
||||
## not yet published, version 8.6.2
|
||||
|
||||
- Fixed #926: Keep order of properties when updating an object.
|
||||
- Fixed #917, #926: Keep order of properties when updating an object.
|
||||
- Fixed #928: Custom root name not reflected in path of navigation bar.
|
||||
- Upgraded to `ajv@6.12.0`
|
||||
|
||||
|
|
|
@ -1490,31 +1490,16 @@ export class Node {
|
|||
return false
|
||||
}
|
||||
|
||||
// TODO: for better efficiency, we could create a property `isDuplicate` on all of the childs
|
||||
// and keep that up to date. This should make deepEqual about 20% faster.
|
||||
const props = {}
|
||||
let propCount = 0
|
||||
for (i = 0; i < this.childs.length; i++) {
|
||||
const child = this.childs[i]
|
||||
if (!props[child.field]) {
|
||||
// We can have childs with duplicate field names.
|
||||
// We take the first, and ignore the others.
|
||||
props[child.field] = true
|
||||
propCount++
|
||||
|
||||
if (!(child.field in json)) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (!child.deepEqual(json[child.field])) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (propCount !== Object.keys(json).length) {
|
||||
// we reckon with the order of the properties too.
|
||||
const props = Object.keys(json)
|
||||
if (this.childs.length !== props.length) {
|
||||
return false
|
||||
}
|
||||
for (i = 0; i < props.length; i++) {
|
||||
if (this.childs[i].field !== props[i]) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this.value !== json) {
|
||||
return false
|
||||
|
|
Loading…
Reference in New Issue