}
let value = this.value
- //if (value instanceof Array) {
+ if (value instanceof Array) {
let [ptr, len, new_value] = value
if (new_value === undefined) {
let buffer = Buffer.alloc(len)
value[2] = new_value
}
value = new_value
- //}
+ }
return value
}
value instanceof Lazy
)
this.dirty = true
- //if (typeof value === 'object' && value !== null)
+ if (typeof value === 'object' && value !== null)
value = [-1, 0, value]
this.value = value
}
return
}
- //if (this.value instanceof Array) {
+ if (this.value instanceof Array) {
let [ptr, len, value] = this.value
if (
(value instanceof Lazy && await value.flush(this)) ||
this.value[1] = len - 3
//this.dirty = true
}
- //}
- //else if (this.dirty) {
- // let buffer = Buffer.from(
- // `<${JSON.stringify(this.value, null, 2)}>\n`,
- // 'utf-8'
- // )
-
- // ptr = this.eof
- // len = buffer.length
- // assert(
- // (await this.log.write(buffer, 0, len, ptr)).bytesWritten === len
- // )
- // this.eof += len
- //}
+ }
+ else if (this.dirty) {
+ let buffer = Buffer.from(
+ `<${JSON.stringify(this.value, null, 2)}>\n`,
+ 'utf-8'
+ )
+
+ ptr = this.eof
+ len = buffer.length
+ assert(
+ (await this.log.write(buffer, 0, len, ptr)).bytesWritten === len
+ )
+ this.eof += len
+ }
this.dirty = false
this.mutex.release()
}
let value = this.array[key]
- //if (value instanceof Array) {
+ if (value instanceof Array) {
let [ptr, len, new_value] = value
if (new_value === undefined) {
let buffer = Buffer.alloc(len)
value[2] = new_value
}
value = new_value
- //}
+ }
return value
}
value instanceof Lazy
)
this.dirty = true
- //if (typeof value === 'object' && value !== null)
+ if (typeof value === 'object' && value !== null)
value = [-1, 0, value]
this.array[key] = value
this.length = this.array.length
for (let i = 0; i < this.length; ++i) {
let item = this.array[i]
- //if (item instanceof Array) {
+ if (item instanceof Array) {
let [ptr, len, value] = item
if (
(value instanceof Lazy && await value.flush(file)) ||
item[1] = len - 1
this.dirty = true
}
- //}
+ }
}
return this.dirty
}
let new_array = []
for (let i = 0; i < this.length; ++i) {
let item = this.array[i]
- //if (item instanceof Array)
+ if (item instanceof Array)
item = item.slice(0, 2)
new_array.push(item)
}
}
let value = this.object[key]
- //if (value instanceof Array) {
+ if (value instanceof Array) {
let [ptr, len, new_value] = value
if (new_value === undefined) {
let buffer = Buffer.alloc(len)
value[2] = new_value
}
value = new_value
- //}
+ }
return value
}
value instanceof Lazy
)
this.dirty = true
- //if (typeof value === 'object' && value !== null)
+ if (typeof value === 'object' && value !== null)
value = [-1, 0, value]
this.object[key] = value
}
for (let i in this.object) {
let item = this.object[i]
- //if (item instanceof Array) {
+ if (item instanceof Array) {
let [ptr, len, value] = item
if (
(value instanceof Lazy && await value.flush(file)) ||
item[1] = len
this.dirty = true
}
- //}
+ }
}
return this.dirty
}
let new_object = {}
for (let i in this.object) {
let item = this.object[i]
- //if (item instanceof Array)
+ if (item instanceof Array)
item = item.slice(0, 2)
new_object[i] = item
}